You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
5.8 KiB

Public Class frmStrukturSelect
Dim m_selectiontype As TKB.VV.Lifecycle.clslifeCycle.SelectionType
Property SelectionType As TKB.VV.Lifecycle.clslifeCycle.SelectionType
Get
Return m_selectiontype
End Get
Set(value As TKB.VV.Lifecycle.clslifeCycle.SelectionType)
m_selectiontype = value
End Set
End Property
Dim m_MultiSingle As TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType
Property MultiSingle As TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType
Get
Return m_MultiSingle
End Get
Set(value As TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType)
m_MultiSingle = value
End Set
End Property
Dim m_singlenode As Integer
Property SingleNode As Integer
Get
Return m_singlenode
End Get
Set(value As Integer)
m_singlenode = value
End Set
End Property
Public CheckedNodes As List(Of String) = New List(Of String)
Dim clslc As New TKB.VV.Lifecycle.clslifeCycle
Dim SourceNode As Integer = 0
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(ByVal SelType As TKB.VV.Lifecycle.clslifeCycle.SelectionType, ByVal SingleMulti As TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType, Optional Currentnode As Integer = 0)
InitializeComponent()
Me.SelectionType = SelType
Me.m_MultiSingle = SingleMulti
Me.SourceNode = Currentnode
End Sub
Private Sub frmStrukturSelect_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If MultiSingle = TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType.MultiSelection Then
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt, False, True, 0)
Else
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt, False, False, 1)
End If
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
Me.TreeStruktur.ExpandAll()
'Me.CheckedNodes.Clear()
For Each s As String In Me.CheckedNodes
Dim tn As New DevComponents.AdvTree.Node
tn = clslc.FindNode_string(Me.TreeStruktur.Nodes, 0, s)
tn.Checked = True
Next
Try
Dim tn As New DevComponents.AdvTree.Node
tn = clslc.FindNode(Me.TreeStruktur.Nodes, SourceNode, SourceNode)
tn.Remove()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub TreeStruktur_BeforeCheck(sender As Object, e As DevComponents.AdvTree.AdvTreeCellBeforeCheckEventArgs) Handles TreeStruktur.BeforeCheck
'If Me.SelectionType = 1 Then
' 'MsgBox(Me.TreeStruktur.CheckedNodes.Count)
' Dim Allnodes As List(Of String) = New List(Of String)
' Dim subnodes As List(Of String) = New List(Of String)
' Dim i As Integer
' For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.SelectedNodes
' subnodes = GetChildren(n)
' For i = 0 To subnodes.Count - 1
' AllNodes.Add(subnodes(i))
' Next
' AllNodes.Add(n.Tag)
' Next
' For i = Allnodes.Count - 1 To 0 Step -1
' Dim tn As New DevComponents.AdvTree.Node
' tn = clslc.FindNode(Me.TreeStruktur.Nodes, Allnodes(i), Allnodes(i))
' tn.Checked = False
' Next
'End If
End Sub
Function GetChildren(parentNode As DevComponents.AdvTree.Node) As List(Of String)
Dim nodes As List(Of String) = New List(Of String)
GetAllChildren(parentNode, nodes)
Return nodes
End Function
Sub GetAllChildren(parentNode As DevComponents.AdvTree.Node, nodes As List(Of String))
For Each childNode As DevComponents.AdvTree.Node In parentNode.Nodes
nodes.Add(childNode.Tag)
GetAllChildren(childNode, nodes)
Next
End Sub
Private Shared Iterator Function AllNodes(ByVal nodes As DevComponents.AdvTree.NodeCollection) As IEnumerable
For i As Integer = 0 To nodes.Count - 1
Dim node As DevComponents.AdvTree.Node = nodes(i)
Yield node
If node.Nodes.Count > 0 Then
Try
For Each item As DevComponents.AdvTree.Node In AllNodes(node.Nodes)
Yield item
Next item
Catch
End Try
End If
Next i
End Function
Private Sub TreeStruktur_DoubleClick(sender As Object, e As EventArgs) Handles TreeStruktur.DoubleClick
If MultiSingle = TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType.SingleSelection And clslc.IstStruktur(Me.TreeStruktur.SelectedNode.Tag) = False Then
Me.SingleNode = Me.TreeStruktur.SelectedNode.Tag
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Close()
End If
End Sub
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
Private Sub TreeStruktur_NodeClick(sender As Object, e As DevComponents.AdvTree.TreeNodeMouseEventArgs) Handles TreeStruktur.NodeClick
If Me.TreeStruktur.SelectedNode.Checked = True Then
Me.CheckedNodes.Add(Me.TreeStruktur.SelectedNode.Text)
Else
For i As Integer = CheckedNodes.Count - 1 To 0 Step -1
If CheckedNodes(i) = Me.TreeStruktur.SelectedNode.Text Then
CheckedNodes.Remove(i)
Exit Sub
End If
Next
End If
End Sub
End Class