Monitor: icons

This commit is contained in:
Jonathan Jenne 2021-05-25 16:53:15 +02:00
parent 61f5c80653
commit 826b1c41ec
2 changed files with 107 additions and 43 deletions

View File

@ -391,7 +391,6 @@ Partial Class frmMonitor
Me.TreeListResults.MenuManager = Me.RibbonControl1 Me.TreeListResults.MenuManager = Me.RibbonControl1
Me.TreeListResults.Name = "TreeListResults" Me.TreeListResults.Name = "TreeListResults"
Me.TreeListResults.Size = New System.Drawing.Size(713, 554) Me.TreeListResults.Size = New System.Drawing.Size(713, 554)
Me.TreeListResults.StateImageList = Me.SvgImageCollection1
Me.TreeListResults.TabIndex = 4 Me.TreeListResults.TabIndex = 4
' '
'SvgImageCollection1 'SvgImageCollection1

View File

@ -11,6 +11,10 @@ Imports DevExpress.XtraTab
Imports DigitalData.Controls.DocumentViewer Imports DigitalData.Controls.DocumentViewer
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraRichEdit Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraTreeList.Columns
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.Utils
Imports DevExpress.XtraEditors.Controls
Public Class frmMonitor Public Class frmMonitor
Public Property LogConfig As LogConfig Public Property LogConfig As LogConfig
@ -27,7 +31,7 @@ Public Class frmMonitor
Concat(HtmlViewColumns). Concat(HtmlViewColumns).
ToList ToList
Private ReadOnly DisplayColumns As New List(Of String) From {"COLUMN1", "COLUMN2", "COLUMN3", "ADDED_WHEN"} Private ReadOnly DisplayColumns As New List(Of String) From {"COLUMN1", "COLUMN2", "COLUMN3", "ADDED_WHEN", "STATE", "ICON"}
@ -43,6 +47,9 @@ Public Class frmMonitor
Private Const STATE_SUCCESS As String = "SUCCESS" Private Const STATE_SUCCESS As String = "SUCCESS"
Private Const STATE_FAILURE As String = "FAILURE" Private Const STATE_FAILURE As String = "FAILURE"
Private Const STATE_WARNING As String = "WARNING"
Private Const STATE_WAITING As String = "WAITING"
Private Enum NodeImage Private Enum NodeImage
[Default] = 0 [Default] = 0
@ -115,7 +122,6 @@ Public Class frmMonitor
End Function End Function
Private Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick Private Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick
InitTreeList()
LoadData() LoadData()
End Sub End Sub
@ -127,12 +133,21 @@ Public Class frmMonitor
TreeListResults.DataSource = oTable TreeListResults.DataSource = oTable
TreeListResults.PopulateColumns() TreeListResults.PopulateColumns()
InitTreeList()
' Show all columns in DisplayColumns List
For Each oColumn In TreeListResults.Columns For Each oColumn In TreeListResults.Columns
oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName) oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName)
Next Next
Dim oStateColumn As TreeListColumn = TreeListResults.Columns.Item("STATE")
For Each oNode As TreeListNode In TreeListResults.Nodes For Each oNode As TreeListNode In TreeListResults.Nodes
ExpandNodes(oNode) ExpandNodes(oNode, Function(n)
Dim oObjectValue = n.GetValue(oStateColumn)
Dim oValue As String = NotNull(oObjectValue, String.Empty)
Return oValue IsNot Nothing AndAlso (oValue = STATE_WARNING Or oValue = STATE_FAILURE)
End Function)
Next Next
Return True Return True
@ -165,6 +180,55 @@ Public Class frmMonitor
Private Sub InitTreeList() Private Sub InitTreeList()
TreeListResults.KeyFieldName = "GUID" TreeListResults.KeyFieldName = "GUID"
TreeListResults.ParentFieldName = "PARENT_ID" TreeListResults.ParentFieldName = "PARENT_ID"
Dim oStateEdit As New RepositoryItemImageComboBox With {
.SmallImages = SvgImageCollection1,
.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)
})
Dim oIconEdit As New RepositoryItemImageComboBox With {
.SmallImages = SvgImageCollection1,
.GlyphAlignment = HorzAlignment.Near
}
oStateEdit.Buttons.Clear()
oStateEdit.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)
})
Dim oColumn1 = TreeListResults.Columns.Item("COLUMN1")
Dim oStateColumn = TreeListResults.Columns.Item("STATE")
Dim oIconColumn = TreeListResults.Columns.Item("ICON")
oColumn1.VisibleIndex = 0
oStateColumn.VisibleIndex = 1
oIconColumn.VisibleIndex = 2
With oStateColumn
.ColumnEdit = oStateEdit
.MaxWidth = 25
.MinWidth = 25
.Caption = " "
.ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.Success)
End With
With oIconColumn
.ColumnEdit = oStateEdit
.MaxWidth = 25
.MinWidth = 25
.Caption = " "
.ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.SQL)
End With
End Sub End Sub
Private Sub cmbSearchKeys_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearchKeys.SelectedValueChanged Private Sub cmbSearchKeys_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearchKeys.SelectedValueChanged
@ -244,7 +308,7 @@ Public Class frmMonitor
Continue For Continue For
End If End If
If IO.File.Exists(oPath) Then If Not IO.File.Exists(oPath) Then
Continue For Continue For
End If End If
@ -277,14 +341,11 @@ Public Class frmMonitor
Next Next
End Sub End Sub
Private Sub ExpandNodes(RootNode As TreeListNode) Private Sub ExpandNodes(RootNode As TreeListNode, Condition As Predicate(Of TreeListNode))
For Each oNode As TreeListNode In RootNode.Nodes For Each oNode As TreeListNode In RootNode.Nodes
ExpandNodes(oNode) ExpandNodes(oNode, Condition)
Dim oColumn = TreeListResults.Columns.Item("COLOR") If Condition(oNode) = True Then
Dim oColorString As String = NotNull(oNode.GetValue(oColumn), String.Empty)
If oColorString = "Red" Then
oNode.Expand() oNode.Expand()
ExpandParentNode(oNode) ExpandParentNode(oNode)
End If End If
@ -340,7 +401,7 @@ Public Class frmMonitor
Return Nothing Return Nothing
End If End If
Dim oValue = Node.GetValue(oColumn).ToString Dim oValue = Node.GetValue(oColumn)?.ToString
If oValue Is String.Empty Then If oValue Is String.Empty Then
Return Nothing Return Nothing
@ -364,6 +425,10 @@ Public Class frmMonitor
oColor = Color.LightGreen oColor = Color.LightGreen
Case STATE_FAILURE Case STATE_FAILURE
oColor = Color.LightCoral oColor = Color.LightCoral
Case STATE_WARNING
oColor = Color.Yellow
Case STATE_WAITING
oColor = Color.LightSkyBlue
End Select End Select
e.Appearance.BackColor = oColor e.Appearance.BackColor = oColor
@ -372,41 +437,41 @@ Public Class frmMonitor
End Sub End Sub
Private Sub TreeListResults_GetStateImage(sender As Object, e As DevExpress.XtraTreeList.GetStateImageEventArgs) Handles TreeListResults.GetStateImage Private Sub TreeListResults_GetStateImage(sender As Object, e As DevExpress.XtraTreeList.GetStateImageEventArgs) Handles TreeListResults.GetStateImage
Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns) 'Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns)
Dim oSQLCommands = oValues. 'Dim oSQLCommands = oValues.
Where(Function(v) v.Key.StartsWith("SELECT")). ' Where(Function(v) v.Key.StartsWith("SELECT")).
Where(Function(v) v.Value IsNot Nothing). ' Where(Function(v) v.Value IsNot Nothing).
Count() ' Count()
Dim oFilePaths = oValues. 'Dim oFilePaths = oValues.
Where(Function(v) v.Key.StartsWith("DOCVIEW")). ' Where(Function(v) v.Key.StartsWith("DOCVIEW")).
Where(Function(v) v.Value IsNot Nothing). ' Where(Function(v) v.Value IsNot Nothing).
Count() ' Count()
Dim oHtmlDocuments = oValues. 'Dim oHtmlDocuments = oValues.
Where(Function(v) v.Key.StartsWith("HTML")). ' Where(Function(v) v.Key.StartsWith("HTML")).
Where(Function(v) v.Value IsNot Nothing). ' Where(Function(v) v.Value IsNot Nothing).
Count() ' Count()
Dim oIconColumn = TreeListResults.Columns.Item("ICON") 'Dim oIconColumn = TreeListResults.Columns.Item("ICON")
Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing) 'Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing)
Dim oStateColumn = TreeListResults.Columns.Item("STATE") 'Dim oStateColumn = TreeListResults.Columns.Item("STATE")
Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing) 'Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing)
If oSQLCommands > 0 Then 'If oSQLCommands > 0 Then
e.NodeImageIndex = NodeImage.SQL ' e.NodeImageIndex = NodeImage.SQL
ElseIf oFilePaths > 0 Then 'ElseIf oFilePaths > 0 Then
e.NodeImageIndex = NodeImage.File ' e.NodeImageIndex = NodeImage.File
ElseIf oHtmlDocuments > 0 Then 'ElseIf oHtmlDocuments > 0 Then
e.NodeImageIndex = NodeImage.Mail ' e.NodeImageIndex = NodeImage.Mail
Else 'Else
If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then ' If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then
Dim oIconIndex = StateIcons.Item(oState) ' Dim oIconIndex = StateIcons.Item(oState)
e.NodeImageIndex = oIconIndex ' e.NodeImageIndex = oIconIndex
Else ' Else
e.NodeImageIndex = NodeImage.Default ' e.NodeImageIndex = NodeImage.Default
End If ' End If
End If 'End If
End Sub End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick