Loading Form, center integer columns, use sequence field, simplify, fix layout
This commit is contained in:
@@ -50,34 +50,10 @@ Public Class frmMonitor
|
||||
Private GridControlResults As GridControl
|
||||
Private GridViewResults As GridView
|
||||
|
||||
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 Const STATE_HIGHLIGHT As String = "HIGHLIGHT"
|
||||
|
||||
Private MarkedColumns As New List(Of GridColumn)
|
||||
Private ActiveSearch As Search = Nothing
|
||||
Private LastSearch As Search = Nothing
|
||||
Private LastLoadedSearch As Search = Nothing
|
||||
|
||||
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
|
||||
|
||||
Private ReadOnly StateIcons As New Dictionary(Of String, NodeImage) From {
|
||||
{STATE_SUCCESS, NodeImage.Success},
|
||||
{STATE_FAILURE, NodeImage.Failure}
|
||||
}
|
||||
'Private LastSearch As Search = Nothing
|
||||
'Private LastLoadedSearch As Search = Nothing
|
||||
|
||||
Private GridBuilder As GridBuilder
|
||||
Private ControlHelper As Common.ControlHelper
|
||||
@@ -90,13 +66,15 @@ Public Class frmMonitor
|
||||
Private FormHelper As FormHelper
|
||||
Private Patterns As Patterns2
|
||||
Private Workspace As Common.DocumentResultList.Workspace(Of Config)
|
||||
Private Validator As Validator
|
||||
Private GridLoader As GridLoader
|
||||
|
||||
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Try
|
||||
LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "Monitor")
|
||||
Logger = LogConfig.GetLogger()
|
||||
|
||||
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.UserAppDataPath, Application.StartupPath)
|
||||
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath, Application.StartupPath)
|
||||
Patterns = New Patterns2(LogConfig)
|
||||
FormHelper = New FormHelper(LogConfig, Me)
|
||||
ControlHelper = New Common.ControlHelper(LogConfig)
|
||||
@@ -128,6 +106,8 @@ Public Class frmMonitor
|
||||
SearchLoader = New SearchLoader(LogConfig, ConfigManager.Config, Database)
|
||||
ParamLoader = New ParameterLoader(LogConfig, Database, LayoutControl1)
|
||||
GridBuilder = New GridBuilder()
|
||||
Validator = New Validator(LogConfig, LayoutControl1, AdornerUIManager2, ControlHelper)
|
||||
GridLoader = New GridLoader(LogConfig, SvgImageCollection1)
|
||||
|
||||
InitGrid()
|
||||
InitTreeList()
|
||||
@@ -146,7 +126,6 @@ Public Class frmMonitor
|
||||
HtmlResultViewers = New List(Of RichEditControl) From {RichEditControl1, RichEditControl2}
|
||||
HtmlResultTabs = New List(Of XtraTabPage) From {XtraTabPageHtml1, XtraTabPageHtml2}
|
||||
|
||||
SearchLoader.LoadSearchParameters()
|
||||
LoadSearches()
|
||||
|
||||
|
||||
@@ -183,12 +162,14 @@ Public Class frmMonitor
|
||||
Return Database.GetScalarValue(oSQL)
|
||||
End Function
|
||||
|
||||
Private Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick
|
||||
LoadData()
|
||||
Private Async Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick
|
||||
Await LoadData()
|
||||
End Sub
|
||||
|
||||
Private Function LoadData() As Boolean
|
||||
Private Async Function LoadData() As Threading.Tasks.Task(Of Boolean)
|
||||
Try
|
||||
SplashScreenManager1.ShowWaitForm()
|
||||
|
||||
TreeListResults.DataSource = Nothing
|
||||
GridControlResults.DataSource = Nothing
|
||||
|
||||
@@ -197,57 +178,24 @@ Public Class frmMonitor
|
||||
End If
|
||||
|
||||
Dim oSearch As Search = cmbSearches.EditValue
|
||||
Dim oMissingParams = False
|
||||
|
||||
If LastLoadedSearch IsNot Nothing AndAlso oSearch.Id = LastLoadedSearch.Id Then
|
||||
Workspace.SaveWorkspace(oSearch.Id.ToString)
|
||||
End If
|
||||
'If LastLoadedSearch IsNot Nothing AndAlso oSearch.Id = LastLoadedSearch.Id Then
|
||||
' Workspace.SaveWorkspace(oSearch.Id.ToString)
|
||||
'End If
|
||||
|
||||
MarkedColumns.Clear()
|
||||
HideAllTabs()
|
||||
|
||||
With AdornerUIManager2.ValidationHintProperties
|
||||
.State = VisualEffects.ValidationHintState.Invalid
|
||||
.InvalidState.ShowBorder = True
|
||||
.InvalidState.ShowBackgroundMode = VisualEffects.ValidationHintBackgroundMode.Target
|
||||
End With
|
||||
|
||||
AdornerUIManager2.Hide()
|
||||
AdornerUIManager2.Elements.Clear()
|
||||
|
||||
Dim oSQL As String = oSearch.SQLCommand
|
||||
Dim oControls As New List(Of Control)
|
||||
For Each oItem As Control In LayoutControl1.Controls
|
||||
|
||||
Dim oParam = oSearch.Parameters.
|
||||
Where(Function(param) param.PatternTitle = oItem.Name).
|
||||
FirstOrDefault()
|
||||
|
||||
If oParam Is Nothing Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
oControls.Add(oItem)
|
||||
|
||||
If oParam.Required And Not ControlHelper.HasValue(oItem) Then
|
||||
AdornerUIManager2.Elements.Add(New VisualEffects.ValidationHint With {
|
||||
.TargetElement = oItem,
|
||||
.Visible = True
|
||||
})
|
||||
oMissingParams = True
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
AdornerUIManager2.Show()
|
||||
Dim oMissingParams = Validator.Validate(oSearch)
|
||||
|
||||
If oMissingParams = True Then
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
oSQL = Patterns.ReplaceControlValues(oSQL, oControls)
|
||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||
Dim oControls As List(Of Control) = LayoutControl1.Controls.Cast(Of Control).ToList()
|
||||
Dim oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls)
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
|
||||
|
||||
If oSearch.ReturnType = Constants.ReturnTypeEnum.TreeView Then
|
||||
GridControlResults.Visible = False
|
||||
@@ -267,7 +215,7 @@ Public Class frmMonitor
|
||||
End If
|
||||
Next
|
||||
|
||||
InitTreeListColumns(oMaxLength)
|
||||
GridLoader.InitTreeListColumns(TreeListResults, oMaxLength)
|
||||
|
||||
' Show all columns in DisplayColumns List
|
||||
For Each oColumn In TreeListResults.Columns
|
||||
@@ -283,7 +231,7 @@ Public Class frmMonitor
|
||||
ExpandNodes(oNode, Function(n)
|
||||
Dim oObjectValue = n.GetValue(oStateColumn)
|
||||
Dim oValue As String = NotNull(oObjectValue.ToString, String.Empty)
|
||||
Return oValue IsNot Nothing AndAlso (oValue = STATE_WARNING Or oValue = STATE_FAILURE)
|
||||
Return oValue IsNot Nothing AndAlso (oValue = State.STATE_WARNING Or oValue = State.STATE_FAILURE)
|
||||
End Function)
|
||||
Next
|
||||
|
||||
@@ -299,6 +247,12 @@ Public Class frmMonitor
|
||||
GridViewResults.PopulateColumns()
|
||||
GridBuilder.SetDateTimeColumns(GridViewResults)
|
||||
|
||||
For Each oColumn As GridColumn In GridViewResults.Columns
|
||||
If oColumn.ColumnType = GetType(Integer) Then
|
||||
oColumn.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center
|
||||
End If
|
||||
Next
|
||||
|
||||
MarkedColumns = GridViewResults.Columns.AsEnumerable.
|
||||
Where(Function(column)
|
||||
Dim oCaption = column.FieldName.ToUpper.Trim
|
||||
@@ -315,7 +269,7 @@ Public Class frmMonitor
|
||||
GridViewResults.FocusInvalidRow()
|
||||
|
||||
Workspace.LoadWorkspace(oSearch.Id.ToString)
|
||||
LastLoadedSearch = oSearch
|
||||
'LastLoadedSearch = oSearch
|
||||
|
||||
btnExportMain.Enabled = True
|
||||
|
||||
@@ -323,11 +277,14 @@ Public Class frmMonitor
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowErrorMessage(ex, "LoadData")
|
||||
Return False
|
||||
Finally
|
||||
SplashScreenManager1.CloseWaitForm()
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub LoadSearches()
|
||||
Try
|
||||
SearchLoader.LoadSearchParameters()
|
||||
SearchLoader.LoadSearches()
|
||||
|
||||
cmbSearches.Properties.Items.Clear()
|
||||
@@ -348,79 +305,9 @@ Public Class frmMonitor
|
||||
|
||||
|
||||
|
||||
Private Sub InitTreeListColumns(pMaxLength As Integer)
|
||||
Dim oColumn1 = TreeListResults.Columns.Item("COLUMN1")
|
||||
Dim oColumn2 = TreeListResults.Columns.Item("COLUMN2")
|
||||
Dim oColumn3 = TreeListResults.Columns.Item("COLUMN3")
|
||||
Dim oAddedWhenColumn = TreeListResults.Columns.Item("ADDED_WHEN")
|
||||
Dim oStateColumn = TreeListResults.Columns.Item("STATE")
|
||||
Dim oIconColumn = TreeListResults.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 = SvgImageCollection1.GetImage(NodeImage.Success)
|
||||
End With
|
||||
|
||||
With oIconColumn
|
||||
.ColumnEdit = oIconEdit
|
||||
.MaxWidth = 25
|
||||
.MinWidth = 25
|
||||
.Width = 25
|
||||
.Caption = " "
|
||||
.OptionsColumn.AllowSize = False
|
||||
.OptionsColumn.AllowSort = False
|
||||
.ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.SQL)
|
||||
End With
|
||||
End Sub
|
||||
|
||||
Private Function GetIconEdit() As RepositoryItemImageComboBox
|
||||
Dim oIconEdit As New RepositoryItemImageComboBox With {
|
||||
.SmallImages = SvgImageCollection1,
|
||||
.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 Sub cmbSearches_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearches.SelectedValueChanged
|
||||
DisposeTreeList()
|
||||
@@ -449,11 +336,11 @@ Public Class frmMonitor
|
||||
|
||||
Dim oSearch As Search = CType(cmbSearches.SelectedItem, Search)
|
||||
|
||||
If ActiveSearch IsNot Nothing Then
|
||||
Workspace.SaveWorkspace(ActiveSearch.Id.ToString)
|
||||
End If
|
||||
'If ActiveSearch IsNot Nothing Then
|
||||
' Workspace.SaveWorkspace(ActiveSearch.Id.ToString)
|
||||
'End If
|
||||
|
||||
LastSearch = ActiveSearch
|
||||
'LastSearch = ActiveSearch
|
||||
ActiveSearch = oSearch
|
||||
|
||||
AdornerUIManager2.Hide()
|
||||
@@ -701,13 +588,13 @@ Public Class frmMonitor
|
||||
Dim oColor As Color = Nothing
|
||||
|
||||
Select Case oState.ToString
|
||||
Case STATE_SUCCESS
|
||||
Case State.STATE_SUCCESS
|
||||
oColor = Color.LightGreen
|
||||
Case STATE_FAILURE
|
||||
Case State.STATE_FAILURE
|
||||
oColor = Color.LightCoral
|
||||
Case STATE_WARNING
|
||||
Case State.STATE_WARNING
|
||||
oColor = Color.Yellow
|
||||
Case STATE_WAITING
|
||||
Case State.STATE_WAITING
|
||||
oColor = Color.LightSkyBlue
|
||||
End Select
|
||||
|
||||
@@ -762,16 +649,15 @@ Public Class frmMonitor
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmMonitor_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
|
||||
Private Async Sub frmMonitor_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
|
||||
If e.KeyCode = Keys.F5 Then
|
||||
Debug.Write("Debug.Write")
|
||||
Console.WriteLine("Console.WriteLine")
|
||||
Debug.Print("Debug.Print")
|
||||
LoadData()
|
||||
Await LoadData()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TreeListResults_MouseClick(sender As Object, e As MouseEventArgs)
|
||||
Dim oInfo As TreeListHitInfo = TreeListResults.CalcHitInfo(New Point(e.X, e.Y))
|
||||
|
||||
@@ -813,7 +699,7 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnReloadSearches.ItemClick
|
||||
SearchLoader.LoadSearchParameters()
|
||||
|
||||
LoadSearches()
|
||||
|
||||
TreeListResults.DataSource = Nothing
|
||||
@@ -913,17 +799,17 @@ Public Class frmMonitor
|
||||
SplitContainerFileHTML.Collapsed = True
|
||||
End Sub
|
||||
|
||||
Private Sub frmMonitor_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
If ActiveSearch IsNot Nothing Then
|
||||
Workspace.SaveWorkspace(ActiveSearch.Id.ToString)
|
||||
End If
|
||||
End Sub
|
||||
'Private Sub frmMonitor_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
' If ActiveSearch IsNot Nothing Then
|
||||
' Workspace.SaveWorkspace(ActiveSearch.Id.ToString)
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
Private Sub btnResetLayout_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnResetLayout.ItemClick
|
||||
If ActiveSearch IsNot Nothing Then
|
||||
Workspace.ResetWorkspace(ActiveSearch.Id.ToString)
|
||||
LastLoadedSearch = Nothing
|
||||
ActiveSearch = Nothing
|
||||
'LastLoadedSearch = Nothing
|
||||
'ActiveSearch = Nothing
|
||||
|
||||
DisposeTreeList()
|
||||
InitTreeList()
|
||||
@@ -931,9 +817,11 @@ Public Class frmMonitor
|
||||
DisposeGrid()
|
||||
InitGrid()
|
||||
|
||||
LoadSearch()
|
||||
'LoadSearch()
|
||||
HideAllTabs()
|
||||
|
||||
LoadData()
|
||||
|
||||
lbResultCount.Caption = String.Format(lbResultCount.Tag, 0)
|
||||
End If
|
||||
End Sub
|
||||
@@ -946,19 +834,12 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
Private Sub InitGrid()
|
||||
GridControlResults = New GridControl() With {
|
||||
.Name = "GridViewResults",
|
||||
.Visible = False
|
||||
}
|
||||
SplitContainerSQL.Panel1.Controls.Add(GridControlResults)
|
||||
GridControlResults.ForceInitialize()
|
||||
GridControlResults = GridLoader.InitGrid()
|
||||
GridViewResults = DirectCast(GridControlResults.DefaultView, GridView)
|
||||
|
||||
AddHandler GridViewResults.FocusedRowChanged, AddressOf GridViewResults_FocusedRowChanged
|
||||
|
||||
GridBuilder.SetDefaults(GridViewResults)
|
||||
GridBuilder.SetClipboardHandler(GridViewResults)
|
||||
GridBuilder.SetReadOnlyOptions(GridViewResults)
|
||||
SplitContainerSQL.Panel1.Controls.Add(GridControlResults)
|
||||
End Sub
|
||||
|
||||
Private Sub DisposeTreeList()
|
||||
@@ -967,51 +848,21 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
Private Sub InitTreeList()
|
||||
TreeListResults = New TreeList() With {
|
||||
.Name = "TreeListResults",
|
||||
.Visible = False
|
||||
}
|
||||
SplitContainerSQL.Panel1.Controls.Add(TreeListResults)
|
||||
TreeListResults.ForceInitialize()
|
||||
|
||||
TreeListResults.KeyFieldName = "GUID"
|
||||
TreeListResults.ParentFieldName = "PARENT_ID"
|
||||
TreeListResults = GridLoader.InitTreeList()
|
||||
|
||||
AddHandler TreeListResults.FocusedNodeChanged, AddressOf TreeListResults_FocusedNodeChanged
|
||||
AddHandler TreeListResults.MouseClick, AddressOf TreeListResults_MouseClick
|
||||
AddHandler TreeListResults.CustomDrawNodeCell, AddressOf TreeListResults_CustomDrawNodeCell
|
||||
|
||||
GridBuilder.SetDefaults(TreeListResults)
|
||||
GridBuilder.SetClipboardHandler(TreeListResults)
|
||||
GridBuilder.SetReadOnlyOptions(TreeListResults)
|
||||
SplitContainerSQL.Panel1.Controls.Add(TreeListResults)
|
||||
End Sub
|
||||
|
||||
'Private DisallowedComponentNames As New List(Of String) From {"LayoutControlItem", "LayoutControlGroup", "LayoutControl"}
|
||||
Private Sub BarButtonItem2_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||
If ActiveSearch Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
'Private Sub WorkspaceManager1_PropertyDeserializing(sender As Object, ea As PropertyCancelEventArgs) Handles WorkspaceManager1.PropertyDeserializing, WorkspaceManager1.PropertySerializing
|
||||
' Dim oName = ea.Component?.GetType.Name
|
||||
' If DisallowedComponentNames.Contains(oName) Then
|
||||
' ea.Cancel = True
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
Private Function GetStateEdit() As RepositoryItemImageComboBox
|
||||
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),
|
||||
New ImageComboBoxItem("User", "USER", NodeImage.User),
|
||||
New ImageComboBoxItem("Highlight", "HIGHLIGHT", NodeImage.Highlight)
|
||||
})
|
||||
|
||||
Return oStateEdit
|
||||
End Function
|
||||
Workspace.SaveWorkspace(ActiveSearch.Id.ToString)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user