2020-11-12 15:13:22 +01:00

91 lines
3.0 KiB
VB.net

Imports DevExpress.XtraEditors
Imports DevExpress.XtraLayout
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.Database
Imports DigitalData.Controls.LookupGrid
Imports DevExpress.XtraGrid
Imports System.Windows.Forms
Imports DevExpress.XtraGrid.Views.Grid
Public Class PropertyControls
Private _LogConfig As LogConfig
Private _Logger As Logger
Private _Db As MSSQLServer
Public Sub New(LogConfig As LogConfig, Database As MSSQLServer)
_LogConfig = LogConfig
_Logger = LogConfig.GetLogger()
_Db = Database
End Sub
Public Function GetControlForAttribute(pAttribute As Attribute, pIsReadOnly As Boolean) As Control
Dim oControl As Control
Select Case pAttribute.TypeName
Case Attribute.TYPE_BIT
Dim oCheckboxEdit As New CheckEdit With {
.Name = pAttribute.ID,
.Text = pAttribute.Title,
.[ReadOnly] = pIsReadOnly
}
oControl = oCheckboxEdit
Case Attribute.TYPE_DATE
Dim oDateEdit As New DateEdit With {
.Name = pAttribute.ID,
.[ReadOnly] = pIsReadOnly
}
oControl = oDateEdit
Case Attribute.TYPE_BIG_INTEGER
Dim oTextEdit As New TextEdit With {
.Name = pAttribute.ID,
.[ReadOnly] = pIsReadOnly
}
oControl = oTextEdit
Case Attribute.TYPE_DECIMAL
Dim oTextEdit As New TextEdit With {
.Name = pAttribute.ID,
.[ReadOnly] = pIsReadOnly
}
oControl = oTextEdit
Case Attribute.TYPE_FLOAT
Dim oTextEdit As New TextEdit With {
.Name = pAttribute.ID,
.[ReadOnly] = pIsReadOnly
}
oControl = oTextEdit
Case Attribute.TYPE_VECTOR_STRING
' Minimum size is picked up by the LayoutControl to determine the grids size
Dim oGrid As New GridControl With {
.Name = pAttribute.ID,
.MinimumSize = New System.Drawing.Size(0, 100)
}
oGrid.ForceInitialize()
Dim oView = DirectCast(oGrid.DefaultView, GridView)
oView.OptionsView.ShowGroupPanel = False
oView.OptionsView.ShowColumnHeaders = False
oView.OptionsView.ShowIndicator = False
oView.OptionsBehavior.ReadOnly = True
oView.OptionsBehavior.Editable = False
oControl = oGrid
Case Else
Dim oTextEdit As New TextEdit With {
.Name = pAttribute.ID,
.[ReadOnly] = pIsReadOnly
}
oControl = oTextEdit
End Select
Return oControl
End Function
End Class