This repository has been archived by the owner on Oct 16, 2023. It is now read-only.
/
MainForm1.vb
306 lines (289 loc) · 12.2 KB
/
MainForm1.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Windows.Forms
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Model
Imports DevExpress.ExpressApp.Templates
Imports DevExpress.ExpressApp.Templates.ActionControls
Imports DevExpress.ExpressApp.Utils
Imports DevExpress.ExpressApp.Win.Controls
Imports DevExpress.ExpressApp.Win.SystemModule
Imports DevExpress.ExpressApp.Win.Templates
Imports DevExpress.ExpressApp.Win.Templates.Utils
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Docking2010
Imports DevExpress.XtraEditors
Partial Public Class MainForm1
Inherits XtraForm
Implements IActionControlsSite
Implements IContextMenuHolder
Implements IWindowTemplate
Implements IDockManagerHolder
Implements IBarManagerHolder
Implements ISupportViewChanged
Implements IXafDocumentsHostWindow
Implements ISupportUpdate
Implements IViewSiteTemplate
Implements ISupportStoreSettings
Private Shared ReadOnly viewChanged As New Object()
Private Shared ReadOnly settingsReloaded As New Object()
Private uiType As UIType
Private statusMessagesHelper As StatusMessagesHelper
Protected Overridable Sub InitializeImages()
barMdiChildrenListItem.Glyph = ImageLoader.Instance.GetImageInfo("Action_WindowList").Image
barMdiChildrenListItem.LargeGlyph = ImageLoader.Instance.GetLargeImageInfo("Action_WindowList").Image
barSubItemPanels.Glyph = ImageLoader.Instance.GetImageInfo("Action_Navigation").Image
barSubItemPanels.LargeGlyph = ImageLoader.Instance.GetLargeImageInfo("Action_Navigation").Image
End Sub
Protected Overridable Sub OnUITypeChanged()
Dim uiType As UIType = DirectCast(Me, IXafDocumentsHostWindow).UIType
If uiType = uiType.TabbedMDI Then
SetupTabbedMdi()
ElseIf uiType = uiType.StandardMDI Then
SetupStandardMdi()
Else
SetupSdi()
End If
End Sub
Protected Sub SetupSdi()
barManager.MdiMenuMergeStyle = BarMdiMenuMergeStyle.Never
documentManager.View = noDocumentsView
documentManager.ViewCollection.Remove(nativeMdiView)
documentManager.ViewCollection.Remove(tabbedView)
viewSitePanel.Visible = True
documentManager.ClientControl = viewSitePanel
barMdiChildrenListItem.Visibility = BarItemVisibility.Never
End Sub
Protected Sub SetupStandardMdi()
barManager.MdiMenuMergeStyle = BarMdiMenuMergeStyle.OnlyWhenChildMaximized
documentManager.View = nativeMdiView
documentManager.ViewCollection.Remove(noDocumentsView)
documentManager.ViewCollection.Remove(tabbedView)
SetupMdiCommon()
End Sub
Protected Sub SetupTabbedMdi()
barManager.MdiMenuMergeStyle = BarMdiMenuMergeStyle.Always
documentManager.View = tabbedView
documentManager.ViewCollection.Remove(noDocumentsView)
documentManager.ViewCollection.Remove(nativeMdiView)
SetupMdiCommon()
End Sub
Private Sub SetupMdiCommon()
viewSitePanel.Visible = False
documentManager.MdiParent = Me
barMdiChildrenListItem.Visibility = BarItemVisibility.Always
End Sub
Protected Overridable Sub RaiseViewChanged(view As DevExpress.ExpressApp.View)
RaiseEvent ISupportViewChanged_ViewChanged(Me, New TemplateViewChangedEventArgs(view))
End Sub
Protected Overridable Sub RaiseSettingsReloaded()
RaiseEvent ISupportStoreSettings_SettingsReloaded(Me, EventArgs.Empty)
End Sub
Protected Overrides ReadOnly Property ShowMode() As FormShowMode
Get
Return FormShowMode.AfterInitialization
End Get
End Property
Public Sub New()
InitializeComponent()
InitializeImages()
barManager.ForceLinkCreate()
statusMessagesHelper = New StatusMessagesHelper(barContainerStatusMessages.ItemLinks)
OnUITypeChanged()
End Sub
#Region "IActionControlsSite Members"
Private ReadOnly Property IActionControlsSite_ActionControls() As IEnumerable(Of IActionControl) Implements IActionControlsSite.ActionControls
Get
Return barManager.ActionControls
End Get
End Property
Private ReadOnly Property IActionControlsSite_ActionContainers() As IEnumerable(Of IActionControlContainer) Implements IActionControlsSite.ActionContainers
Get
Return barManager.ActionContainers
End Get
End Property
Private ReadOnly Property IActionControlsSite_DefaultContainer() As IActionControlContainer Implements IActionControlsSite.DefaultContainer
Get
Return actionContainerDefault
End Get
End Property
#End Region
#Region "IFrameTemplate Members"
Private Sub IFrameTemplate_SetView(view As DevExpress.ExpressApp.View) Implements IFrameTemplate.SetView
viewSiteManager.SetView(view)
RaiseViewChanged(view)
End Sub
Private Function IFrameTemplate_GetContainers() As ICollection(Of IActionContainer) Implements IFrameTemplate.GetContainers
Return New IActionContainer() {navigation}
End Function
Private ReadOnly Property IFrameTemplate_DefaultContainer() As IActionContainer Implements IFrameTemplate.DefaultContainer
Get
Return Nothing
End Get
End Property
#End Region
#Region "IWindowTemplate Members"
Private Sub IWindowTemplate_SetCaption(caption As String) Implements IWindowTemplate.SetCaption
Text = caption
End Sub
Private Sub IWindowTemplate_SetStatus(statusMessages As ICollection(Of String)) Implements IWindowTemplate.SetStatus
statusMessagesHelper.SetMessages(statusMessages)
End Sub
Private Property IWindowTemplate_IsSizeable() As Boolean Implements IWindowTemplate.IsSizeable
Get
Return FormBorderStyle.Sizable = FormBorderStyle
End Get
Set(value As Boolean)
FormBorderStyle = If(value, FormBorderStyle.Sizable, FormBorderStyle.FixedDialog)
End Set
End Property
#End Region
#Region "IBarManagerHolder Members"
Private ReadOnly Property IBarManagerHolder_BarManager() As BarManager Implements IBarManagerHolder.BarManager
Get
Return barManager
End Get
End Property
Private Custom Event IBarManagerHolder_BarManagerChanged As EventHandler Implements IBarManagerHolder.BarManagerChanged
AddHandler(ByVal value As EventHandler)
End AddHandler
RemoveHandler(ByVal value As EventHandler)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
End RaiseEvent
End Event
#End Region
#Region "IDockManagerHolder Members"
Private ReadOnly Property IDockManagerHolder_DockManager() As DevExpress.XtraBars.Docking.DockManager Implements IDockManagerHolder.DockManager
Get
Return dockManager
End Get
End Property
#End Region
#Region "IContextMenuHolder"
Private ReadOnly Property IContextMenuHolder_ContextMenu() As PopupMenu Implements IContextMenuHolder.ContextMenu
Get
Return templateContextMenu
End Get
End Property
#End Region
#Region "ISupportViewChanged Members"
Private Custom Event ISupportViewChanged_ViewChanged As EventHandler(Of TemplateViewChangedEventArgs) Implements ISupportViewChanged.ViewChanged
AddHandler(ByVal value As EventHandler(Of TemplateViewChangedEventArgs))
Events.AddHandler(viewChanged, value)
End AddHandler
RemoveHandler(ByVal value As EventHandler(Of TemplateViewChangedEventArgs))
Events.RemoveHandler(viewChanged, value)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As TemplateViewChangedEventArgs)
Dim handler As EventHandler(Of TemplateViewChangedEventArgs) = CType(Events(viewChanged), EventHandler(Of TemplateViewChangedEventArgs))
If (handler IsNot Nothing) Then
handler.Invoke(sender, e)
End If
End RaiseEvent
End Event
#End Region
#Region "IDocumentsHostWindow Members"
Private Sub IDocumentsHostWindow_Show() Implements IDocumentsHostWindow.Show
Show()
End Sub
Private Sub IDocumentsHostWindow_Hide() Implements IDocumentsHostWindow.Hide
Hide()
End Sub
Private Sub IDocumentsHostWindow_Close() Implements IDocumentsHostWindow.Close
Close()
End Sub
Private ReadOnly Property IDocumentsHostWindow_DestroyOnRemovingChildren() As Boolean Implements IDocumentsHostWindow.DestroyOnRemovingChildren
Get
Return True
End Get
End Property
Private ReadOnly Property IDocumentsHostWindow_DocumentManager() As DocumentManager Implements IDocumentsHostWindow.DocumentManager
Get
Return documentManager
End Get
End Property
Private Custom Event IDocumentsHostWindow_Closing As CancelEventHandler Implements IDocumentsHostWindow.Closing
AddHandler(ByVal value As CancelEventHandler)
AddHandler Closing, value
End AddHandler
RemoveHandler(ByVal value As CancelEventHandler)
RemoveHandler Closing, value
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As CancelEventArgs)
End RaiseEvent
End Event
Private Custom Event IDocumentsHostWindow_Closed As EventHandler Implements IDocumentsHostWindow.Closed
AddHandler(ByVal value As EventHandler)
AddHandler Closed, value
End AddHandler
RemoveHandler(ByVal value As EventHandler)
RemoveHandler Closed, value
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
End RaiseEvent
End Event
#End Region
#Region "IXafDocumentsHostWindow Members"
Private Property IXafDocumentsHostWindow_UIType() As UIType Implements IXafDocumentsHostWindow.UIType
Get
Return uiType
End Get
Set(value As UIType)
If uiType <> value Then
uiType = value
OnUITypeChanged()
End If
End Set
End Property
#End Region
#Region "ISupportUpdate Members"
Private Sub ISupportUpdate_BeginUpdate() Implements ISupportUpdate.BeginUpdate
barManager.BeginUpdate()
End Sub
Private Sub ISupportUpdate_EndUpdate() Implements ISupportUpdate.EndUpdate
barManager.EndUpdate()
End Sub
#End Region
#Region "IViewSiteTemplate Members"
Private ReadOnly Property IViewSiteTemplate_ViewSiteControl() As Object Implements IViewSiteTemplate.ViewSiteControl
Get
Return viewSiteManager.ViewSiteControl
End Get
End Property
#End Region
#Region "ISupportStoreSettings Members"
Private Sub ISupportStoreSettings_SetSettings(settings As IModelTemplate) Implements ISupportStoreSettings.SetSettings
Dim templateModel As IModelTemplateWin = DirectCast(settings, IModelTemplateWin)
Dim templatesHelper As New TemplatesHelper(templateModel)
formStateModelSynchronizer.Model = templatesHelper.GetFormStateNode()
navigation.Model = templatesHelper.GetNavBarCustomizationNode()
End Sub
Private Sub ISupportStoreSettings_ReloadSettings() Implements ISupportStoreSettings.ReloadSettings
modelSynchronizationManager.ApplyModel()
RaiseSettingsReloaded()
End Sub
Private Sub ISupportStoreSettings_SaveSettings() Implements ISupportStoreSettings.SaveSettings
SuspendLayout()
Try
modelSynchronizationManager.SynchronizeModel()
Finally
ResumeLayout()
End Try
End Sub
Private Custom Event ISupportStoreSettings_SettingsReloaded As EventHandler Implements ISupportStoreSettings.SettingsReloaded
AddHandler(ByVal value As EventHandler)
Events.AddHandler(settingsReloaded, value)
End AddHandler
RemoveHandler(ByVal value As EventHandler)
Events.RemoveHandler(settingsReloaded, value)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
Dim handler As EventHandler = CType(Events(settingsReloaded), EventHandler)
If (handler IsNot Nothing) Then
handler.Invoke(sender, e)
End If
End RaiseEvent
End Event
#End Region
End Class