172 lines
5.7 KiB
VB.net
172 lines
5.7 KiB
VB.net
Imports DevExpress.Utils
|
|
Imports DevExpress.XtraEditors.Controls
|
|
Imports DevExpress.XtraEditors.Repository
|
|
Imports DevExpress.XtraGrid
|
|
Imports DevExpress.XtraGrid.Views.Grid
|
|
Imports DevExpress.XtraTreeList
|
|
Imports DigitalData.GUIs.Common
|
|
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class GridLoader
|
|
Inherits BaseClass
|
|
|
|
Public Const STATE_SUCCESS As String = "SUCCESS"
|
|
Public Const STATE_FAILURE As String = "FAILURE"
|
|
Public Const STATE_WARNING As String = "WARNING"
|
|
Public Const STATE_WAITING As String = "WAITING"
|
|
Public Const STATE_HIGHLIGHT As String = "HIGHLIGHT"
|
|
|
|
Public ReadOnly Property SvgImageCollection As SvgImageCollection
|
|
Public ReadOnly Property GridBuilder As GridBuilder
|
|
|
|
Private ReadOnly StateIcons As New Dictionary(Of String, NodeImage) From {
|
|
{STATE_SUCCESS, NodeImage.Success},
|
|
{STATE_FAILURE, NodeImage.Failure}
|
|
}
|
|
|
|
Private Enum NodeImage
|
|
[Default] = 0
|
|
SQL = 1
|
|
File = 2
|
|
Mail = 3
|
|
Success = 4
|
|
Failure = 5
|
|
Warning = 6
|
|
Waiting = 7
|
|
User = 8
|
|
Highlight = 9
|
|
End Enum
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pSvgImageCollection As SvgImageCollection)
|
|
MyBase.New(pLogConfig)
|
|
Me.SvgImageCollection = pSvgImageCollection
|
|
Me.GridBuilder = New GridBuilder()
|
|
End Sub
|
|
|
|
Public Function InitTreeList() As TreeList
|
|
Dim oTreeList = New TreeList() With {
|
|
.Name = "TreeListResults",
|
|
.Visible = False
|
|
}
|
|
oTreeList.ForceInitialize()
|
|
oTreeList.KeyFieldName = "GUID"
|
|
oTreeList.ParentFieldName = "PARENT_ID"
|
|
|
|
GridBuilder.SetDefaults(oTreeList)
|
|
GridBuilder.SetClipboardHandler(oTreeList)
|
|
GridBuilder.SetReadOnlyOptions(oTreeList)
|
|
|
|
Return oTreeList
|
|
End Function
|
|
|
|
Public Function InitGrid() As GridControl
|
|
Dim oGrid = New GridControl() With {
|
|
.Name = "GridViewResults",
|
|
.Visible = False
|
|
}
|
|
|
|
oGrid.ForceInitialize()
|
|
Dim oView = DirectCast(oGrid.DefaultView, GridView)
|
|
|
|
GridBuilder.SetDefaults(oView)
|
|
GridBuilder.SetClipboardHandler(oView)
|
|
GridBuilder.SetReadOnlyOptions(oView)
|
|
|
|
Return oGrid
|
|
End Function
|
|
|
|
Public Sub InitTreeListColumns(pTreeList As TreeList, pMaxLength As Integer)
|
|
Dim oColumn1 = pTreeList.Columns.Item("COLUMN1")
|
|
Dim oColumn2 = pTreeList.Columns.Item("COLUMN2")
|
|
Dim oColumn3 = pTreeList.Columns.Item("COLUMN3")
|
|
Dim oAddedWhenColumn = pTreeList.Columns.Item("ADDED_WHEN")
|
|
Dim oStateColumn = pTreeList.Columns.Item("STATE")
|
|
Dim oIconColumn = pTreeList.Columns.Item("ICON")
|
|
|
|
Dim oStateEdit As RepositoryItemImageComboBox = GetStateEdit()
|
|
Dim oIconEdit As RepositoryItemImageComboBox = GetIconEdit()
|
|
|
|
oColumn1.VisibleIndex = 0
|
|
oStateColumn.VisibleIndex = 1
|
|
oIconColumn.VisibleIndex = 2
|
|
|
|
Dim oColumnLength = pMaxLength * 5
|
|
With oColumn1
|
|
.Caption = "Titel"
|
|
.MinWidth = oColumnLength
|
|
.MaxWidth = oColumnLength
|
|
.Width = oColumnLength
|
|
.OptionsColumn.AllowSize = False
|
|
.OptionsColumn.AllowSort = False
|
|
End With
|
|
|
|
With oColumn2
|
|
.Caption = "Wert 1"
|
|
End With
|
|
|
|
With oColumn3
|
|
.Caption = "Wert 2"
|
|
End With
|
|
|
|
With oAddedWhenColumn
|
|
.Caption = "Datum"
|
|
End With
|
|
|
|
With oStateColumn
|
|
.ColumnEdit = oStateEdit
|
|
.MaxWidth = 25
|
|
.MinWidth = 25
|
|
.Width = 25
|
|
.Caption = " "
|
|
.OptionsColumn.AllowSize = False
|
|
.OptionsColumn.AllowSort = False
|
|
.ImageOptions.Image = SvgImageCollection.GetImage(NodeImage.Success)
|
|
End With
|
|
|
|
With oIconColumn
|
|
.ColumnEdit = oIconEdit
|
|
.MaxWidth = 25
|
|
.MinWidth = 25
|
|
.Width = 25
|
|
.Caption = " "
|
|
.OptionsColumn.AllowSize = False
|
|
.OptionsColumn.AllowSort = False
|
|
.ImageOptions.Image = SvgImageCollection.GetImage(NodeImage.SQL)
|
|
End With
|
|
End Sub
|
|
|
|
Private Function GetIconEdit() As RepositoryItemImageComboBox
|
|
Dim oIconEdit As New RepositoryItemImageComboBox With {
|
|
.SmallImages = SvgImageCollection,
|
|
.GlyphAlignment = HorzAlignment.Near
|
|
}
|
|
oIconEdit.Buttons.Clear()
|
|
oIconEdit.Items.AddRange(New List(Of ImageComboBoxItem) From {
|
|
New ImageComboBoxItem("Email", "MAIL", NodeImage.Mail),
|
|
New ImageComboBoxItem("SQL", "SQL", NodeImage.SQL),
|
|
New ImageComboBoxItem("File", "FILE", NodeImage.File)
|
|
})
|
|
Return oIconEdit
|
|
End Function
|
|
|
|
Private Function GetStateEdit() As RepositoryItemImageComboBox
|
|
Dim oStateEdit As New RepositoryItemImageComboBox With {
|
|
.SmallImages = SvgImageCollection,
|
|
.GlyphAlignment = HorzAlignment.Near
|
|
}
|
|
oStateEdit.Buttons.Clear()
|
|
oStateEdit.Items.AddRange(New List(Of ImageComboBoxItem) From {
|
|
New ImageComboBoxItem("Success", "SUCCESS", NodeImage.Success),
|
|
New ImageComboBoxItem("Failure", "FAILURE", NodeImage.Failure),
|
|
New ImageComboBoxItem("Warning", "WARNING", NodeImage.Warning),
|
|
New ImageComboBoxItem("Waiting", "WAITING", NodeImage.Waiting),
|
|
New ImageComboBoxItem("Default", "DEFAULT", NodeImage.Default),
|
|
New ImageComboBoxItem("User", "USER", NodeImage.User),
|
|
New ImageComboBoxItem("Highlight", "HIGHLIGHT", NodeImage.Highlight)
|
|
})
|
|
|
|
Return oStateEdit
|
|
End Function
|
|
End Class
|