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.Name = "TreeListResults"
Me.TreeListResults.Size = New System.Drawing.Size(713, 554)
Me.TreeListResults.StateImageList = Me.SvgImageCollection1
Me.TreeListResults.TabIndex = 4
'
'SvgImageCollection1

View File

@ -11,6 +11,10 @@ Imports DevExpress.XtraTab
Imports DigitalData.Controls.DocumentViewer
Imports DevExpress.XtraEditors
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraTreeList.Columns
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.Utils
Imports DevExpress.XtraEditors.Controls
Public Class frmMonitor
Public Property LogConfig As LogConfig
@ -27,7 +31,7 @@ Public Class frmMonitor
Concat(HtmlViewColumns).
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_FAILURE As String = "FAILURE"
Private Const STATE_WARNING As String = "WARNING"
Private Const STATE_WAITING As String = "WAITING"
Private Enum NodeImage
[Default] = 0
@ -115,7 +122,6 @@ Public Class frmMonitor
End Function
Private Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick
InitTreeList()
LoadData()
End Sub
@ -127,12 +133,21 @@ Public Class frmMonitor
TreeListResults.DataSource = oTable
TreeListResults.PopulateColumns()
InitTreeList()
' Show all columns in DisplayColumns List
For Each oColumn In TreeListResults.Columns
oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName)
Next
Dim oStateColumn As TreeListColumn = TreeListResults.Columns.Item("STATE")
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
Return True
@ -165,6 +180,55 @@ Public Class frmMonitor
Private Sub InitTreeList()
TreeListResults.KeyFieldName = "GUID"
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
Private Sub cmbSearchKeys_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearchKeys.SelectedValueChanged
@ -244,7 +308,7 @@ Public Class frmMonitor
Continue For
End If
If IO.File.Exists(oPath) Then
If Not IO.File.Exists(oPath) Then
Continue For
End If
@ -277,14 +341,11 @@ Public Class frmMonitor
Next
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
ExpandNodes(oNode)
ExpandNodes(oNode, Condition)
Dim oColumn = TreeListResults.Columns.Item("COLOR")
Dim oColorString As String = NotNull(oNode.GetValue(oColumn), String.Empty)
If oColorString = "Red" Then
If Condition(oNode) = True Then
oNode.Expand()
ExpandParentNode(oNode)
End If
@ -340,7 +401,7 @@ Public Class frmMonitor
Return Nothing
End If
Dim oValue = Node.GetValue(oColumn).ToString
Dim oValue = Node.GetValue(oColumn)?.ToString
If oValue Is String.Empty Then
Return Nothing
@ -364,6 +425,10 @@ Public Class frmMonitor
oColor = Color.LightGreen
Case STATE_FAILURE
oColor = Color.LightCoral
Case STATE_WARNING
oColor = Color.Yellow
Case STATE_WAITING
oColor = Color.LightSkyBlue
End Select
e.Appearance.BackColor = oColor
@ -372,41 +437,41 @@ Public Class frmMonitor
End Sub
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 oSQLCommands = oValues.
Where(Function(v) v.Key.StartsWith("SELECT")).
Where(Function(v) v.Value IsNot Nothing).
Count()
'Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns)
'Dim oSQLCommands = oValues.
' Where(Function(v) v.Key.StartsWith("SELECT")).
' Where(Function(v) v.Value IsNot Nothing).
' Count()
Dim oFilePaths = oValues.
Where(Function(v) v.Key.StartsWith("DOCVIEW")).
Where(Function(v) v.Value IsNot Nothing).
Count()
'Dim oFilePaths = oValues.
' Where(Function(v) v.Key.StartsWith("DOCVIEW")).
' Where(Function(v) v.Value IsNot Nothing).
' Count()
Dim oHtmlDocuments = oValues.
Where(Function(v) v.Key.StartsWith("HTML")).
Where(Function(v) v.Value IsNot Nothing).
Count()
'Dim oHtmlDocuments = oValues.
' Where(Function(v) v.Key.StartsWith("HTML")).
' Where(Function(v) v.Value IsNot Nothing).
' Count()
Dim oIconColumn = TreeListResults.Columns.Item("ICON")
Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing)
Dim oStateColumn = TreeListResults.Columns.Item("STATE")
Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing)
'Dim oIconColumn = TreeListResults.Columns.Item("ICON")
'Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing)
'Dim oStateColumn = TreeListResults.Columns.Item("STATE")
'Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing)
If oSQLCommands > 0 Then
e.NodeImageIndex = NodeImage.SQL
ElseIf oFilePaths > 0 Then
e.NodeImageIndex = NodeImage.File
ElseIf oHtmlDocuments > 0 Then
e.NodeImageIndex = NodeImage.Mail
Else
If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then
Dim oIconIndex = StateIcons.Item(oState)
e.NodeImageIndex = oIconIndex
Else
e.NodeImageIndex = NodeImage.Default
End If
End If
'If oSQLCommands > 0 Then
' e.NodeImageIndex = NodeImage.SQL
'ElseIf oFilePaths > 0 Then
' e.NodeImageIndex = NodeImage.File
'ElseIf oHtmlDocuments > 0 Then
' e.NodeImageIndex = NodeImage.Mail
'Else
' If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then
' Dim oIconIndex = StateIcons.Item(oState)
' e.NodeImageIndex = oIconIndex
' Else
' e.NodeImageIndex = NodeImage.Default
' End If
'End If
End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick