EditForm Tweaks, Other Tweaks

This commit is contained in:
Jonathan Jenne
2019-02-25 16:40:52 +01:00
parent e9c08de50d
commit 86ade712c9
8 changed files with 312 additions and 212 deletions

View File

@@ -4,6 +4,14 @@ Public Class frmUserManager
Private _Logger As Logger
Private _CommonCommands As ClassCommonCommands
Private _UserTable As DataTable
Private _GroupTable As DataTable
Private _UserToGroupTable As DataTable
Private _GroupToGroupTable As DataTable
Private _UserToGroupControl As UserControlAssignment
Private _GroupToGroupControl As UserControlAssignment
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
@@ -14,65 +22,103 @@ Public Class frmUserManager
End Sub
Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Await InitData()
Await InitDataAsync()
AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserAddedToGroup
AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserRemovedFromGroup
AddHandler UCGroupToGroup.ChildAdded, AddressOf HandleGroupAddedToGroup
AddHandler UCGroupToGroup.ChildRemoved, AddressOf HandleGroupRemovedFromGroup
RibbonControl.SelectPage(RibbonPageUserManager)
UserRibbon.SelectPage(RibbonPageUserManager)
UserNavbar.SelectedItem = NavbarUser2Group
End Sub
Private Sub frmUserManager_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
If Visible Then
RibbonControl.SelectPage(RibbonPageUserManager)
UserRibbon.SelectPage(RibbonPageUserManager)
End If
End Sub
Private Async Function InitData() As Task
Dim oUserTable = Await GetAttributeListAsync("User")
Dim oGroupTable = Await GetAttributeListAsync("Group")
Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
Private Sub frmUserManager_Activated(sender As Object, e As EventArgs) Handles Me.Activated
If Visible Then
UserRibbon.SelectPage(RibbonPageUserManager)
End If
End Sub
UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID")
UCGroupToGroup.Init(oGroupTable, oGroupTable, oGroupGroupTable, "GROUP2_ID", "GROUP1_ID")
Private Sub ShowUserToGroupControl()
If _UserToGroupControl Is Nothing Then
_UserToGroupControl = New UserControlAssignment() With {
.TextAssignedToParent = "Zugeordnete Benutzer",
.TextNotAssignedToParent = "Nicht zugeordnete Benutzer",
.TextParentList = "Verfügbare Gruppen",
.Dock = DockStyle.Fill
}
AddHandler _UserToGroupControl.ChildAdded, AddressOf HandleUserAddedToGroup
AddHandler _UserToGroupControl.ChildRemoved, AddressOf HandleUserRemovedFromGroup
_UserToGroupControl.Init(_GroupTable, _UserTable, _UserToGroupTable, "GROUP_ID", "USER_ID")
ContentPanel.Controls.Add(_UserToGroupControl)
End If
_UserToGroupControl.Visible = True
End Sub
Private Sub ShowGroupToGroupControl()
If _GroupToGroupControl Is Nothing Then
_GroupToGroupControl = New UserControlAssignment() With {
.TextAssignedToParent = "Zugeordnete Gruppen",
.TextNotAssignedToParent = "Nicht zugeordnete Gruppen",
.TextParentList = "Verfügbare Gruppen",
.Dock = DockStyle.Fill
}
AddHandler _GroupToGroupControl.ChildAdded, AddressOf HandleGroupAddedToGroup
AddHandler _GroupToGroupControl.ChildRemoved, AddressOf HandleGroupRemovedFromGroup
_GroupToGroupControl.Init(_GroupTable, _GroupTable, _GroupToGroupTable, "GROUP2_ID", "GROUP1_ID")
_ContentPanel.Controls.Add(_GroupToGroupControl)
End If
_GroupToGroupControl.Visible = True
End Sub
Private Async Function InitDataAsync() As Task
_UserTable = Await GetAttributeListAsync("User")
_GroupTable = Await GetAttributeListAsync("Group")
_UserToGroupTable = Await GetAttributeListAsync("User2Group")
_GroupToGroupTable = Await GetAttributeListAsync("Group2Group")
End Function
Private Async Function UpdateData() As Task
Dim oUserTable = Await GetAttributeListAsync("User")
Dim oGroupTable = Await GetAttributeListAsync("Group")
Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
Private Async Function UpdateDataAsync() As Task
_UserTable = Await GetAttributeListAsync("User")
_GroupTable = Await GetAttributeListAsync("Group")
_UserToGroupTable = Await GetAttributeListAsync("User2Group")
_GroupToGroupTable = Await GetAttributeListAsync("Group2Group")
UCUserToGroup.UpdateData(oGroupTable, oUserTable, oUserGroupTable)
UCGroupToGroup.UpdateData(oGroupTable, oGroupTable, oGroupGroupTable)
_UserToGroupControl.UpdateData(_GroupTable, _UserTable, _UserToGroupTable)
_GroupToGroupControl.UpdateData(_GroupTable, _GroupTable, _GroupToGroupTable)
End Function
Private Async Sub HandleUserAddedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_USER2GROUP(UserId, GroupId)
Await UpdateData()
Await UpdateDataAsync()
End Sub
Private Async Sub HandleUserRemovedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateData()
Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupAddedToGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId)
Await UpdateData()
Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupRemovedFromGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
Await UpdateData()
Await UpdateDataAsync()
End Sub
Private Async Function GetAttributeListAsync(AttributeName As String) As Task(Of DataTable)
@@ -90,38 +136,32 @@ Public Class frmUserManager
End Try
End Function
Private Async Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick
Dim oDatatable = Await GetAttributeListAsync("User")
Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, oDatatable)
'oForm.MdiParent = o
Private Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick
Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, _UserTable)
oForm.Show()
End Sub
Private Async Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick
Dim oDatatable = Await GetAttributeListAsync("Group")
Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, oDatatable)
Private Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick
Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, _GroupTable)
oForm.Show()
End Sub
Private Async Sub BarButtonRefresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonRefresh.ItemClick
Await UpdateData()
Await UpdateDataAsync()
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
Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles UserNavbar.SelectedItemChanged
' Hide all UserControls
For Each oControl As Control In ContentPanel.Controls
oControl.Visible = False
Next
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
' Then check the currently selected navbar item and show the corresponding UserControl
If UserNavbar.SelectedItem.Equals(NavbarUser2Group) Then
ShowUserToGroupControl()
ElseIf UserNavbar.SelectedItem.Equals(NavbarGroup2Group) Then
ShowGroupToGroupControl()
End If
End Sub