From bfa6dd3b7944c119278cdf34cef27afe07db7b6c Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 26 Jun 2019 15:05:09 +0200 Subject: [PATCH] add monodiag, add workflow overview --- DDMonorepo.sln | 7 + GUIs.ClientSuite/ClassPanelManager.vb | 5 +- GUIs.ClientSuite/ClientSuite.vbproj | 35 +- .../My Project/Resources.Designer.vb | 30 ++ GUIs.ClientSuite/My Project/Resources.resx | 9 + GUIs.ClientSuite/My Project/licenses.licx | 21 +- GUIs.ClientSuite/Resources/ampel-gelb.png | Bin 0 -> 10121 bytes GUIs.ClientSuite/Resources/ampel-gruen.png | Bin 0 -> 11293 bytes GUIs.ClientSuite/Resources/ampel-rot.png | Bin 0 -> 11822 bytes GUIs.ClientSuite/Workflow/WorkflowItem.vb | 42 ++ .../Workflow/frmWorkflowOverview.Designer.vb | 365 ++++++++++++++++++ .../Workflow/frmWorkflowOverview.resx | 269 +++++++++++++ .../Workflow/frmWorkflowOverview.vb | 18 + .../frmWorkflowStep.Designer.vb | 0 .../frmWorkflowStep.resx | 0 .../frmWorkflowStep.vb | 1 - GUIs.ClientSuite/frmMain.Designer.vb | 38 +- GUIs.ClientSuite/frmMain.resx | 20 + GUIs.ClientSuite/frmMain.vb | 7 + GUIs.ClientSuite/packages.config | 1 + GUIs.Test.TestGUI/Form1.Designer.vb | 23 ++ GUIs.Test.TestGUI/Form1.vb | 9 + LoggerDiag/App.config | 6 + LoggerDiag/DummyConfig.vb | 3 + LoggerDiag/MonoDiag.vbproj | 151 ++++++++ LoggerDiag/My Project/Application.Designer.vb | 38 ++ LoggerDiag/My Project/Application.myapp | 10 + LoggerDiag/My Project/AssemblyInfo.vb | 35 ++ LoggerDiag/My Project/Resources.Designer.vb | 63 +++ LoggerDiag/My Project/Resources.resx | 117 ++++++ LoggerDiag/My Project/Settings.Designer.vb | 73 ++++ LoggerDiag/My Project/Settings.settings | 7 + LoggerDiag/My Project/licenses.licx | 1 + LoggerDiag/frmMain.Designer.vb | 122 ++++++ LoggerDiag/frmMain.resx | 120 ++++++ LoggerDiag/frmMain.vb | 62 +++ LoggerDiag/packages.config | 4 + 37 files changed, 1678 insertions(+), 34 deletions(-) create mode 100644 GUIs.ClientSuite/Resources/ampel-gelb.png create mode 100644 GUIs.ClientSuite/Resources/ampel-gruen.png create mode 100644 GUIs.ClientSuite/Resources/ampel-rot.png create mode 100644 GUIs.ClientSuite/Workflow/WorkflowItem.vb create mode 100644 GUIs.ClientSuite/Workflow/frmWorkflowOverview.Designer.vb create mode 100644 GUIs.ClientSuite/Workflow/frmWorkflowOverview.resx create mode 100644 GUIs.ClientSuite/Workflow/frmWorkflowOverview.vb rename GUIs.ClientSuite/{FormWorkflow => Workflow}/frmWorkflowStep.Designer.vb (100%) rename GUIs.ClientSuite/{FormWorkflow => Workflow}/frmWorkflowStep.resx (100%) rename GUIs.ClientSuite/{FormWorkflow => Workflow}/frmWorkflowStep.vb (98%) create mode 100644 LoggerDiag/App.config create mode 100644 LoggerDiag/DummyConfig.vb create mode 100644 LoggerDiag/MonoDiag.vbproj create mode 100644 LoggerDiag/My Project/Application.Designer.vb create mode 100644 LoggerDiag/My Project/Application.myapp create mode 100644 LoggerDiag/My Project/AssemblyInfo.vb create mode 100644 LoggerDiag/My Project/Resources.Designer.vb create mode 100644 LoggerDiag/My Project/Resources.resx create mode 100644 LoggerDiag/My Project/Settings.Designer.vb create mode 100644 LoggerDiag/My Project/Settings.settings create mode 100644 LoggerDiag/My Project/licenses.licx create mode 100644 LoggerDiag/frmMain.Designer.vb create mode 100644 LoggerDiag/frmMain.resx create mode 100644 LoggerDiag/frmMain.vb create mode 100644 LoggerDiag/packages.config diff --git a/DDMonorepo.sln b/DDMonorepo.sln index d3da75c2..5f01bae5 100644 --- a/DDMonorepo.sln +++ b/DDMonorepo.sln @@ -74,6 +74,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "JobRunner", "Service.JobRun EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LookupControlGui", "LookupControlGui\LookupControlGui.vbproj", "{B65E24B3-D334-455D-A0BF-B33B8358B013}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MonoDiag", "LoggerDiag\MonoDiag.vbproj", "{3D437957-B90B-4D8F-9219-6D19B0C90994}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -180,6 +182,10 @@ Global {B65E24B3-D334-455D-A0BF-B33B8358B013}.Debug|Any CPU.Build.0 = Debug|Any CPU {B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.ActiveCfg = Release|Any CPU {B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.Build.0 = Release|Any CPU + {3D437957-B90B-4D8F-9219-6D19B0C90994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D437957-B90B-4D8F-9219-6D19B0C90994}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D437957-B90B-4D8F-9219-6D19B0C90994}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D437957-B90B-4D8F-9219-6D19B0C90994}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -210,6 +216,7 @@ Global {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {926E6474-5613-4373-BB99-B101158B91EF} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} {B65E24B3-D334-455D-A0BF-B33B8358B013} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} + {3D437957-B90B-4D8F-9219-6D19B0C90994} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286} diff --git a/GUIs.ClientSuite/ClassPanelManager.vb b/GUIs.ClientSuite/ClassPanelManager.vb index 123e831e..a127fde9 100644 --- a/GUIs.ClientSuite/ClassPanelManager.vb +++ b/GUIs.ClientSuite/ClassPanelManager.vb @@ -40,9 +40,8 @@ Public Class PanelManager Private Sub View_DocumentDeactivated(sender As Object, e As DocumentEventArgs) Dim oDocument As BaseDocument = e.Document - ' TODO: oDocument.Control can be nothing - Dim oHashcode As Integer = oDocument.Control.GetHashCode + ' TODO: oDocument.Control can be nothing If oDocument Is Nothing Then Exit Sub End If @@ -51,7 +50,7 @@ Public Class PanelManager For Each oPanel As DockPanel In _dockManager.Panels Dim oTag As Integer = oPanel.Tag - If oTag = oHashcode Then + If oTag = oDocument.Control.GetHashCode Then oPanel.Hide() End If Next diff --git a/GUIs.ClientSuite/ClientSuite.vbproj b/GUIs.ClientSuite/ClientSuite.vbproj index 07cac5ef..355eee6f 100644 --- a/GUIs.ClientSuite/ClientSuite.vbproj +++ b/GUIs.ClientSuite/ClientSuite.vbproj @@ -69,6 +69,7 @@ + @@ -86,9 +87,9 @@ ..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll + - False - ..\Modules.Logging\bin\Debug\NLog.dll + ..\packages\NLog.4.5.11\lib\net45\NLog.dll ..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll @@ -101,6 +102,7 @@ + @@ -168,10 +170,16 @@ Form - + + frmWorkflowOverview.vb + + + Form + + frmWorkflowStep.vb - + Form @@ -197,6 +205,7 @@ + DockManagerTest.vb @@ -330,7 +339,10 @@ frmFormDesigner.vb - + + frmWorkflowOverview.vb + + frmWorkflowStep.vb @@ -489,6 +501,17 @@ - + + + + + + + + + + + + \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/Resources.Designer.vb b/GUIs.ClientSuite/My Project/Resources.Designer.vb index ae8e333e..a2e68ac4 100644 --- a/GUIs.ClientSuite/My Project/Resources.Designer.vb +++ b/GUIs.ClientSuite/My Project/Resources.Designer.vb @@ -60,6 +60,36 @@ Namespace My.Resources End Set End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ampel_gelb() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ampel_gelb", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ampel_gruen() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ampel_gruen", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ampel_rot() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ampel_rot", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/GUIs.ClientSuite/My Project/Resources.resx b/GUIs.ClientSuite/My Project/Resources.resx index c89d87db..c8fa5830 100644 --- a/GUIs.ClientSuite/My Project/Resources.resx +++ b/GUIs.ClientSuite/My Project/Resources.resx @@ -136,4 +136,13 @@ ..\Resources\CheckBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ampel-gelb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ampel-gruen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ampel-rot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/licenses.licx b/GUIs.ClientSuite/My Project/licenses.licx index 8d76c874..89071046 100644 --- a/GUIs.ClientSuite/My Project/licenses.licx +++ b/GUIs.ClientSuite/My Project/licenses.licx @@ -1,15 +1,16 @@ -DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.Utils.MVVM.MVVMContext, DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ClientSuite/Resources/ampel-gelb.png b/GUIs.ClientSuite/Resources/ampel-gelb.png new file mode 100644 index 0000000000000000000000000000000000000000..5d51423edf0ee45b7a56ea934e15e1fb53c84eb5 GIT binary patch literal 10121 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 SsrN552auIi0@aEe2mcRWcRi8- literal 0 HcmV?d00001 diff --git a/GUIs.ClientSuite/Resources/ampel-gruen.png b/GUIs.ClientSuite/Resources/ampel-gruen.png new file mode 100644 index 0000000000000000000000000000000000000000..fe34e2a5811aeb5250165a652e3cb89eb7d861e1 GIT binary patch literal 11293 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 R|3KasDhlfIwX)`+{{yn*F|_~y literal 0 HcmV?d00001 diff --git a/GUIs.ClientSuite/Resources/ampel-rot.png b/GUIs.ClientSuite/Resources/ampel-rot.png new file mode 100644 index 0000000000000000000000000000000000000000..97dae97aa95863f079539319649ba3dff4a31e0c GIT binary patch literal 11822 zcmai)U2eVgLD`vsO(10<5XLv;^Suzmwlxmi#Y+ z;3%W(0swr)_|G5!nc2Ail5noFijr`n65wu5glcV}Y1K zNRwbTO9377@37_)=%kcEY7Fu@orWEcxlNC6PDWw&zdNYhv_0I;>}xtH-P}AD`Hy@& zHn)&!n&;&h{x3Iy9@#AIxJ7B#H7>R0zROR1fZ-+S+F&YB+*L@kh8!%(K{_3*b^=vCixMlfQ=jF^H6Kmy%((l{A&rQg5JpxyUa zJ20VZI$OlSK&Qn23mET3d4r~Ge)wbtPeb&Tp{(4=SgaHob4q%M7ohN)SK_EI2A4wg ztD_1Ws%o(0N=tI{jl280FTd}raCvP

%2u8M74SS%No%j@RX1g}g_df!TM;oIT|< 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 KiCQt^;Qs+A7yF6; literal 0 HcmV?d00001 diff --git a/GUIs.ClientSuite/Workflow/WorkflowItem.vb b/GUIs.ClientSuite/Workflow/WorkflowItem.vb new file mode 100644 index 00000000..2d34b8f3 --- /dev/null +++ b/GUIs.ClientSuite/Workflow/WorkflowItem.vb @@ -0,0 +1,42 @@ +Imports System.ComponentModel +Imports DigitalData.GUIs.ClientSuite + +Public Class WorkflowItem + Implements INotifyPropertyChanged + + + Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged + + Public Enum ItemState + Normal + Warning + Danger + End Enum + + Public Property StateImage As Image + + Public Property Title As String + + Public Property WorkflowName As String + + Private _state As ItemState + + Public Property State As ItemState + Get + Return _state + End Get + Set(value As ItemState) + _state = value + Select Case value + Case ItemState.Normal + StateImage = My.Resources.ampel_gruen + Case ItemState.Warning + StateImage = My.Resources.ampel_gelb + Case ItemState.Danger + StateImage = My.Resources.ampel_rot + Case Else + StateImage = Nothing + End Select + End Set + End Property +End Class diff --git a/GUIs.ClientSuite/Workflow/frmWorkflowOverview.Designer.vb b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.Designer.vb new file mode 100644 index 00000000..af720a62 --- /dev/null +++ b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.Designer.vb @@ -0,0 +1,365 @@ + +Partial Class frmWorkflowOverview + Inherits DevExpress.XtraBars.Ribbon.RibbonForm + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWorkflowOverview)) + Dim WindowsUIButtonImageOptions3 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions() + Dim WindowsUIButtonImageOptions4 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions() + Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem() + Me.BarCheckItem2 = New DevExpress.XtraBars.BarCheckItem() + Me.BarCheckItem3 = New DevExpress.XtraBars.BarCheckItem() + Me.RibbonPageCategory1 = New DevExpress.XtraBars.Ribbon.RibbonPageCategory() + Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() + Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl() + Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup() + Me.NavBarItem1 = New DevExpress.XtraNavBar.NavBarItem() + Me.NavBarItem2 = New DevExpress.XtraNavBar.NavBarItem() + Me.NavBarItem3 = New DevExpress.XtraNavBar.NavBarItem() + Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() + Me.GridWorkflowOverview = New DevExpress.XtraGrid.GridControl() + Me.gvOverview = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.GridWorkflowDetails = New DevExpress.XtraGrid.GridControl() + Me.tvDetails = New DevExpress.XtraGrid.Views.Tile.TileView() + Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.WindowsUIButtonPanel1 = New DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel() + Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() + Me.SimpleLabelItem1 = New DevExpress.XtraLayout.SimpleLabelItem() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.SimpleLabelItem2 = New DevExpress.XtraLayout.SimpleLabelItem() + Me.SimpleLabelItem3 = New DevExpress.XtraLayout.SimpleLabelItem() + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl1.SuspendLayout() + CType(Me.GridWorkflowOverview, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.gvOverview, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridWorkflowDetails, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.tvDetails, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.LayoutControl1.SuspendLayout() + CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SimpleLabelItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SimpleLabelItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SimpleLabelItem3, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'RibbonControl1 + ' + Me.RibbonControl1.ExpandCollapseItem.Id = 0 + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarCheckItem1, Me.BarCheckItem2, Me.BarCheckItem3}) + Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.MaxItemId = 7 + Me.RibbonControl1.Name = "RibbonControl1" + Me.RibbonControl1.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1}) + Me.RibbonControl1.Size = New System.Drawing.Size(1134, 143) + Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + ' + 'BarCheckItem1 + ' + Me.BarCheckItem1.Caption = "Alle" + Me.BarCheckItem1.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio + Me.BarCheckItem1.Id = 3 + Me.BarCheckItem1.ImageOptions.Image = CType(resources.GetObject("BarCheckItem1.ImageOptions.Image"), System.Drawing.Image) + Me.BarCheckItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem1.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarCheckItem1.Name = "BarCheckItem1" + ' + 'BarCheckItem2 + ' + Me.BarCheckItem2.Caption = "Aktuell verantwortlich" + Me.BarCheckItem2.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio + Me.BarCheckItem2.Id = 4 + Me.BarCheckItem2.ImageOptions.Image = CType(resources.GetObject("BarCheckItem2.ImageOptions.Image"), System.Drawing.Image) + Me.BarCheckItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem2.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarCheckItem2.Name = "BarCheckItem2" + ' + 'BarCheckItem3 + ' + Me.BarCheckItem3.Caption = "Beteiligt" + Me.BarCheckItem3.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio + Me.BarCheckItem3.Id = 6 + Me.BarCheckItem3.ImageOptions.Image = CType(resources.GetObject("BarCheckItem3.ImageOptions.Image"), System.Drawing.Image) + Me.BarCheckItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem3.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarCheckItem3.Name = "BarCheckItem3" + ' + 'RibbonPageCategory1 + ' + Me.RibbonPageCategory1.Name = "RibbonPageCategory1" + Me.RibbonPageCategory1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage3}) + Me.RibbonPageCategory1.Text = "Worflows" + ' + 'RibbonPage3 + ' + Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) + Me.RibbonPage3.Name = "RibbonPage3" + Me.RibbonPage3.Text = "Allgemein" + ' + 'RibbonPageGroup3 + ' + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem1) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem3) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem2) + Me.RibbonPageGroup3.Name = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Verantwortlichkeit" + ' + 'RibbonStatusBar1 + ' + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 692) + Me.RibbonStatusBar1.Name = "RibbonStatusBar1" + Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 + Me.RibbonStatusBar1.Size = New System.Drawing.Size(1134, 31) + ' + 'RibbonPage2 + ' + Me.RibbonPage2.Name = "RibbonPage2" + Me.RibbonPage2.Text = "RibbonPage2" + ' + 'NavBarControl1 + ' + Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1 + Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Left + Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1}) + Me.NavBarControl1.Items.AddRange(New DevExpress.XtraNavBar.NavBarItem() {Me.NavBarItem1, Me.NavBarItem2, Me.NavBarItem3}) + Me.NavBarControl1.Location = New System.Drawing.Point(0, 143) + Me.NavBarControl1.Name = "NavBarControl1" + Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 200 + Me.NavBarControl1.OptionsNavPane.GroupImageShowMode = DevExpress.XtraNavBar.GroupImageShowMode.InCollapsedState + Me.NavBarControl1.Size = New System.Drawing.Size(200, 549) + Me.NavBarControl1.TabIndex = 2 + Me.NavBarControl1.Text = "NavBarControl1" + Me.NavBarControl1.View = New DevExpress.XtraNavBar.ViewInfo.SkinNavigationPaneViewInfoRegistrator() + ' + 'NavBarGroup1 + ' + Me.NavBarGroup1.Caption = "Workflows" + Me.NavBarGroup1.Expanded = True + Me.NavBarGroup1.ImageOptions.SmallImage = CType(resources.GetObject("NavBarGroup1.ImageOptions.SmallImage"), System.Drawing.Image) + Me.NavBarGroup1.ItemLinks.AddRange(New DevExpress.XtraNavBar.NavBarItemLink() {New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem1), New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem2), New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem3)}) + Me.NavBarGroup1.Name = "NavBarGroup1" + ' + 'NavBarItem1 + ' + Me.NavBarItem1.Caption = "Alle Workflows (100)" + Me.NavBarItem1.ImageOptions.SmallImage = CType(resources.GetObject("NavBarItem1.ImageOptions.SmallImage"), System.Drawing.Image) + Me.NavBarItem1.Name = "NavBarItem1" + ' + 'NavBarItem2 + ' + Me.NavBarItem2.Caption = "Rechnungseingang (80)" + Me.NavBarItem2.ImageOptions.SmallImage = CType(resources.GetObject("NavBarItem2.ImageOptions.SmallImage"), System.Drawing.Image) + Me.NavBarItem2.Name = "NavBarItem2" + ' + 'NavBarItem3 + ' + Me.NavBarItem3.Caption = "Vertragsprüfung (20)" + Me.NavBarItem3.ImageOptions.SmallImage = CType(resources.GetObject("NavBarItem3.ImageOptions.SmallImage"), System.Drawing.Image) + Me.NavBarItem3.Name = "NavBarItem3" + ' + 'SplitContainerControl1 + ' + Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerControl1.Location = New System.Drawing.Point(200, 143) + Me.SplitContainerControl1.Name = "SplitContainerControl1" + Me.SplitContainerControl1.Panel1.Controls.Add(Me.GridWorkflowOverview) + Me.SplitContainerControl1.Panel1.Text = "Panel1" + Me.SplitContainerControl1.Panel2.Controls.Add(Me.GridWorkflowDetails) + Me.SplitContainerControl1.Panel2.Controls.Add(Me.LayoutControl1) + Me.SplitContainerControl1.Panel2.Text = "Panel2" + Me.SplitContainerControl1.Size = New System.Drawing.Size(934, 549) + Me.SplitContainerControl1.SplitterPosition = 471 + Me.SplitContainerControl1.TabIndex = 5 + Me.SplitContainerControl1.Text = "SplitContainerControl1" + ' + 'GridWorkflowOverview + ' + Me.GridWorkflowOverview.Dock = System.Windows.Forms.DockStyle.Fill + Me.GridWorkflowOverview.Location = New System.Drawing.Point(0, 0) + Me.GridWorkflowOverview.MainView = Me.gvOverview + Me.GridWorkflowOverview.MenuManager = Me.RibbonControl1 + Me.GridWorkflowOverview.Name = "GridWorkflowOverview" + Me.GridWorkflowOverview.Size = New System.Drawing.Size(471, 549) + Me.GridWorkflowOverview.TabIndex = 0 + Me.GridWorkflowOverview.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.gvOverview}) + ' + 'gvOverview + ' + Me.gvOverview.GridControl = Me.GridWorkflowOverview + Me.gvOverview.Name = "gvOverview" + ' + 'GridWorkflowDetails + ' + Me.GridWorkflowDetails.Dock = System.Windows.Forms.DockStyle.Fill + Me.GridWorkflowDetails.Location = New System.Drawing.Point(0, 166) + Me.GridWorkflowDetails.MainView = Me.tvDetails + Me.GridWorkflowDetails.MenuManager = Me.RibbonControl1 + Me.GridWorkflowDetails.Name = "GridWorkflowDetails" + Me.GridWorkflowDetails.Size = New System.Drawing.Size(458, 383) + Me.GridWorkflowDetails.TabIndex = 1 + Me.GridWorkflowDetails.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.tvDetails}) + ' + 'tvDetails + ' + Me.tvDetails.GridControl = Me.GridWorkflowDetails + Me.tvDetails.Name = "tvDetails" + ' + 'LayoutControl1 + ' + Me.LayoutControl1.Controls.Add(Me.WindowsUIButtonPanel1) + Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Top + Me.LayoutControl1.Location = New System.Drawing.Point(0, 0) + Me.LayoutControl1.Name = "LayoutControl1" + Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(1186, 56, 650, 400) + Me.LayoutControl1.Root = Me.LayoutControlGroup1 + Me.LayoutControl1.Size = New System.Drawing.Size(458, 166) + Me.LayoutControl1.TabIndex = 0 + Me.LayoutControl1.Text = "LayoutControl1" + ' + 'WindowsUIButtonPanel1 + ' + WindowsUIButtonImageOptions3.Image = CType(resources.GetObject("WindowsUIButtonImageOptions3.Image"), System.Drawing.Image) + WindowsUIButtonImageOptions4.Image = CType(resources.GetObject("WindowsUIButtonImageOptions4.Image"), System.Drawing.Image) + Me.WindowsUIButtonPanel1.Buttons.AddRange(New DevExpress.XtraEditors.ButtonPanel.IBaseButton() {New DevExpress.XtraBars.Docking2010.WindowsUIButton("Verlängerung", True, WindowsUIButtonImageOptions3, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, Nothing, -1, False), New DevExpress.XtraBars.Docking2010.WindowsUIButton("Kündigung", True, WindowsUIButtonImageOptions4, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, Nothing, -1, False)}) + Me.WindowsUIButtonPanel1.ContentAlignment = System.Drawing.ContentAlignment.MiddleLeft + Me.WindowsUIButtonPanel1.Location = New System.Drawing.Point(12, 96) + Me.WindowsUIButtonPanel1.Name = "WindowsUIButtonPanel1" + Me.WindowsUIButtonPanel1.Size = New System.Drawing.Size(434, 55) + Me.WindowsUIButtonPanel1.TabIndex = 5 + Me.WindowsUIButtonPanel1.Text = "WindowsUIButtonPanel1" + ' + 'LayoutControlGroup1 + ' + Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] + Me.LayoutControlGroup1.GroupBordersVisible = False + Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.SimpleLabelItem1, Me.LayoutControlItem2, Me.SimpleLabelItem2, Me.SimpleLabelItem3}) + Me.LayoutControlGroup1.Name = "Root" + Me.LayoutControlGroup1.Size = New System.Drawing.Size(458, 166) + Me.LayoutControlGroup1.TextVisible = False + ' + 'SimpleLabelItem1 + ' + Me.SimpleLabelItem1.AllowHotTrack = False + Me.SimpleLabelItem1.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.SimpleLabelItem1.AppearanceItemCaption.ForeColor = System.Drawing.SystemColors.MenuHighlight + Me.SimpleLabelItem1.AppearanceItemCaption.Options.UseFont = True + Me.SimpleLabelItem1.AppearanceItemCaption.Options.UseForeColor = True + Me.SimpleLabelItem1.Location = New System.Drawing.Point(0, 0) + Me.SimpleLabelItem1.Name = "SimpleLabelItem1" + Me.SimpleLabelItem1.Size = New System.Drawing.Size(438, 34) + Me.SimpleLabelItem1.Text = "Vertragsnr. 4711" + Me.SimpleLabelItem1.TextSize = New System.Drawing.Size(151, 30) + ' + 'LayoutControlItem2 + ' + Me.LayoutControlItem2.Control = Me.WindowsUIButtonPanel1 + Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 84) + Me.LayoutControlItem2.Name = "LayoutControlItem2" + Me.LayoutControlItem2.Size = New System.Drawing.Size(438, 62) + Me.LayoutControlItem2.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem2.TextVisible = False + ' + 'SimpleLabelItem2 + ' + Me.SimpleLabelItem2.AllowHotTrack = False + Me.SimpleLabelItem2.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.SimpleLabelItem2.AppearanceItemCaption.Options.UseFont = True + Me.SimpleLabelItem2.Location = New System.Drawing.Point(0, 59) + Me.SimpleLabelItem2.Name = "SimpleLabelItem2" + Me.SimpleLabelItem2.Size = New System.Drawing.Size(438, 25) + Me.SimpleLabelItem2.Text = "Sunshine GmbH" + Me.SimpleLabelItem2.TextSize = New System.Drawing.Size(151, 21) + ' + 'SimpleLabelItem3 + ' + Me.SimpleLabelItem3.AllowHotTrack = False + Me.SimpleLabelItem3.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.SimpleLabelItem3.AppearanceItemCaption.Options.UseFont = True + Me.SimpleLabelItem3.Location = New System.Drawing.Point(0, 34) + Me.SimpleLabelItem3.Name = "SimpleLabelItem3" + Me.SimpleLabelItem3.Size = New System.Drawing.Size(438, 25) + Me.SimpleLabelItem3.Text = "Objekt: Haus Nr. 9" + Me.SimpleLabelItem3.TextSize = New System.Drawing.Size(151, 21) + ' + 'frmWorkflowOverview + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1134, 723) + Me.Controls.Add(Me.SplitContainerControl1) + Me.Controls.Add(Me.NavBarControl1) + Me.Controls.Add(Me.RibbonStatusBar1) + Me.Controls.Add(Me.RibbonControl1) + Me.Name = "frmWorkflowOverview" + Me.Ribbon = Me.RibbonControl1 + Me.StatusBar = Me.RibbonStatusBar1 + Me.Text = "Workflow Übersicht" + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.ResumeLayout(False) + CType(Me.GridWorkflowOverview, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.gvOverview, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridWorkflowDetails, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.tvDetails, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.LayoutControl1.ResumeLayout(False) + CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SimpleLabelItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SimpleLabelItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SimpleLabelItem3, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl + Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar + Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl + Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup + Friend WithEvents NavBarItem1 As DevExpress.XtraNavBar.NavBarItem + Friend WithEvents NavBarItem2 As DevExpress.XtraNavBar.NavBarItem + Friend WithEvents NavBarItem3 As DevExpress.XtraNavBar.NavBarItem + Friend WithEvents RibbonPageCategory1 As DevExpress.XtraBars.Ribbon.RibbonPageCategory + Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents GridWorkflowOverview As DevExpress.XtraGrid.GridControl + Friend WithEvents gvOverview As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents GridWorkflowDetails As DevExpress.XtraGrid.GridControl + Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl + Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem + Friend WithEvents BarCheckItem2 As DevExpress.XtraBars.BarCheckItem + Friend WithEvents BarCheckItem3 As DevExpress.XtraBars.BarCheckItem + Friend WithEvents WindowsUIButtonPanel1 As DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel + Friend WithEvents SimpleLabelItem1 As DevExpress.XtraLayout.SimpleLabelItem + Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents SimpleLabelItem2 As DevExpress.XtraLayout.SimpleLabelItem + Friend WithEvents SimpleLabelItem3 As DevExpress.XtraLayout.SimpleLabelItem + Friend WithEvents tvDetails As DevExpress.XtraGrid.Views.Tile.TileView +End Class diff --git a/GUIs.ClientSuite/Workflow/frmWorkflowOverview.resx b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.resx new file mode 100644 index 00000000..0913fcab --- /dev/null +++ b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.resx @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1w5 + 6BYAAADzSURBVDhPpdA9CsJAEAVglYBYeQYPoJ2tBxDEMq2FJ5BASsVrWNhqmc4rKHgJsbAXTKXre2En + TNZJESw+iPPzzKTlnPuLWWyifJhtT23YwdPbQwfMuhUwBhdgzaxbAbEauMISIm8BZ5B+bAWkvvmBunPe + wJnUCujDCy5Qdw57nOn/BPiQBA6gzxGssZfoHb3MW4cwADlHY429EURlAH50YQM3uMMU5BxZLl4b2OMM + Z7nTY8AR9D/RCniO/OYza3qGMgbkqvCANcg5E694bWCPMzKfl9/Af4fwnLlXeW29EwZY54QyvRMG6HPq + 5HqnEtCca30Bw6t+WSTe8moAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1w5 + 6BYAAAJ9SURBVFhHxdbNq41RFMfx461wURSljExuESJCoRiR7kAmTBhgoJiJgUxu/gKGElJckpFEGVFC + XiciRt4Zka6IPL6/2/Oc1l7P2veeczs9Bp/u2WuvtfY+z8s+t1UUxX8VBpvUGhi8kbMR1/EZv/EFN7EJ + Ub50XRMGsQZ/UAQU34Be1GQ3cB5Ro8ol9KImu4EniJpUnqIXNdkNvIJvUDmHlfA1c7AWZ/EXvu41fE24 + gWXI3ctBKGcX7sA+bHexGxNwFL5WPZcgWS8ZlAbgi2UYM3DMxCLHMQ3fTKyi3sl6yaA0Fc/gi+9hOr6b + WOQHZuG2iYl6qneyXjIwdCltsVzDahfLWQ/l29ge1NaqBUr6pp9gG5zEVhfLUd4JM1avPtTWqgWMzfiF + qom+/QEzHs1BrCo/q8cWRGuMugHRG3EK97EQeg78YpEHWIQzqD35VhjEZESFtxAt6CnP1qmXetrYCB9Y + gP14jI+YBzuvRrkzoqL5pbA9dU6op3pr3O5ZfZiN09ChYpu9wV7ofm7HJPjXy9MBpcNoMfbhHey81tBa + WnNkA3PxEjYpR6/XNhfzNL/OxSI67udrA0MmOJarUM1FE7MuQPPKi+a9ISXriI0mc3ZgCg5Bt0ixtzgC + 3aKdZawTw9pAdGZHXkCLi+6xamWm+Tyx/KvnRflRH+trVdipfujyHzYxS7+CV6C8aL6m9k9ikKRfQF3e + 56h2rtNND5vN06W3r6jyVad6m5eslwzEJetp9q+R9RCX8cjEPNWrT7uvXS8ZiElcjm4f0Bz1WYGuNtDp + sdup9vFs10sGUiXhJ6JG46V+XW3gA6JG4/UeY2+gaWGwSWGwSWGwOUXrHy0ANvXoR9wdAAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAA + 4ElEQVQ4T6XRPQ4BURQF4ClEr1FrSSSiokLPGuxEQqbQWIRFSKYXCWuwAmoKRJ5zJu/Ke/fd0Si+MRnn + nMxP5pz7S3nI81wbwAHu3hFGkGStgRpcwClXqEOUtwbaoMuiA1HeGhiDVaYJRHlrYA1WmfhflLcGhvAG + XeY1vtwobw3QHvQAryXZqgF+sidImeet2arIYOF/S1UDNIeT1wvKTspkDTRgA99v7sNSrhzoww5ewNve + QheaCIbliAxM4QHyzCGWl7ooZOCsSiF5aeFI8gg3VdL0SDLwU1gAjvjzIvsAqlQYjVXYUosAAAAASUVO + RK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAB + 0UlEQVRYR8XWsStFYRgG8DNIGQyKrIrFwG69UhSD8sfIcON2B2UmBnZlMCoWVjYZlBSxIWUg5HgenXP6 + vu88597zHjeGX3K+732fx7mUKI7jf+V902w2y5iFXbiDj8Q97ME8qBmpSoENiNvYATWbYy0wDSpQWQC1 + w2MtwNeuwpR9UDs81gKXoMKUK1A7PNYCL6DClGdQOzzWAiqoyBuoHR5LgRqooFY4o3ZlLAU2QYW0whm1 + K2MpsAoqpBXOqF0ZS4FheAQVpPAuZ9SujKUA1UGFKYugdnisBcZAhSm8q3Z4rAXoEFSg6wjUbE6VAuPw + CiqYeMY7ajanSgGagXcIw/mMZ2pGqlqgGx4gLPAEPFMzUtUCNABLwN+JE1iGQVB3C1kLTMB68EzZBt5V + Z54yBYagARfA18x/v0ZA3SX++X0B73KmNtc4iKCefM0pKtAHW8BA93OmY+gB9z71whmk91aSEIbHaWBI + FRiF62RJkVOYhK7EFJxDeh6Gly7QDzfOonY+E+4zFV66wFqwzCr9rMPwQmEBy0+vMJhvQIYpYQG11CJ9 + A6VLhAVug4VVFJXIPndXWODXggC3RHj2wyvQCSIkLaHO/qQAsYR63vkCNnH0DUZ2qvqAgwutAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz + ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v + uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB + unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2 + sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM + 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz + ZXKTe2BJAAACnklEQVRYR8XVz4tPYRTH8cEoP4YaRalZ2UwRIkINxYo0C9mwYYGFYqexkI38BSwsJKTM + kKyk1KwoIT83IlZ+syKNRuTr/dE9+jzPPHfmmsXX4lXfc+55zrlz73Of6Wi1Wv9VMdlOSTAweMptxHV8 + xA98wg1sQl4batf4HJcEFIa1+IlWgfIb4PWN1viskAQUhQsoNQqX4PWN1viskAQUhUfVojqP4fWN1vis + kAQUhRfVopLzWAWvl3lYh3P4hXzdS58VkoAiWY66d3kMqtmFW/DNdhu7MQVHkK9Vz6U+T5KAAumvFuRG + 0IWjlis5jpn4YrnQ7/MkCSiQGXhSLXB3MAtfLVfyDXNx03KinjN8niQBBUGP0hfLNazJcnXWQ/We2+Oz + QhJQFPSXfoA3OImtWa6O6k5YrF6zfVZIAorcZnxHNNFff8Di8RzE6uq3emzxOS4JKMzpiziNu1gE7YN8 + WMk9LMZZjNn5LgkoDp1aaHEYRmlgbjjrq16dngtJQFEP9uMh3mMB/AbUqO6MCLq+LOupc0I91bvHZ0ZR + N85Ah4o3e4W90PvcjmnIP6+cDigdRkuwD2/g1zVDs7r/3AA/5uM5vKiOPq9tWS6n631ZrkTH/ULdwJAl + J3IVWjNoOXexeqKqK13PDalYR2zpYp0dmI5D0CtS7jUOQ69oZ5VrYkQ3UDqzS55Bw0XvWGtljv2eWj0B + 7RfVl/q4z393Y7VwIr3Q4x+wnNN/wSvo9b7jSQJr5PQfUI/3KeLOdbpps3mdHr1/oqrXui6fkUsCinPa + zfln5O7jMh5YLqf1fT7HJQGFbgX+dYPWUZ+VPiskAUWu6bHbVHI8hySgyI2i1GiyRn1WSAKK3DuUGk3W + W58VxiTarZhsp2KynYrJ9ml1/AZUr3hglRjmdgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 + RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAHVJREFUOE/NzMENgDAMQ9EuyDoMwBKMwLXHbhf0JUBtYqCo + Fw5PCNdOMrMhMpyWYorvIQRQY/geQgA1hu8hBFBj+B5CADWG7yEEUGP4HkJQyznbQb6j+akGbx4P8D1d + A5e1B+ZttRqFnuz2wJfsJwdGyLCfpR37LNV02NfAHQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAWdEVYdFRpdGxlAFByb2R1Y3Q7Qm94O0l0ZW0O9Rpk + AAAAR0lEQVQ4T2P4//8/RRhMvDtS9J8cPIgMoASDCaiJ39DwSyB+DsVvoWLIGKgVjxdA4sgYlxraGUAM + HjWAmgZQgrEKEo//MwAAv2IUTk4dsmsAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAEFkZDtJdGVtO0FkZEl0ZW07QmFy + cztSaWJib247SXRlbTtQbHVzTjLvgQAAAG5JREFUOE/VjNEJgDAMBbOTc7iU5LvzuIyL+GFMpJXX0laD + iHhwNLTNkYg88hyYWTpu8Rxw2cwCPew9hLCUEVdAWcuIK4AqvgDy08A4zYeG/dX5w4BxK5CWWiovBxBY + pKRe54GWxmWgJn5WKwGhHZsDINkhyk7EAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAFNob3c7RXllO0njByUAAAE3SURB + VDhPpZKxSsRQEEXzG5ba+QHCYuMX+Df6AxIIWKQMiGBSprEQLBYbixSRFNkopNDeRgxaCAsmYZzzyJO3 + MeKqAwfe3Ll3svsST0T+xaT4G74Ivu/vKqdRFEkQBAbtH9CYjf1ucFO5SpJEFouFNE0jXdcZOKMxw4N3 + ZYEKe8pLnufairwtW7m+e5TDsxvTu4UHLxltPcLbymtd18ZA+Pj8VvaP5oapwkuGLAvmRVEMIzFPtuHv + FlBkyLJg2bbtIIv52essIEP2xwUu7p24Cy7s5VHjv+DCzJbmDsiyYEt5rqrKDMaXaEFjRuElQ9a+xp0w + DCXLMmNwXyNwtmE86n8io+3Kh7SRpqnEcSxlWZqPp+97A2c09eTKJV6b+1xg0eFMOVHulfcBzmizsX+l + +QuT4vqI9wEq0AjdmqGMVgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFJlc2V0O1VuZG87E4EW/wAAAYJJ + REFUWEfFlj1Ow2AMhnsAJK7TIdyEEzDCUhYmDsEpunOTbhyAgakSW/BTpdVr1+nHh6gzPFLs+LWdfL+r + cRwXJXVWkjorSZ2VOGMYhhZrY2NsjZ2xn+AZH++IybQHtB44IxNM3BlvxpcxNiCGWDRnubQeOMMCXqLA + eDD4wqzYJdCgdfm0HjjDAhBqE8/GtxGT/xa05OhqAGiC7rPi78ajwVjfTvCMj3cxnhynP6H1wBmT4Mhn + sD+MJ+PGOH1RgHfEEKtahuMwJ7QeOEMEERLeG7HgHMTGJpiYrh44IwgUvioWaYFGc7A61loPnBEEyqsR + C7RgOOKc2Gg9cEYIjmRLtAUTU3NstR44IwRn9DbB6lD9TuuBM0LwHD1NsERVu9d64AwL+G8Wb6B7CIBT + TUVMJE3aQ/ckBI5UFbGULu1+c/xpGQK/LR67ZRvREbZNFZdtxUc4OOIdgIR81VUPI2WR4zhSfiHJoPuy + K9kcZZfSFoz19a7lS5A6K0mdlaTOOsbVD4kgpriFBNvrAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS + aWJib247U3RhbmRhcmQ7Y1ZIMAAAAUFJREFUWEfFlUEOwjAMBHlYheBjSLw8xJKN3N1N43AIhxFi8Xp8 + KOqttfZXZLgTGe5Ehjuh4DgO5C6yKnfcj1AAC16d5p/424xvFx0ZCsSCYOUI6qInoKAPqwXfRZ0sUgy7 + 6DIo6IMPKCJXR4zkwQN9py9GHzLeqaRQR8zktpN8FNiQs3JESW6gj4IYdCpHlOUG+ijIw87siCtOcgN9 + FGDB+eUIkhvoo0CVnJUjpNxAHwWqlKgcMZQb6KNAlRKzB87I/w4CfRSoklORB8Mj0EeBKnVW5IE8An0U + iNIv8oCOQB8FUJjJ7YGbPZinI9BHQRquyGO2fAT6KPDBFXlQOgJ9FPSh2etYyYPZEfPXsdEHR4uu5MFl + F10UBF6gBUWGXfRQkPHiqjyQXXRQgPTSMy9YhLq4n4LdyHAnMtyJDPfRbh/esgzdHdsY9wAAAABJRU5E + rkJggg== + + + \ No newline at end of file diff --git a/GUIs.ClientSuite/Workflow/frmWorkflowOverview.vb b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.vb new file mode 100644 index 00000000..55823875 --- /dev/null +++ b/GUIs.ClientSuite/Workflow/frmWorkflowOverview.vb @@ -0,0 +1,18 @@ +Imports System.ComponentModel + +Public Class frmWorkflowOverview + Private WorkflowItems As BindingList(Of WorkflowItem) + + Private Sub frmWorkflowOverview_Load(sender As Object, e As EventArgs) Handles MyBase.Load + WorkflowItems = New BindingList(Of WorkflowItem) From { + New WorkflowItem() With {.Title = "Eingangsrechnung XYZ", .State = WorkflowItem.ItemState.Danger, .WorkflowName = "Rechnungseingang"}, + New WorkflowItem() With {.Title = "Eingangsrechnung ABC", .State = WorkflowItem.ItemState.Normal, .WorkflowName = "Rechnungseingang"}, + New WorkflowItem() With {.Title = "Mietvertrag XYZ läuft aus", .State = WorkflowItem.ItemState.Warning, .WorkflowName = "Vertragsprüfung"} + } + + GridWorkflowOverview.DataSource = WorkflowItems + + + + End Sub +End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.Designer.vb b/GUIs.ClientSuite/Workflow/frmWorkflowStep.Designer.vb similarity index 100% rename from GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.Designer.vb rename to GUIs.ClientSuite/Workflow/frmWorkflowStep.Designer.vb diff --git a/GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.resx b/GUIs.ClientSuite/Workflow/frmWorkflowStep.resx similarity index 100% rename from GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.resx rename to GUIs.ClientSuite/Workflow/frmWorkflowStep.resx diff --git a/GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.vb b/GUIs.ClientSuite/Workflow/frmWorkflowStep.vb similarity index 98% rename from GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.vb rename to GUIs.ClientSuite/Workflow/frmWorkflowStep.vb index 92bb6297..d76fd577 100644 --- a/GUIs.ClientSuite/FormWorkflow/frmWorkflowStep.vb +++ b/GUIs.ClientSuite/Workflow/frmWorkflowStep.vb @@ -1,5 +1,4 @@ Imports DevExpress.XtraLayout -Imports DigitalData.GUIs.ClientSuite Imports DigitalData.GUIs.ClientSuite.Controls Public Class frmWorkflowStep diff --git a/GUIs.ClientSuite/frmMain.Designer.vb b/GUIs.ClientSuite/frmMain.Designer.vb index 05fcebf0..d8636b59 100644 --- a/GUIs.ClientSuite/frmMain.Designer.vb +++ b/GUIs.ClientSuite/frmMain.Designer.vb @@ -21,11 +21,10 @@ Partial Class frmMain 'Do not modify it using the code editor. Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) - Dim PushTransition1 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition() + Dim PushTransition2 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition() Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.MainMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu(Me.components) + Me.MainMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu() Me.BarButtonExit = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonUserSettings = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonConnectionSettings = New DevExpress.XtraBars.BarButtonItem() @@ -51,13 +50,14 @@ Partial Class frmMain Me.RibbonPageGroup6 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components) - Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components) - Me.DockManager = New DevExpress.XtraBars.Docking.DockManager(Me.components) + Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager() + Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView() + Me.DockManager = New DevExpress.XtraBars.Docking.DockManager() Me.MainNav = New DevExpress.XtraBars.Navigation.OfficeNavigationBar() Me.NavbarItemHome = New DevExpress.XtraBars.Navigation.NavigationBarItem() Me.NavbarItemSearch = New DevExpress.XtraBars.Navigation.NavigationBarItem() Me.NavbarItemWorkflow = New DevExpress.XtraBars.Navigation.NavigationBarItem() + Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem() CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.MainMenu, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).BeginInit() @@ -70,15 +70,15 @@ Partial Class frmMain ' Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.SkinDropDownButtonItem1, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline, Me.BarButtonUserManager, Me.LabelServiceOffline, Me.BarButtonItem3, Me.BarButtonFormDesigner, Me.BarButtonItem4}) + Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.SkinDropDownButtonItem1, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline, Me.BarButtonUserManager, Me.LabelServiceOffline, Me.BarButtonItem3, Me.BarButtonFormDesigner, Me.BarButtonItem4, Me.BarButtonItem5}) Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 25 + Me.RibbonControl.MaxItemId = 26 Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1) Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1) Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageAdmin}) - Me.RibbonControl.Size = New System.Drawing.Size(1139, 146) + Me.RibbonControl.Size = New System.Drawing.Size(1139, 143) Me.RibbonControl.StatusBar = Me.RibbonStatusBar ' 'MainMenu @@ -181,7 +181,7 @@ Partial Class frmMain 'WorkspaceManager1 ' Me.WorkspaceManager1.TargetControl = Me - Me.WorkspaceManager1.TransitionType = PushTransition1 + Me.WorkspaceManager1.TransitionType = PushTransition2 ' 'LabelServiceOnline ' @@ -223,7 +223,7 @@ Partial Class frmMain ' 'BarButtonItem4 ' - Me.BarButtonItem4.Caption = "Workflow Test" + Me.BarButtonItem4.Caption = "Workflow Step" Me.BarButtonItem4.Id = 24 Me.BarButtonItem4.ImageOptions.Image = CType(resources.GetObject("BarButtonItem4.ImageOptions.Image"), System.Drawing.Image) Me.BarButtonItem4.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.LargeImage"), System.Drawing.Image) @@ -241,6 +241,7 @@ Partial Class frmMain Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3) Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem4) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem5) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" Me.RibbonPageGroup3.Text = "DEBUG" ' @@ -270,10 +271,10 @@ Partial Class frmMain Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentLanguage) Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOnline) Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOffline) - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 556) + Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 546) Me.RibbonStatusBar.Name = "RibbonStatusBar" Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1139, 21) + Me.RibbonStatusBar.Size = New System.Drawing.Size(1139, 31) ' 'DocumentManager ' @@ -297,7 +298,7 @@ Partial Class frmMain ' Me.MainNav.Dock = System.Windows.Forms.DockStyle.Bottom Me.MainNav.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarItemHome, Me.NavbarItemSearch, Me.NavbarItemWorkflow}) - Me.MainNav.Location = New System.Drawing.Point(0, 511) + Me.MainNav.Location = New System.Drawing.Point(0, 501) Me.MainNav.Name = "MainNav" Me.MainNav.Size = New System.Drawing.Size(1139, 45) Me.MainNav.TabIndex = 4 @@ -318,6 +319,14 @@ Partial Class frmMain Me.NavbarItemWorkflow.Name = "NavbarItemWorkflow" Me.NavbarItemWorkflow.Text = "Workflow" ' + 'BarButtonItem5 + ' + Me.BarButtonItem5.Caption = "Workflow Overview" + Me.BarButtonItem5.Id = 25 + Me.BarButtonItem5.ImageOptions.Image = CType(resources.GetObject("BarButtonItem5.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem5.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem5.Name = "BarButtonItem5" + ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -377,4 +386,5 @@ Partial Class frmMain Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents BarButtonFormDesigner As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/GUIs.ClientSuite/frmMain.resx b/GUIs.ClientSuite/frmMain.resx index ed5110e8..9a7f64cc 100644 --- a/GUIs.ClientSuite/frmMain.resx +++ b/GUIs.ClientSuite/frmMain.resx @@ -446,6 +446,26 @@ Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu + dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAAB1SURBVDhPzczBDYAwDEPRLsg6DMAS + jMC1x24X9CVAbWKgqBcOTwjXTjKzITKclmKK7yEEUGP4HkIANYbvIQRQY/geQgA1hu8hBFBj+B5CUMs5 + 20G+o/mpBm8eD/A9XQOXtQfmbbUahZ7s9sCX7CcHRsiwn6Ud+yzVdNjXwB0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu + dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAADDSURBVFhH7dKxDcIwEAXQLMg6DMAS + jEDrku0OHGEJRU+HIwWncfFS/IT/r2CJiFMxHImhXG7P2IEdwlAwkmGHMBSMZNghDAUjGXYIQ8FIhh3C + UDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQyllm6VUuKN79QhDEUjQw+QdoDe9WL4KT4a + txi2H3TY9Z22GLYfdPjvAXr37Yjv1sf1cY9f6j9b+VZvX/2umgfMA+YB84D1cSaGIzEcJ5YXdxoUYrVL + o4QAAAAASUVORK5CYII= diff --git a/GUIs.ClientSuite/frmMain.vb b/GUIs.ClientSuite/frmMain.vb index 257ecca3..c68d8803 100644 --- a/GUIs.ClientSuite/frmMain.vb +++ b/GUIs.ClientSuite/frmMain.vb @@ -222,4 +222,11 @@ Public Class frmMain } oForm.Show() End Sub + + Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem5.ItemClick + Dim oForm As New frmWorkflowOverview() With { + .MdiParent = DocumentManager.MdiParent + } + oForm.Show() + End Sub End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/packages.config b/GUIs.ClientSuite/packages.config index cd1527a3..55fed1f5 100644 --- a/GUIs.ClientSuite/packages.config +++ b/GUIs.ClientSuite/packages.config @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/GUIs.Test.TestGUI/Form1.Designer.vb b/GUIs.Test.TestGUI/Form1.Designer.vb index e744c1bb..579d5dc9 100644 --- a/GUIs.Test.TestGUI/Form1.Designer.vb +++ b/GUIs.Test.TestGUI/Form1.Designer.vb @@ -43,6 +43,8 @@ Partial Class Form1 Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Label6 = New System.Windows.Forms.Label() Me.Button4 = New System.Windows.Forms.Button() + Me.Button6 = New System.Windows.Forms.Button() + Me.ListBox1 = New System.Windows.Forms.ListBox() CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -228,11 +230,30 @@ Partial Class Form1 Me.Button4.Text = "Test Background Worker Logging" Me.Button4.UseVisualStyleBackColor = True ' + 'Button6 + ' + Me.Button6.Location = New System.Drawing.Point(683, 143) + Me.Button6.Name = "Button6" + Me.Button6.Size = New System.Drawing.Size(75, 23) + Me.Button6.TabIndex = 23 + Me.Button6.Text = "Get Logs" + Me.Button6.UseVisualStyleBackColor = True + ' + 'ListBox1 + ' + Me.ListBox1.FormattingEnabled = True + Me.ListBox1.Location = New System.Drawing.Point(683, 172) + Me.ListBox1.Name = "ListBox1" + Me.ListBox1.Size = New System.Drawing.Size(355, 303) + Me.ListBox1.TabIndex = 24 + ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1050, 487) + Me.Controls.Add(Me.ListBox1) + Me.Controls.Add(Me.Button6) Me.Controls.Add(Me.Button4) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.TextBox1) @@ -284,4 +305,6 @@ Partial Class Form1 Friend WithEvents TextBox1 As TextBox Friend WithEvents Label6 As Label Friend WithEvents Button4 As Button + Friend WithEvents Button6 As Button + Friend WithEvents ListBox1 As ListBox End Class diff --git a/GUIs.Test.TestGUI/Form1.vb b/GUIs.Test.TestGUI/Form1.vb index a41b5a2a..532f188c 100644 --- a/GUIs.Test.TestGUI/Form1.vb +++ b/GUIs.Test.TestGUI/Form1.vb @@ -41,6 +41,7 @@ Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load MyLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN") + MyLogger.Debug = True Logger = MyLogger.GetLogger() Dim MySecondLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN2") @@ -169,4 +170,12 @@ Public Class Form1 bw1.RunWorkerAsync() End Sub + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click + Logger.Error(New ApplicationException("Some Error occurred!")) + + ListBox1.Items.Clear() + For Each oLog In MyLogger.Logs + ListBox1.Items.Add(oLog) + Next + End Sub End Class diff --git a/LoggerDiag/App.config b/LoggerDiag/App.config new file mode 100644 index 00000000..5534e287 --- /dev/null +++ b/LoggerDiag/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LoggerDiag/DummyConfig.vb b/LoggerDiag/DummyConfig.vb new file mode 100644 index 00000000..8fe9c12d --- /dev/null +++ b/LoggerDiag/DummyConfig.vb @@ -0,0 +1,3 @@ +Public Class DummyConfig + Public SomeSetting As String = "Default_Value" +End Class diff --git a/LoggerDiag/MonoDiag.vbproj b/LoggerDiag/MonoDiag.vbproj new file mode 100644 index 00000000..c374a4ff --- /dev/null +++ b/LoggerDiag/MonoDiag.vbproj @@ -0,0 +1,151 @@ + + + + + Debug + AnyCPU + {3D437957-B90B-4D8F-9219-6D19B0C90994} + WinExe + MonoDiag.My.MyApplication + MonoDiag + MonoDiag + 512 + WindowsForms + v4.6.1 + true + + + AnyCPU + true + full + true + true + bin\Debug\ + MonoDiag.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + MonoDiag.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + ..\packages\NLog.4.5.11\lib\net45\NLog.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + frmMain.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + frmMain.vb + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + {44982f9b-6116-44e2-85d0-f39650b1ef99} + Config + + + {903b2d7d-3b80-4be9-8713-7447b704e1b0} + Logging + + + + \ No newline at end of file diff --git a/LoggerDiag/My Project/Application.Designer.vb b/LoggerDiag/My Project/Application.Designer.vb new file mode 100644 index 00000000..a12c37f8 --- /dev/null +++ b/LoggerDiag/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'HINWEIS: Diese Datei wird automatisch generiert und darf nicht direkt bearbeitet werden. Wenn Sie Änderungen vornehmen möchten + ' oder in dieser Datei Buildfehler auftreten, wechseln Sie zum Projekt-Designer. + ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im + ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.MonoDiag.frmMain + End Sub + End Class +End Namespace diff --git a/LoggerDiag/My Project/Application.myapp b/LoggerDiag/My Project/Application.myapp new file mode 100644 index 00000000..739ea6fe --- /dev/null +++ b/LoggerDiag/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + frmMain + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/LoggerDiag/My Project/AssemblyInfo.vb b/LoggerDiag/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..5af86104 --- /dev/null +++ b/LoggerDiag/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Allgemeine Informationen über eine Assembly werden über die folgenden +' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +' die einer Assembly zugeordnet sind. + +' Werte der Assemblyattribute überprüfen + + + + + + + + + + +'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. + + +' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +' +' Hauptversion +' Nebenversion +' Buildnummer +' Revision +' +' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +' übernehmen, indem Sie "*" eingeben: +' + + + diff --git a/LoggerDiag/My Project/Resources.Designer.vb b/LoggerDiag/My Project/Resources.Designer.vb new file mode 100644 index 00000000..b31b1912 --- /dev/null +++ b/LoggerDiag/My Project/Resources.Designer.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + '''

+ ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MonoDiag.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/LoggerDiag/My Project/Resources.resx b/LoggerDiag/My Project/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/LoggerDiag/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LoggerDiag/My Project/Settings.Designer.vb b/LoggerDiag/My Project/Settings.Designer.vb new file mode 100644 index 00000000..b2d12459 --- /dev/null +++ b/LoggerDiag/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Automatische My.Settings-Speicherfunktion" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.MonoDiag.My.MySettings + Get + Return Global.MonoDiag.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/LoggerDiag/My Project/Settings.settings b/LoggerDiag/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/LoggerDiag/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/LoggerDiag/My Project/licenses.licx b/LoggerDiag/My Project/licenses.licx new file mode 100644 index 00000000..824a99fc --- /dev/null +++ b/LoggerDiag/My Project/licenses.licx @@ -0,0 +1 @@ +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/LoggerDiag/frmMain.Designer.vb b/LoggerDiag/frmMain.Designer.vb new file mode 100644 index 00000000..14cf6f4f --- /dev/null +++ b/LoggerDiag/frmMain.Designer.vb @@ -0,0 +1,122 @@ + _ +Partial Class frmMain + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.GridControlLogs = New DevExpress.XtraGrid.GridControl() + Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.btnRefresh = New System.Windows.Forms.Button() + Me.Button1 = New System.Windows.Forms.Button() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.Button2 = New System.Windows.Forms.Button() + CType(Me.GridControlLogs, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'GridControlLogs + ' + Me.GridControlLogs.Dock = System.Windows.Forms.DockStyle.Right + Me.GridControlLogs.Location = New System.Drawing.Point(251, 0) + Me.GridControlLogs.MainView = Me.GridView1 + Me.GridControlLogs.Name = "GridControlLogs" + Me.GridControlLogs.Size = New System.Drawing.Size(888, 679) + Me.GridControlLogs.TabIndex = 0 + Me.GridControlLogs.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) + ' + 'GridView1 + ' + Me.GridView1.GridControl = Me.GridControlLogs + Me.GridView1.Name = "GridView1" + ' + 'btnRefresh + ' + Me.btnRefresh.Location = New System.Drawing.Point(12, 12) + Me.btnRefresh.Name = "btnRefresh" + Me.btnRefresh.Size = New System.Drawing.Size(233, 35) + Me.btnRefresh.TabIndex = 1 + Me.btnRefresh.Text = "Refresh Logs" + Me.btnRefresh.UseVisualStyleBackColor = True + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(12, 53) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(233, 32) + Me.Button1.TabIndex = 2 + Me.Button1.Text = "Read Config" + Me.Button1.UseVisualStyleBackColor = True + ' + 'TextBox1 + ' + Me.TextBox1.Location = New System.Drawing.Point(12, 143) + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(233, 20) + Me.TextBox1.TabIndex = 3 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(9, 127) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(109, 13) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "Value of Test-Setting:" + ' + 'Button2 + ' + Me.Button2.Location = New System.Drawing.Point(12, 91) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(233, 33) + Me.Button2.TabIndex = 5 + Me.Button2.Text = "Save Config" + Me.Button2.UseVisualStyleBackColor = True + ' + 'frmMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1139, 679) + Me.Controls.Add(Me.Button2) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TextBox1) + Me.Controls.Add(Me.Button1) + Me.Controls.Add(Me.btnRefresh) + Me.Controls.Add(Me.GridControlLogs) + Me.MinimumSize = New System.Drawing.Size(1155, 718) + Me.Name = "frmMain" + Me.Text = "Digital Data Diagnose" + CType(Me.GridControlLogs, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents GridControlLogs As DevExpress.XtraGrid.GridControl + Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents btnRefresh As Button + Friend WithEvents Button1 As Button + Friend WithEvents TextBox1 As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents Button2 As Button +End Class diff --git a/LoggerDiag/frmMain.resx b/LoggerDiag/frmMain.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/LoggerDiag/frmMain.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LoggerDiag/frmMain.vb b/LoggerDiag/frmMain.vb new file mode 100644 index 00000000..2fc491b3 --- /dev/null +++ b/LoggerDiag/frmMain.vb @@ -0,0 +1,62 @@ +Imports System.IO +Imports DigitalData.Modules.Config +Imports DigitalData.Modules.Logging + +Public Class frmMain + Public LogConfig As LogConfig + Public Logger As Logger + Public Config As ConfigManager(Of DummyConfig) + + + Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + LogConfig = New LogConfig(LogConfig.PathType.AppData) With { + .Debug = True + } + + Dim productName As String = My.Application.Info.ProductName + Dim companyName As String = My.Application.Info.CompanyName + + Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + Dim basePath = Path.Combine(appDataDir, companyName, productName, "Log") + + Logger = LogConfig.GetLogger() + Logger.Info("Initializing Config") + Logger.Info("Logging Path: {0}", basePath) + Logger.Info("UserConfig.xml Path: {0}", Application.UserAppDataPath) + Logger.Info("ComputerConfig.xml Path: {0}", Application.CommonAppDataPath) + + Config = New ConfigManager(Of DummyConfig)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath) + + RefreshLogs() + End Sub + + Private Sub RefreshLogs() + GridControlLogs.DataSource = LogConfig.Logs + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click + RefreshLogs() + End Sub + + Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click + Try + Logger.Info("Value of TestSetting is: {0}", Config.Config.SomeSetting) + TextBox1.Text = Config.Config.SomeSetting + RefreshLogs() + Catch ex As Exception + Logger.Error(ex) + RefreshLogs() + End Try + End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + Try + Config.Config.SomeSetting = TextBox1.Text + Config.Save() + RefreshLogs() + Catch ex As Exception + Logger.Error(ex) + RefreshLogs() + End Try + End Sub +End Class diff --git a/LoggerDiag/packages.config b/LoggerDiag/packages.config new file mode 100644 index 00000000..f89fa324 --- /dev/null +++ b/LoggerDiag/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file