ZooFLow: CW Admin
This commit is contained in:
92
GUIs.ZooFlow/Administration/ClassDetailPage.vb
Normal file
92
GUIs.ZooFlow/Administration/ClassDetailPage.vb
Normal file
@@ -0,0 +1,92 @@
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraLayout
|
||||
Imports DevExpress.XtraTab
|
||||
|
||||
Public Class ClassDetailPages
|
||||
Public Items As New Dictionary(Of String, DetailPage)
|
||||
Public CurrentPage As DetailPage
|
||||
|
||||
Public Event AnyControl_Focus As EventHandler(Of DetailPageEventArgs)
|
||||
Public Event AnyControl_Changed As EventHandler(Of DetailPageEventArgs)
|
||||
|
||||
Public Class DetailPageEventArgs
|
||||
Public Property Page As DetailPage
|
||||
End Class
|
||||
|
||||
Public Class DetailPage
|
||||
Public IsPrimary As Boolean = False
|
||||
Public TabPage As XtraTabPage
|
||||
Public Name As String
|
||||
Public BindingSource As BindingSource
|
||||
Public DataTable As DataTable
|
||||
Public AddedWhoEdit As TextEdit
|
||||
Public ChangedWhoEdit As TextEdit
|
||||
End Class
|
||||
|
||||
Public Sub New(LayoutControls As List(Of LayoutControl))
|
||||
For Each oLayoutControl In LayoutControls
|
||||
For Each oContainer As LayoutControlItem In oLayoutControl.Root.Items
|
||||
Dim oControl As BaseEdit = oContainer.Control
|
||||
AddHandler oControl.GotFocus, AddressOf Handle_Focus
|
||||
AddHandler oControl.EditValueChanged, AddressOf Handle_EditValueChanged
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub Add(Page As DetailPage)
|
||||
Items.Add(Page.TabPage.Name, Page)
|
||||
End Sub
|
||||
|
||||
Public Sub AddRange(ParamArray Pages As DetailPage())
|
||||
For Each oPage In Pages
|
||||
Add(oPage)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub Handle_Focus(sender As BaseEdit, e As EventArgs)
|
||||
Dim oControl As BaseEdit = sender
|
||||
|
||||
' Get the Layout Control containing the Edit Contol
|
||||
If TypeOf oControl.Parent Is LayoutControl Then
|
||||
Dim oLayoutControl As LayoutControl = oControl.Parent
|
||||
|
||||
' Get the TabPage containing the Layout Control
|
||||
If TypeOf oLayoutControl.Parent Is XtraTabPage Then
|
||||
Dim oTabPage As XtraTabPage = oLayoutControl.Parent
|
||||
|
||||
If Items.ContainsKey(oTabPage.Name) Then
|
||||
CurrentPage = Items.Item(oTabPage.Name)
|
||||
|
||||
Dim oData As New DetailPageEventArgs With {.Page = Items.Item(oTabPage.Name)}
|
||||
RaiseEvent AnyControl_Focus(oControl, oData)
|
||||
Else
|
||||
CurrentPage = Nothing
|
||||
RaiseEvent AnyControl_Focus(oControl, Nothing)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Handle_EditValueChanged(sender As BaseEdit, e As EventArgs)
|
||||
Dim oControl As BaseEdit = sender
|
||||
|
||||
' Get the Layout Control containing the Edit Contol
|
||||
If TypeOf oControl.Parent Is LayoutControl Then
|
||||
Dim oLayoutControl As LayoutControl = oControl.Parent
|
||||
|
||||
' Get the TabPage containing the Layout Control
|
||||
If TypeOf oLayoutControl.Parent Is XtraTabPage Then
|
||||
Dim oTabPage As XtraTabPage = oLayoutControl.Parent
|
||||
|
||||
If Items.ContainsKey(oTabPage.Name) Then
|
||||
Dim oData As New DetailPageEventArgs With {.Page = Items.Item(oTabPage.Name)}
|
||||
RaiseEvent AnyControl_Changed(oControl, oData)
|
||||
Else
|
||||
RaiseEvent AnyControl_Changed(oControl, Nothing)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user