Add First Pass of UserManager
This commit is contained in:
74
EDMI_ClientSuite/UserManager/UserControlAssignment.vb
Normal file
74
EDMI_ClientSuite/UserManager/UserControlAssignment.vb
Normal file
@@ -0,0 +1,74 @@
|
||||
Imports DevExpress.XtraGrid.Views.Base
|
||||
|
||||
Public Class UserControlAssignment
|
||||
Public Property TextParentList As String
|
||||
Public Property TextAssignedToParent As String
|
||||
Public Property TextNotAssignedToParent As String
|
||||
|
||||
Private _DragDropManager As ClassDragDrop
|
||||
|
||||
Private _ParentIdColumn As String
|
||||
Private _ChildIdColumn As String
|
||||
|
||||
Private _ParentList As DataTable
|
||||
Private _ChildList As DataTable
|
||||
Private _AssignmentList As DataTable
|
||||
|
||||
Private Sub UserControlAssignment_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
_DragDropManager = New ClassDragDrop()
|
||||
_DragDropManager.AddGridView(ViewAssignedToParent)
|
||||
_DragDropManager.AddGridView(ViewNotAssignedToParent)
|
||||
|
||||
' Load text customizations
|
||||
labelAssignedToParent.Text = TextAssignedToParent
|
||||
labelNotAssignedToParent.Text = TextNotAssignedToParent
|
||||
labelParentList.Text = TextParentList
|
||||
|
||||
' Load grid customizations
|
||||
GridParentList = ClassUIUtils.ConfigureGridControlDefaults(GridParentList, [ReadOnly]:=True)
|
||||
GridNotAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridNotAssignedToParent, [ReadOnly]:=True)
|
||||
GridAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridAssignedToParent, [ReadOnly]:=True)
|
||||
|
||||
AddHandler ViewParentList.FocusedRowChanged, AddressOf ViewParentList_FocusedRowChanged
|
||||
End Sub
|
||||
|
||||
Private Sub ViewParentList_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs)
|
||||
Dim oRowHandle = e.FocusedRowHandle
|
||||
Dim oParentRecordId = ViewParentList.GetRowCellValue(oRowHandle, ClassConstants.ATTRIBUTE_ID_COLUMN)
|
||||
|
||||
Dim oAssignedChildIds = From oRow In _AssignmentList.AsEnumerable()
|
||||
Where oRow.Item(_ParentIdColumn) = oParentRecordId
|
||||
Select oRow.Item(_ChildIdColumn)
|
||||
|
||||
Dim oAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable()
|
||||
Where oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN))
|
||||
|
||||
Dim oNotAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable()
|
||||
Where Not oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN))
|
||||
|
||||
GridAssignedToParent.DataSource = MaybeCopyToDataTable(oAssignedChildren)
|
||||
GridNotAssignedToParent.DataSource = MaybeCopyToDataTable(oNotAssignedChildren)
|
||||
End Sub
|
||||
|
||||
Private Function MaybeCopyToDataTable(RowCollection As EnumerableRowCollection(Of DataRow)) As DataTable
|
||||
If RowCollection.Count > 0 Then
|
||||
Return RowCollection.CopyToDataTable()
|
||||
Else
|
||||
Return New DataTable()
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub Init(ParentList As DataTable, ChildrenList As DataTable, AssignmentList As DataTable, ParentIdColumn As String, ChildIdColumn As String)
|
||||
_ParentList = ParentList
|
||||
_ChildList = ChildrenList
|
||||
_AssignmentList = AssignmentList
|
||||
|
||||
_ParentIdColumn = ParentIdColumn
|
||||
_ChildIdColumn = ChildIdColumn
|
||||
|
||||
' This will trigger FocusedRowChanged, needs to be last!!
|
||||
GridParentList.DataSource = ParentList
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user