First Pass of new control loader add BaseClass that provides Logger

This commit is contained in:
Jonathan Jenne
2019-03-22 16:26:15 +01:00
parent 0f4c04dde7
commit 968435c3f7
18 changed files with 379 additions and 94 deletions

View File

@@ -7,6 +7,9 @@ Imports DevExpress.XtraLayout.HitInfo
Imports DigitalData.Controls.LookupGrid
Public Class frmFormDesigner
Private _FormId As Int64
Private _ControlLoader As ClassControlLoader
#Region "Drag Helper"
Private _DragItem As BaseLayoutItem
Private _Window As DragFrameWindow
@@ -42,7 +45,7 @@ Public Class frmFormDesigner
Dim oHitInfo As BaseLayoutItemHitInfo = LayoutControlMain.CalcHitInfo(oPosition)
Dim oLayoutControl As LayoutControlItem = DirectCast(_DragItem, LayoutControlItem)
Dim oControlName As String = oLayoutControl.Tag & ClassUtils.ShortGUID()
Dim oControl As Control = GetControl(oLayoutControl.Tag, oControlName)
Dim oControl As Control = _ControlLoader.CreateLayoutControl(oLayoutControl.Tag, oControlName)
If oLayoutControl IsNot Nothing Then
HideDragHelper()
@@ -84,7 +87,7 @@ Public Class frmFormDesigner
End Sub
#End Region
Private _FormId As Int64
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
@@ -100,69 +103,18 @@ Public Class frmFormDesigner
_FormId = FormId
End Sub
Private Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
My.Channel.CreateDatabaseRequest("Load Controls", True)
Private Async Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
_ControlLoader = New ClassControlLoader(My.LogConfig)
Dim oSQL As String = $"SELECT * FROM VWICM_FORMCONTROL WHERE FORMID = {_FormId}"
Dim oResult = My.Channel.ReturnDatatable(oSQL)
Dim oTable = oResult.Table
Dim oTable = Await My.Common.Views.VWICM_FORM_CONTROL(_FormId)
If Not oResult.OK Then
ShowErrorMessage(New ApplicationException(oResult.ErrorMessage))
End If
My.Channel.CloseDatabaseRequest()
LoadControls(oTable)
_ControlLoader.LoadControls(oTable, LayoutControlGroupMain)
End Sub
Private Function GetControl(Type As String, Name As String)
Dim oEditor As BaseEdit = Nothing
Select Case Type
Case ClassConstants.CONTROL_TEXTEDIT
Dim oTextEdit As New TextEdit() With {.Name = Name}
oEditor = oTextEdit
Case ClassConstants.CONTROL_MEMOEDIT
Dim oMemoEdit As New MemoEdit() With {.Name = Name}
oEditor = oMemoEdit
Case ClassConstants.CONTROL_DATEEDIT
Dim oDateEdit As New DateEdit() With {.Name = Name}
oEditor = oDateEdit
Case ClassConstants.CONTROL_CHECKEDIT
Dim oCheckEdit As New CheckEdit() With {.Name = Name}
oEditor = oCheckEdit
Case ClassConstants.CONTROL_COMBOEDIT
Dim oComboEdit As New LookupControl2() With {.Name = Name}
oEditor = oComboEdit
Case Else
oEditor = Nothing
End Select
Return oEditor
End Function
Private Function CreateLayoutControlItem(Id As String) As LayoutControlItem
Return New LayoutControlItem() With {.Tag = Id}
End Function
Private Sub LoadControls(Datatable As DataTable)
For Each oRow As DataRow In Datatable.Rows
Dim oCaption As String = oRow.Item("COLNAME")
Dim oControlType As String = oRow.Item("CTRLTYPE")
Dim oControlId As String = oRow.Item("RECORD_ID").ToString
Dim oEditor As BaseEdit = GetControl(oControlType, oControlId)
If oEditor Is Nothing Then
Continue For
End If
LayoutControlGroupMain.AddItem(oCaption, oEditor)
Next
LayoutControlGroupMain.AddItem(New EmptySpaceItem())
End Sub
Private Sub LayoutControlMain_ItemSelectionChanged(sender As Object, e As EventArgs) Handles LayoutControlMain.ItemSelectionChanged
' TODO: Load Property Grid for selected item
End Sub