-
Notifications
You must be signed in to change notification settings - Fork 0
/
Data.vb
72 lines (67 loc) · 2.39 KB
/
Data.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports DevExpress.XtraEditors
Namespace TokenEditTest
Public Class TreeListDataSet
Private rootNodes As IList(Of TreeListRootObj)
Public Sub New(ByVal tokens As IEnumerable(Of TokenEditToken))
Me.rootNodes = CreateRootCol(tokens)
End Sub
Private Function CreateRootCol(ByVal tokens As IEnumerable(Of TokenEditToken)) As IList(Of TreeListRootObj)
Dim res As New List(Of TreeListRootObj)()
For Each token As TokenEditToken In tokens
res.Add(New TreeListRootObj(token))
Next token
Return res
End Function
Public ReadOnly Property Count() As Integer
Get
Return Children.Count
End Get
End Property
Public Function GetChildren() As TreeListRootObj()
Return Me.rootNodes.ToArray()
End Function
Public ReadOnly Property Children() As IList(Of TreeListRootObj)
Get
Return rootNodes
End Get
End Property
End Class
Public Class TreeListRootObj
Private leaf_Renamed As TreeListLeaf
Public Sub New(ByVal token As TokenEditToken)
Me.leaf_Renamed = New TreeListLeaf(token)
End Sub
Public Overrides Function ToString() As String
Return "Root Node"
End Function
Public ReadOnly Property Leaf() As TreeListLeaf
Get
Return leaf_Renamed
End Get
End Property
End Class
Public Class TreeListLeaf
Private token_Renamed As TokenEditToken
Public Sub New(ByVal token As TokenEditToken)
Me.token_Renamed = token
End Sub
Public Function IsMatch(ByVal filter As String) As Boolean
Dim filterCore As String = filter.Trim()
If String.IsNullOrEmpty(filterCore) Then
Return True
End If
Return token_Renamed.ToString().StartsWith(filterCore, StringComparison.OrdinalIgnoreCase)
End Function
Public Overrides Function ToString() As String
Return token_Renamed.ToString()
End Function
Public ReadOnly Property Token() As TokenEditToken
Get
Return token_Renamed
End Get
End Property
End Class
End Namespace