diff --git a/Config/ConfigManager.vb b/Config/ConfigManager.vb index 6897cd2c..0d97ca03 100644 --- a/Config/ConfigManager.vb +++ b/Config/ConfigManager.vb @@ -1,8 +1,6 @@ Imports System.IO Imports System.Xml.Serialization Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Filesystem -Imports System.Xml Public Class ConfigManager(Of T) Private Const USER_CONFIG_NAME As String = "UserConfig.xml" @@ -51,22 +49,22 @@ Public Class ConfigManager(Of T) _Serializer = New XmlSerializer(_Blueprint.GetType) If Not Directory.Exists(UserConfigPath) Then + _Logger.Debug("UserConfigPath {0} did not exist and was created", UserConfigPath) Directory.CreateDirectory(UserConfigPath) - - 'Throw New DirectoryNotFoundException($"Path {UserConfigPath} does not exist!") End If If Not _File.TestPathIsDirectory(UserConfigPath) Then + _Logger.Warn("UserConfigPath {0} is not a directory", UserConfigPath) Throw New ArgumentException($"Path {UserConfigPath} is not a directory!") End If If Not Directory.Exists(ComputerConfigPath) Then + _Logger.Debug("ComputerConfigPath {0} did not exist and was created", ComputerConfigPath) Directory.CreateDirectory(ComputerConfigPath) - - 'Throw New DirectoryNotFoundException($"Path {ComputerConfigPath} does not exist!") End If If Not _File.TestPathIsDirectory(ComputerConfigPath) Then + _Logger.Warn("ComputerConfigPath {0} is not a directory", ComputerConfigPath) Throw New ArgumentException($"Path {ComputerConfigPath} is not a directory!") End If @@ -160,7 +158,10 @@ Public Class ConfigManager(Of T) oConfig = _Serializer.Deserialize(oReader) End Using + ' If oConfig is Nothing, a config file was created but nothing was written to it. + ' In this case we need to create oConfig from defaults so we have at least some config object If oConfig Is Nothing Then + _Logger.Debug("Config file is valid but empty. Loading default values") oConfig = Activator.CreateInstance(_Blueprint.GetType) End If diff --git a/EDMI_ClientSuite/ClassControlPatcher.vb b/EDMI_ClientSuite/ClassControlPatcher.vb new file mode 100644 index 00000000..fb95cffc --- /dev/null +++ b/EDMI_ClientSuite/ClassControlPatcher.vb @@ -0,0 +1,40 @@ +''' +''' Applies Modifications to a certain type of controls +''' +''' +''' Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) +''' oGridPatcher. +''' ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings). +''' ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings). +''' ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridNotAssignedToParent). +''' ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridAssignedToParent) +''' +''' The control to Patch +Public Class ClassControlPatcher(Of T As Control) + Private ReadOnly _Container As Control + + Public Sub New(Container As Control) + _Container = Container + End Sub + + Public Function ProcessContainer(Action As Action(Of T)) As ClassControlPatcher(Of T) + Return ProcessContainer(_Container, Action) + End Function + + Public Function ProcessControl(Action As Action(Of T), ByVal Control As Control) As ClassControlPatcher(Of T) + Action(Control) + Return Me + End Function + Private Function ProcessContainer(ByVal Container As Control, Action As Action(Of T)) As ClassControlPatcher(Of T) + For Each oControl As Control In Container.Controls + + If oControl.[GetType]() = GetType(T) Then + Action(oControl) + Else + ProcessContainer(oControl, Action) + End If + Next + + Return Me + End Function +End Class diff --git a/EDMI_ClientSuite/ClassUIConfig.vb b/EDMI_ClientSuite/ClassUIConfig.vb index 1829fcb9..6ca092ab 100644 --- a/EDMI_ClientSuite/ClassUIConfig.vb +++ b/EDMI_ClientSuite/ClassUIConfig.vb @@ -1,3 +1,5 @@ Public Class ClassUIConfig Public Property SkinName As String = "Office 2016 Colorful" + + Public Property FrmEdit_Splitter As Integer = 300 End Class diff --git a/EDMI_ClientSuite/ClassUIUtils.vb b/EDMI_ClientSuite/ClassUIUtils.vb deleted file mode 100644 index 0c0e386d..00000000 --- a/EDMI_ClientSuite/ClassUIUtils.vb +++ /dev/null @@ -1,38 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraGrid.Views.Grid - -Public Class ClassUIUtils - - Public Shared Function ConfigureGridVieDefaults(View As GridView) - View.OptionsView.ShowAutoFilterRow = True - View.OptionsView.EnableAppearanceEvenRow = True - - With View.Appearance - .EvenRow.BackColor = Color.Aquamarine - .FilterPanel.BackColor = Color.Orange - End With - - Return View - End Function - - Public Shared Function ConfigureGridViewReadOnly(View As GridView) - View.OptionsBehavior.Editable = False - View.OptionsBehavior.ReadOnly = True - Return View - End Function - - Public Shared Function ConfigureGridControlDefaults(Grid As GridControl, Optional [ReadOnly] As Boolean = False) As GridControl - For Each oView In Grid.Views - Select Case oView.GetType - Case GetType(GridView) - oView = ConfigureGridVieDefaults(oView) - - If [ReadOnly] Then - oView = ConfigureGridViewReadOnly(oView) - End If - End Select - Next - - Return Grid - End Function -End Class diff --git a/EDMI_ClientSuite/ClientSuite.vbproj b/EDMI_ClientSuite/ClientSuite.vbproj index 251350b8..d5963203 100644 --- a/EDMI_ClientSuite/ClientSuite.vbproj +++ b/EDMI_ClientSuite/ClientSuite.vbproj @@ -119,14 +119,15 @@ + - + DockManagerTest.vb diff --git a/EDMI_ClientSuite/ControlDefaults/ClassGridControl.vb b/EDMI_ClientSuite/ControlDefaults/ClassGridControl.vb new file mode 100644 index 00000000..b80293d7 --- /dev/null +++ b/EDMI_ClientSuite/ControlDefaults/ClassGridControl.vb @@ -0,0 +1,64 @@ +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Views.Grid + +Public Class ClassGridControl + Public Shared Sub DefaultGridSettings(grid As GridControl) + For Each oView In grid.Views + If TypeOf oView Is GridView Then + DefaultGridViewSettings(oView) + End If + Next + End Sub + + Public Shared Sub ReadOnlyGridSettings(grid As GridControl) + For Each oView In grid.Views + If TypeOf oView Is GridView Then + ReadonlyGridViewSettings(oView) + End If + Next + End Sub + + Public Shared Sub CheckboxSelectGridSettings(grid As GridControl) + For Each oView In grid.Views + If TypeOf oView Is GridView Then + CheckboxSelectGridViewSettings(oView) + End If + Next + End Sub + + ''' + ''' Set a view to readonly + ''' + Private Shared Sub ReadonlyGridViewSettings(ByRef View As GridView) + View.OptionsBehavior.Editable = False + View.OptionsBehavior.ReadOnly = True + End Sub + + ''' + ''' Set view Multiselect with checkboxes + ''' + Private Shared Sub CheckboxSelectGridViewSettings(ByRef View As GridView) + View.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect + View.OptionsSelection.MultiSelect = True + End Sub + + ''' + ''' Set default settings for view + ''' + Private Shared Sub DefaultGridViewSettings(ByRef View As GridView) + View.OptionsView.ShowAutoFilterRow = True + + ' Color Settings + View.OptionsView.EnableAppearanceEvenRow = True + View.Appearance.EvenRow.BackColor = Color.Aquamarine + View.Appearance.FilterPanel.BackColor = Color.Orange + + AddHandler View.RowStyle, AddressOf GridView_RowStyle + End Sub + + Private Shared Sub GridView_RowStyle(sender As Object, e As RowStyleEventArgs) + If e.RowHandle = GridControl.AutoFilterRowHandle Then + e.Appearance.BackColor = Color.LightSalmon + End If + End Sub +End Class diff --git a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb index 1883c034..ea1a83f6 100644 --- a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb +++ b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb @@ -156,6 +156,7 @@ Partial Class frmEntityDesigner Me.RibbonControl1.MaxItemId = 2 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1}) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.Size = New System.Drawing.Size(800, 146) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 ' @@ -177,13 +178,13 @@ Partial Class frmEntityDesigner ' Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) Me.RibbonPage3.Name = "RibbonPage3" - Me.RibbonPage3.Text = "Control Actions" + Me.RibbonPage3.Text = "Aktionen" ' 'RibbonPageGroup3 ' Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem1) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Aktionen" ' 'RibbonStatusBar1 ' diff --git a/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb b/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb index 2301f147..1a5fe2dd 100644 --- a/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb +++ b/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb @@ -84,8 +84,6 @@ Partial Class UserControlAssignment ' Me.ViewNotAssignedToParent.GridControl = Me.GridNotAssignedToParent Me.ViewNotAssignedToParent.Name = "ViewNotAssignedToParent" - Me.ViewNotAssignedToParent.OptionsSelection.MultiSelect = True - Me.ViewNotAssignedToParent.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect ' 'PanelControl2 ' @@ -174,8 +172,6 @@ Partial Class UserControlAssignment ' Me.ViewAssignedToParent.GridControl = Me.GridAssignedToParent Me.ViewAssignedToParent.Name = "ViewAssignedToParent" - Me.ViewAssignedToParent.OptionsSelection.MultiSelect = True - Me.ViewAssignedToParent.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect ' 'PanelControl3 ' diff --git a/EDMI_ClientSuite/UserManager/UserControlAssignment.vb b/EDMI_ClientSuite/UserManager/UserControlAssignment.vb index da30d8d9..23d60722 100644 --- a/EDMI_ClientSuite/UserManager/UserControlAssignment.vb +++ b/EDMI_ClientSuite/UserManager/UserControlAssignment.vb @@ -33,15 +33,12 @@ Public Class UserControlAssignment labelParentList.Text = TextParentList ' Load grid customizations - GridParentList = ClassUIUtils.ConfigureGridControlDefaults(GridParentList, [ReadOnly]:=True) - - GridNotAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridNotAssignedToParent, [ReadOnly]:=True) - ViewNotAssignedToParent.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect - ViewNotAssignedToParent.OptionsSelection.MultiSelect = True - - GridAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridAssignedToParent, [ReadOnly]:=True) - ViewAssignedToParent.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect - ViewAssignedToParent.OptionsSelection.MultiSelect = True + Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) + oGridPatcher. + ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings). + ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings). + ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridNotAssignedToParent). + ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridAssignedToParent) ' Load view layouts Try @@ -61,7 +58,6 @@ Public Class UserControlAssignment Catch ex As Exception End Try - End Sub Private Function MaybeCopyToDataTable(RowCollection As EnumerableRowCollection(Of DataRow)) As DataTable diff --git a/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb index c50f1484..de0052b2 100644 --- a/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb +++ b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb @@ -23,6 +23,7 @@ Partial Class frmEdit Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEdit)) Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() Me.GridList = New DevExpress.XtraGrid.GridControl() Me.ViewList = New DevExpress.XtraGrid.Views.Grid.GridView() @@ -32,9 +33,10 @@ Partial Class frmEdit Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.SuspendLayout() CType(Me.GridList, System.ComponentModel.ISupportInitialize).BeginInit() @@ -95,36 +97,37 @@ Partial Class frmEdit 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 2 + Me.RibbonControl1.MaxItemId = 4 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.Size = New System.Drawing.Size(1104, 146) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 ' 'BarButtonItem1 ' - Me.BarButtonItem1.Caption = "BarButtonItem1" + Me.BarButtonItem1.Caption = "Speichern" Me.BarButtonItem1.Id = 1 + Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) Me.BarButtonItem1.Name = "BarButtonItem1" ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" + Me.RibbonPage1.Text = "Aktionen" ' 'RibbonPageGroup1 ' Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem3) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" + Me.RibbonPageGroup1.ShowCaptionButton = False + Me.RibbonPageGroup1.Text = "Aktionen" ' 'RibbonStatusBar1 ' @@ -138,6 +141,22 @@ Partial Class frmEdit Me.RibbonPage2.Name = "RibbonPage2" Me.RibbonPage2.Text = "RibbonPage2" ' + 'BarButtonItem2 + ' + Me.BarButtonItem2.Caption = "Neu" + Me.BarButtonItem2.Id = 2 + Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem2.Name = "BarButtonItem2" + ' + 'BarButtonItem3 + ' + Me.BarButtonItem3.Caption = "Löschen" + Me.BarButtonItem3.Id = 3 + Me.BarButtonItem3.ImageOptions.Image = CType(resources.GetObject("BarButtonItem3.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem3.Name = "BarButtonItem3" + ' 'frmEdit ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -148,8 +167,9 @@ Partial Class frmEdit Me.Controls.Add(Me.RibbonControl1) Me.Name = "frmEdit" Me.Ribbon = Me.RibbonControl1 + Me.ShowIcon = False Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "frmEdit" + Me.Text = "Datensätze bearbeiten" CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControl1.ResumeLayout(False) CType(Me.GridList, System.ComponentModel.ISupportInitialize).EndInit() @@ -170,8 +190,9 @@ Partial Class frmEdit Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/EDMI_ClientSuite/UserManager/frmEdit.resx b/EDMI_ClientSuite/UserManager/frmEdit.resx index 1af7de15..d8bb8005 100644 --- a/EDMI_ClientSuite/UserManager/frmEdit.resx +++ b/EDMI_ClientSuite/UserManager/frmEdit.resx @@ -117,4 +117,68 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBTYXZlO/no + +QkAAABYSURBVDhPY/j//z9FGExMzlq/F4j/gzCUD2ajYzS5vSA+zABcilDE0OVAfPoYAMPY1GI1AB9G + V4shSAqmvgEgNjF41AA8BpCKkQ3Yji5JBN4ON4B8/J8BAL6u0wsmtxusAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBTYXZlO/no + +QkAAAENSURBVFhH7ZfRCcMwDESzWaBfmaXrdJDO0T0CGcPVidicheQm0DgE8vHAlY6nI38dUkqn4g57 + 4g57Uv14Pd+j8BESgTnDuyark2dwj3zTFlgonOHjVthkddr5wjdtARsGfDzKAN2zJ3JinikP4IUFFRNe + BuiePZET80x5AC8sqJjwMkD37ImcmGfKA3hhQcWElwG6Z0/kxDxTHsALCyomvAzQPXsiJ+aZ8gBeWFAx + 4WVcIme+By5ZoAn7Iifvf4aPgG/eBVoFHgJmu2AfeeHaXaASb4V9jOzuAneBu8D1CkxCJd8C+8gL1+4C + h8E3bYHZhg9g5pu2AD6V99/gX8A98c2qwBm4w564w36k4QtaC2pTkRLrNgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1 + cztCYXJzO1JpYmJvbjuVBjMvAAAAYElEQVQ4T92MUQqAMAxDd0Ev5am8XbTSlEwyRBwIfrzRpelrAF5h + Q7KsG5KYbceG5EeCnG3HhkQFI86HxadMFRTxJ1q85NXtAiXzEuiOzBOMOEqdQHfEhoSCOP5GcA/aDplf + q/kc1pC+AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1 + cztCYXJzO1JpYmJvbjuVBjMvAAAAj0lEQVRYR+3OUQqEMAxFUTfoplyVu4vNhyDpRR4Sokg+DsKdafsW + M3sVxkoYK2GshLESRsW67XYVf1dhVPSAHtAD/j0gXp4lvuOm4OhwhviOm4KjwxniO24Kjg5niO+4KaiU + yxUYFTRgfG9dz58wKsaF3xvwBEZFD6AB44v/vYNR0QOyYKyEsRLGShjr2HIAeeWOhN7Trl4AAAAASUVO + RK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAKXRFWHRUaXRsZQBSZW1vdmU7 + RGVsZXRlO0JhcnM7UmliYm9uO1N0YW5kYXJkO2NWSDAAAADCSURBVDhPjZNLCgIxEERzOGFWegkvIH4Q + Rhyv6UkUV20VpCTpTquLB0n9GAZSzKzct6s1mHn+B2Qv7PCs8gsYuPqwB5lbzbKzoXCqgkhH4Kks9jLO + zggj0Hz5SL0NpCM4D8vkM1CDfmQBaZl0AwQBP9LSlUl3EQiORkKZBIEg7D+bLKNsEBAclUUY6S4I+PIB + hB/bdr6WGy8d+VkW0IYjNPgwWiOUBTw/MlOcwKMKaVkgo5EnmCRyZOfDGcjyAU5mVt7SQJzMJkqbYgAA + AABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAKXRFWHRUaXRsZQBSZW1vdmU7 + RGVsZXRlO0JhcnM7UmliYm9uO1N0YW5kYXJkO2NWSDAAAAFuSURBVFhHxZZNSgQxFIRn5gIOeiU3LhxB + j+BRRRTFWc9VXMWqJg+e6XpNXoS4+BYpUj/Q3dC7Usq/IsWZSHEmUrw83/6JJuvgzy1SrEFX4AXc1XM3 + LucevIKjz/dIEQaWf4ACvkFqRM1gOb3M+ARyxErAxQPgahqN7AhfbjBz3/b9Ohi4+ATagN4RqpznB9W1 + Egguk8dqbIO2RqTKiRRhMDIj0uVEijB5ekYMlRMpwtiyNWK4nEgRZkU0YricSBEBEWqEJ1VOpIiQLaIR + SzmQmRFSZMgG6pnbgOXFVJkRUmRIQFRuLCNUZoQUEaKI3naldY+QIgJ6y/nMw09UZbdIEebecrszPEKK + MGbKjaERUoSJROUn4Is96RFShGGk3EiNWAm4uAdv1egDesoNNeIddP+QXIOvasyWW4YfcQY3bQ9ZCQSX + CUdwdaqcuByOYIYsJ1K0IMD/Q3/uosnK/5bPRIozkeJMpDgTKc6j7H4A2ecNYxfzGoMAAAAASUVORK5C + YII= + + \ No newline at end of file diff --git a/EDMI_ClientSuite/UserManager/frmEdit.vb b/EDMI_ClientSuite/UserManager/frmEdit.vb index 1ffbb539..25275bfc 100644 --- a/EDMI_ClientSuite/UserManager/frmEdit.vb +++ b/EDMI_ClientSuite/UserManager/frmEdit.vb @@ -1,4 +1,5 @@ Imports DevExpress.XtraEditors +Imports DevExpress.XtraGrid Imports DevExpress.XtraLayout Public Class frmEdit @@ -16,11 +17,16 @@ Public Class frmEdit End Sub Private Async Sub frmEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load - GridList = ClassUIUtils.ConfigureGridControlDefaults(GridList, [ReadOnly]:=True) + Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) + oGridPatcher. + ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings). + ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings) ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. GridList.DataSource = _Datatable + SplitContainerControl1.SplitterPosition = My.UIConfig.FrmEdit_Splitter + Dim oUserLanguage = My.Application.User.Language Await LoadLanguageTableAsync(oUserLanguage) LoadFormLayout() @@ -101,4 +107,9 @@ Public Class frmEdit LayoutControlGroup1.AddItem(New EmptySpaceItem()) LayoutControlGroup1.LayoutMode = Utils.LayoutMode.Flow End Sub + + Private Sub SplitContainerControl1_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl1.SplitterPositionChanged + My.UIConfig.FrmEdit_Splitter = SplitContainerControl1.SplitterPosition + My.UIConfigManager.Save() + End Sub End Class \ No newline at end of file diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb b/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb index 4dce2653..d0a6f786 100644 --- a/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb +++ b/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb @@ -36,6 +36,7 @@ Partial Class frmUserManager Me.OfficeNavigationBar1 = New DevExpress.XtraBars.Navigation.OfficeNavigationBar() Me.NavbarUser2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem() Me.NavbarGroup2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem() + Me.UCGroupToGroup = New DigitalData.GUIs.ClientSuite.UserControlAssignment() CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.OfficeNavigationBar1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -49,6 +50,7 @@ Partial Class frmUserManager Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryUserManager}) + Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl.Size = New System.Drawing.Size(1070, 146) Me.RibbonControl.StatusBar = Me.RibbonStatusBar ' @@ -134,14 +136,14 @@ Partial Class frmUserManager ' 'UCUserToGroup ' - Me.UCUserToGroup.Dock = System.Windows.Forms.DockStyle.Fill - Me.UCUserToGroup.Location = New System.Drawing.Point(0, 146) + Me.UCUserToGroup.Location = New System.Drawing.Point(335, 163) Me.UCUserToGroup.Name = "UCUserToGroup" - Me.UCUserToGroup.Size = New System.Drawing.Size(1070, 328) + Me.UCUserToGroup.Size = New System.Drawing.Size(391, 271) Me.UCUserToGroup.TabIndex = 0 Me.UCUserToGroup.TextAssignedToParent = "Zugeordnete Benutzer zu Gruppe:" Me.UCUserToGroup.TextNotAssignedToParent = "Nicht zugeordnete Benutzer:" Me.UCUserToGroup.TextParentList = "Verfügbare Gruppen:" + Me.UCUserToGroup.Visible = False ' 'OfficeNavigationBar1 ' @@ -149,7 +151,6 @@ Partial Class frmUserManager Me.OfficeNavigationBar1.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarUser2Group, Me.NavbarGroup2Group}) Me.OfficeNavigationBar1.Location = New System.Drawing.Point(0, 474) Me.OfficeNavigationBar1.Name = "OfficeNavigationBar1" - Me.OfficeNavigationBar1.SelectedItem = Me.NavbarUser2Group Me.OfficeNavigationBar1.Size = New System.Drawing.Size(1070, 45) Me.OfficeNavigationBar1.TabIndex = 2 Me.OfficeNavigationBar1.Text = "OfficeNavigationBar1" @@ -165,17 +166,30 @@ Partial Class frmUserManager Me.NavbarGroup2Group.ShowPeekFormOnItemHover = DevExpress.Utils.DefaultBoolean.[True] Me.NavbarGroup2Group.Text = "Gruppenzuordnung" ' + 'UCGroupToGroup + ' + Me.UCGroupToGroup.Location = New System.Drawing.Point(22, 163) + Me.UCGroupToGroup.Name = "UCGroupToGroup" + Me.UCGroupToGroup.Size = New System.Drawing.Size(276, 234) + Me.UCGroupToGroup.TabIndex = 5 + Me.UCGroupToGroup.TextAssignedToParent = "Zugeordnete Gruppen:" + Me.UCGroupToGroup.TextNotAssignedToParent = "Nicht zugeordnete Gruppen:" + Me.UCGroupToGroup.TextParentList = "Verfügbare Gruppen:" + Me.UCGroupToGroup.Visible = False + ' 'frmUserManager ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1070, 540) + Me.Controls.Add(Me.UCGroupToGroup) Me.Controls.Add(Me.UCUserToGroup) Me.Controls.Add(Me.OfficeNavigationBar1) Me.Controls.Add(Me.RibbonStatusBar) Me.Controls.Add(Me.RibbonControl) Me.Name = "frmUserManager" Me.Ribbon = Me.RibbonControl + Me.ShowIcon = False Me.StatusBar = Me.RibbonStatusBar Me.Text = "User Manager" CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() @@ -201,4 +215,5 @@ Partial Class frmUserManager Friend WithEvents OfficeNavigationBar1 As DevExpress.XtraBars.Navigation.OfficeNavigationBar Friend WithEvents NavbarUser2Group As DevExpress.XtraBars.Navigation.NavigationBarItem Friend WithEvents NavbarGroup2Group As DevExpress.XtraBars.Navigation.NavigationBarItem + Friend WithEvents UCGroupToGroup As UserControlAssignment End Class diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.vb b/EDMI_ClientSuite/UserManager/frmUserManager.vb index 720c1a23..67204187 100644 --- a/EDMI_ClientSuite/UserManager/frmUserManager.vb +++ b/EDMI_ClientSuite/UserManager/frmUserManager.vb @@ -22,6 +22,12 @@ Public Class frmUserManager RibbonControl.SelectPage(RibbonPageUserManager) End Sub + Private Sub frmUserManager_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged + If Visible Then + RibbonControl.SelectPage(RibbonPageUserManager) + End If + End Sub + Private Async Function InitUserToGroupData() As Task Dim oUserTable = Await GetAttributeListAsync("User") Dim oGroupTable = Await GetAttributeListAsync("Group") @@ -82,18 +88,22 @@ Public Class frmUserManager Await UpdateUserToGroupData() End Sub - Private Sub OfficeNavigationBar1_ItemClick(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles OfficeNavigationBar1.ItemClick - - End Sub - Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles OfficeNavigationBar1.SelectedItemChanged Select Case OfficeNavigationBar1.SelectedItem.Name Case "NavbarUser2Group" UCUserToGroup.Visible = True UCUserToGroup.Dock = DockStyle.Fill + + UCGroupToGroup.Visible = False + UCGroupToGroup.Dock = DockStyle.None Case "NavbarGroup2Group" + UCGroupToGroup.Visible = True + UCGroupToGroup.Dock = DockStyle.Fill + UCUserToGroup.Visible = False UCUserToGroup.Dock = DockStyle.None End Select End Sub + + End Class \ No newline at end of file diff --git a/EDMI_ClientSuite/frmMain.vb b/EDMI_ClientSuite/frmMain.vb index 64d14405..2be9643a 100644 --- a/EDMI_ClientSuite/frmMain.vb +++ b/EDMI_ClientSuite/frmMain.vb @@ -175,17 +175,15 @@ Public Class frmMain End Sub ' Manually merge the status bars of the parent and child MDI forms. - Private Sub RibbonControl1_Merge(ByVal sender As System.Object, - ByVal e As RibbonMergeEventArgs) Handles RibbonControl.Merge - Dim parentRRibbon As RibbonControl = TryCast(sender, RibbonControl) - Dim childRibbon As RibbonControl = e.MergedChild - parentRRibbon.StatusBar.MergeStatusBar(childRibbon.StatusBar) + Private Sub RibbonControl1_Merge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.Merge + Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl) + Dim oChildRibbon As RibbonControl = e.MergedChild + oParentRibbon.StatusBar.MergeStatusBar(oChildRibbon.StatusBar) End Sub ' Manually unmerge the status bars. - Private Sub RibbonControl1_UnMerge(ByVal sender As System.Object, - ByVal e As RibbonMergeEventArgs) Handles RibbonControl.UnMerge - Dim parentRRibbon As RibbonControl = TryCast(sender, RibbonControl) - parentRRibbon.StatusBar.UnMergeStatusBar() + Private Sub RibbonControl1_UnMerge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.UnMerge + Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl) + oParentRibbon.StatusBar.UnMergeStatusBar() End Sub End Class \ No newline at end of file diff --git a/EDMI_ClientSuite/frmSplash.vb b/EDMI_ClientSuite/frmSplash.vb index 6abc3a80..ffe23b80 100644 --- a/EDMI_ClientSuite/frmSplash.vb +++ b/EDMI_ClientSuite/frmSplash.vb @@ -64,7 +64,7 @@ Public NotInheritable Class frmSplash _Worker.RunWorkerAsync() End Sub - Private Async Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) + Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Dim oService As New ClassService(My.LogConfig) _Worker.ReportProgress(SetProgress(1), "Connecting to service..")