-
Notifications
You must be signed in to change notification settings - Fork 0
/
RepositoryItemCheckedImageComboBoxEdit.vb
120 lines (101 loc) · 3.78 KB
/
RepositoryItemCheckedImageComboBoxEdit.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports DevExpress.Skins
Imports DevExpress.XtraEditors.Registrator
Imports DevExpress.XtraEditors.Repository
Imports System.Drawing
Imports System.Reflection
Imports System.ComponentModel
Imports DevExpress.XtraEditors.ViewInfo
Imports System.IO
Namespace DXSample
<UserRepositoryItem("RegisterCheckedImageComboBoxEdit")> _
Public Class RepositoryItemCheckedImageComboBoxEdit
Inherits RepositoryItemCheckedComboBoxEdit
Shared Sub New()
RegisterCheckedImageComboBoxEdit()
End Sub
Public Sub New()
End Sub
Public Const CustomEditName As String = "CheckedImageComboBoxEdit"
Public Overrides ReadOnly Property EditorTypeName() As String
Get
Return CustomEditName
End Get
End Property
Friend Const ImageWidth As Integer = 16, ImageHeight As Integer = 16
Public Shared Sub RegisterCheckedImageComboBoxEdit()
Dim img As Image = Nothing
Try
img = CType(Bitmap.FromStream(System.Reflection.Assembly.GetExecutingAssembly(). GetManifestResourceStream("DevExpress.CustomEditors.CustomEdit.bmp")), Bitmap)
Catch
End Try
EditorRegistrationInfo.Default.Editors.Add(New EditorClassInfo(CustomEditName, GetType(CheckedImageComboBoxEdit), GetType(RepositoryItemCheckedImageComboBoxEdit), GetType(PopupContainerEditViewInfo), New CheckedImageComboBoxEditPainter(), True, img))
End Sub
Private imageMember_Renamed As String
<DefaultValue(""), TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter, System.Design"), Editor("System.Windows.Forms.Design.DataMemberFieldEditor, System.Design", GetType(System.Drawing.Design.UITypeEditor))> _
Public Property ImageMember() As String
Get
Return imageMember_Renamed
End Get
Set(ByVal value As String)
If imageMember_Renamed <> value Then
imageMember_Renamed = value
End If
End Set
End Property
Private showImagesInEditBox_Renamed As Boolean = False
<DefaultValue(False)> _
Public Property ShowImagesInEditBox() As Boolean
Get
Return showImagesInEditBox_Renamed
End Get
Set(ByVal value As Boolean)
If showImagesInEditBox_Renamed <> value Then
showImagesInEditBox_Renamed = value
End If
End Set
End Property
Friend Function GetItemImage(ByVal index As Integer) As Image
Dim imageValue As Object = DataAdapter.GetRowValue(index, ImageMember)
If TypeOf imageValue Is Image Then
Return New Bitmap(CType(imageValue, Image), RepositoryItemCheckedImageComboBoxEdit.ImageWidth, RepositoryItemCheckedImageComboBoxEdit.ImageHeight)
End If
If TypeOf imageValue Is Byte() Then
Return New Bitmap(ConvertToImage(TryCast(imageValue, Byte())), RepositoryItemCheckedImageComboBoxEdit.ImageWidth, RepositoryItemCheckedImageComboBoxEdit.ImageHeight)
End If
Return Nothing
End Function
Private Function ConvertToImage(ByVal array() As Byte) As Image
Using str As New MemoryStream(array)
Return Image.FromStream(str)
End Using
End Function
Public Overrides Sub Assign(ByVal item As RepositoryItem)
BeginUpdate()
Try
MyBase.Assign(item)
Dim source As RepositoryItemCheckedImageComboBoxEdit = TryCast(item, RepositoryItemCheckedImageComboBoxEdit)
If source Is Nothing Then
Return
End If
imageMember_Renamed = source.ImageMember
showImagesInEditBox_Renamed = source.ShowImagesInEditBox
Finally
EndUpdate()
End Try
End Sub
Friend ReadOnly Property CanShowImageInDropDown() As Boolean
Get
Return IsBoundMode AndAlso ImageMember IsNot Nothing AndAlso Not ImageMember.Equals(String.Empty)
End Get
End Property
Friend ReadOnly Property CanShowImageInEditBox() As Boolean
Get
Return CanShowImageInDropDown AndAlso ShowImagesInEditBox
End Get
End Property
End Class
End Namespace