Class NodeTree<T>
- Namespace
- Shift.Common.Trees
- Assembly
- Shift.Common.dll
public class NodeTree<T> : INode<T>, ITree<T>, IEnumerableCollectionPair<T>, IDisposable
Type Parameters
T
- Inheritance
-
NodeTree<T>
- Implements
-
- Inherited Members
-
- Extension Methods
-
Constructors
NodeTree()
Properties
All
public IEnumerableCollectionPair<T> All { get; }
Property Value
- IEnumerableCollectionPair<T>
AllChildren
public IEnumerableCollectionPair<T> AllChildren { get; }
Property Value
- IEnumerableCollectionPair<T>
BranchCount
public virtual int BranchCount { get; }
Property Value
- int
BranchIndex
public virtual int BranchIndex { get; }
Property Value
- int
CanMoveToChild
public bool CanMoveToChild { get; }
Property Value
- bool
CanMoveToFirst
public bool CanMoveToFirst { get; }
Property Value
- bool
CanMoveToLast
public bool CanMoveToLast { get; }
Property Value
- bool
CanMoveToNext
public bool CanMoveToNext { get; }
Property Value
- bool
CanMoveToParent
public bool CanMoveToParent { get; }
Property Value
- bool
CanMoveToPrevious
public bool CanMoveToPrevious { get; }
Property Value
- bool
Child
public INode<T> Child { get; }
Property Value
- INode<T>
ClearedEventKey
protected static object ClearedEventKey { get; }
Property Value
- object
ClearingEventKey
protected static object ClearingEventKey { get; }
Property Value
- object
CopiedEventKey
protected static object CopiedEventKey { get; }
Property Value
- object
CopyingEventKey
protected static object CopyingEventKey { get; }
Property Value
- object
Count
public virtual int Count { get; }
Property Value
- int
CutDoneEventKey
protected static object CutDoneEventKey { get; }
Property Value
- object
CuttingEventKey
protected static object CuttingEventKey { get; }
Property Value
- object
Data
public T Data { get; set; }
Property Value
- T
DataComparer
public virtual IEqualityComparer<T> DataComparer { get; set; }
Property Value
- IEqualityComparer<T>
DataType
public virtual Type DataType { get; }
Property Value
- Type
DeepCopiedEventKey
protected static object DeepCopiedEventKey { get; }
Property Value
- object
DeepCopyingEventKey
protected static object DeepCopyingEventKey { get; }
Property Value
- object
Depth
public virtual int Depth { get; }
Property Value
- int
DirectChildCount
public int DirectChildCount { get; }
Property Value
- int
DirectChildren
public IEnumerableCollectionPair<T> DirectChildren { get; }
Property Value
- IEnumerableCollectionPair<T>
DirectChildrenInReverse
public IEnumerableCollectionPair<T> DirectChildrenInReverse { get; }
Property Value
- IEnumerableCollectionPair<T>
EventHandlerList
protected EventHandlerList EventHandlerList { get; }
Property Value
- EventHandlerList
First
public INode<T> First { get; }
Property Value
- INode<T>
HasChild
public bool HasChild { get; }
Property Value
- bool
HasNext
public bool HasNext { get; }
Property Value
- bool
HasParent
public bool HasParent { get; }
Property Value
- bool
HasPrevious
public bool HasPrevious { get; }
Property Value
- bool
InsertedEventKey
protected static object InsertedEventKey { get; }
Property Value
- object
InsertingEventKey
protected static object InsertingEventKey { get; }
Property Value
- object
IsFirst
public bool IsFirst { get; }
Property Value
- bool
IsLast
public bool IsLast { get; }
Property Value
- bool
IsRoot
public bool IsRoot { get; }
Property Value
- bool
IsTop
public bool IsTop { get; }
Property Value
- bool
IsTree
public bool IsTree { get; }
Property Value
- bool
this[T]
public virtual INode<T> this[T item] { get; }
Parameters
item T
Property Value
- INode<T>
Last
public INode<T> Last { get; }
Property Value
- INode<T>
LastChild
public INode<T> LastChild { get; }
Property Value
- INode<T>
Next
public INode<T> Next { get; }
Property Value
- INode<T>
Nodes
public virtual IEnumerableCollection<INode<T>> Nodes { get; }
Property Value
- IEnumerableCollection<INode<T>>
Parent
public INode<T> Parent { get; }
Property Value
- INode<T>
Previous
public INode<T> Previous { get; }
Property Value
- INode<T>
Root
public INode<T> Root { get; }
Property Value
- INode<T>
SetDoneEventKey
protected static object SetDoneEventKey { get; }
Property Value
- object
SettingEventKey
protected static object SettingEventKey { get; }
Property Value
- object
Top
public INode<T> Top { get; }
Property Value
- INode<T>
Tree
public ITree<T> Tree { get; }
Property Value
- ITree<T>
ValidateEventKey
protected static object ValidateEventKey { get; }
Property Value
- object
Values
public virtual IEnumerableCollection<T> Values { get; }
Property Value
- IEnumerableCollection<T>
Version
public virtual int Version { get; set; }
Property Value
- int
Methods
Add(ITree<T>)
public void Add(ITree<T> tree)
Parameters
tree ITree<T>
Add(T)
Parameters
o T
Returns
- INode<T>
AddChild(ITree<T>)
public void AddChild(ITree<T> tree)
Parameters
tree ITree<T>
AddChild(T)
public INode<T> AddChild(T o)
Parameters
o T
Returns
- INode<T>
AddChildCore(INode<T>)
protected virtual void AddChildCore(INode<T> newINode)
Parameters
newINode INode<T>
AddCore(INode<T>)
protected virtual void AddCore(INode<T> newINode)
Parameters
newINode INode<T>
Clear()
Contains(INode<T>)
public virtual bool Contains(INode<T> item)
Parameters
item INode<T>
Returns
- bool
Contains(T)
public virtual bool Contains(T item)
Parameters
item T
Returns
- bool
Copy()
Returns
- ITree<T>
Copy(T)
public ITree<T> Copy(T o)
Parameters
o T
Returns
- ITree<T>
CopyCore()
protected virtual NodeTree<T> CopyCore()
Returns
- NodeTree<T>
CreateNode()
protected virtual NodeTree<T> CreateNode()
Returns
- NodeTree<T>
CreateTree()
protected virtual NodeTree<T> CreateTree()
Returns
- NodeTree<T>
Cut()
Returns
- ITree<T>
Cut(T)
Parameters
o T
Returns
- ITree<T>
CutCore()
protected virtual NodeTree<T> CutCore()
Returns
- NodeTree<T>
DeepCopy()
public ITree<T> DeepCopy()
Returns
- ITree<T>
DeepCopy(T)
public ITree<T> DeepCopy(T o)
Parameters
o T
Returns
- ITree<T>
DeepCopyCore()
protected virtual NodeTree<T> DeepCopyCore()
Returns
- NodeTree<T>
DeepCopyData(T)
protected virtual T DeepCopyData(T data)
Parameters
data T
Returns
- T
Dispose()
Dispose(bool)
protected virtual void Dispose(bool disposing)
Parameters
disposing bool
~NodeTree()
Find(Predicate<T>)
public virtual INode<T> Find(Predicate<T> predicate)
Parameters
predicate Predicate<T>
Returns
- INode<T>
Find(T)
public virtual INode<T> Find(T item)
Parameters
item T
Returns
- INode<T>
GetCreateEventHandlerList()
protected EventHandlerList GetCreateEventHandlerList()
Returns
- EventHandlerList
HasChanged(int)
public bool HasChanged(int version)
Parameters
version int
Returns
- bool
IncrementVersion()
protected void IncrementVersion()
InsertChild(ITree<T>)
public void InsertChild(ITree<T> tree)
Parameters
tree ITree<T>
InsertChild(T)
public INode<T> InsertChild(T o)
Parameters
o T
Returns
- INode<T>
InsertChildCore(INode<T>)
protected virtual void InsertChildCore(INode<T> newINode)
Parameters
newINode INode<T>
InsertNext(ITree<T>)
public void InsertNext(ITree<T> tree)
Parameters
tree ITree<T>
InsertNext(T)
public INode<T> InsertNext(T o)
Parameters
o T
Returns
- INode<T>
InsertNextCore(INode<T>)
protected virtual void InsertNextCore(INode<T> newINode)
Parameters
newINode INode<T>
InsertPrevious(ITree<T>)
public void InsertPrevious(ITree<T> tree)
Parameters
tree ITree<T>
InsertPrevious(T)
public INode<T> InsertPrevious(T o)
Parameters
o T
Returns
- INode<T>
InsertPreviousCore(INode<T>)
protected virtual void InsertPreviousCore(INode<T> newINode)
Parameters
newINode INode<T>
MoveToChild()
public void MoveToChild()
MoveToFirst()
public void MoveToFirst()
MoveToLast()
MoveToNext()
MoveToParent()
public void MoveToParent()
MoveToPrevious()
public void MoveToPrevious()
NewNode()
protected static INode<T> NewNode()
Returns
- INode<T>
NewTree()
public static ITree<T> NewTree()
Returns
- ITree<T>
NewTree(IEqualityComparer<T>)
public static ITree<T> NewTree(IEqualityComparer<T> comparer)
Parameters
comparer IEqualityComparer<T>
Returns
- ITree<T>
OnCleared(ITree<T>)
protected virtual void OnCleared(ITree<T> tree)
Parameters
tree ITree<T>
OnClearing(ITree<T>)
protected virtual void OnClearing(ITree<T> tree)
Parameters
tree ITree<T>
OnCopied(INode<T>, INode<T>)
protected virtual void OnCopied(INode<T> oldNode, INode<T> newNode)
Parameters
oldNode INode<T>
newNode INode<T>
OnCopiedCore(INode<T>, INode<T>, bool)
protected virtual void OnCopiedCore(INode<T> oldNode, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
newNode INode<T>
raiseValidate bool
OnCopying(INode<T>, INode<T>)
protected virtual void OnCopying(INode<T> oldNode, INode<T> newNode)
Parameters
oldNode INode<T>
newNode INode<T>
OnCopyingCore(INode<T>, INode<T>, bool)
protected virtual void OnCopyingCore(INode<T> oldNode, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
newNode INode<T>
raiseValidate bool
OnCutDone(INode<T>, INode<T>)
protected virtual void OnCutDone(INode<T> oldRoot, INode<T> oldNode)
Parameters
oldRoot INode<T>
oldNode INode<T>
OnCutting(INode<T>)
protected virtual void OnCutting(INode<T> oldNode)
Parameters
oldNode INode<T>
OnDeepCopied(INode<T>, INode<T>)
protected virtual void OnDeepCopied(INode<T> oldNode, INode<T> newNode)
Parameters
oldNode INode<T>
newNode INode<T>
OnDeepCopiedCore(INode<T>, INode<T>, bool)
protected virtual void OnDeepCopiedCore(INode<T> oldNode, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
newNode INode<T>
raiseValidate bool
OnDeepCopying(INode<T>, INode<T>)
protected virtual void OnDeepCopying(INode<T> oldNode, INode<T> newNode)
Parameters
oldNode INode<T>
newNode INode<T>
OnDeepCopyingCore(INode<T>, INode<T>, bool)
protected virtual void OnDeepCopyingCore(INode<T> oldNode, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
newNode INode<T>
raiseValidate bool
OnInserted(INode<T>, NodeTreeInsertOperation, INode<T>)
protected virtual void OnInserted(INode<T> oldNode, NodeTreeInsertOperation operation, INode<T> newNode)
Parameters
oldNode INode<T>
operation NodeTreeInsertOperation
newNode INode<T>
OnInsertedCore(INode<T>, NodeTreeInsertOperation, INode<T>, bool)
protected virtual void OnInsertedCore(INode<T> oldNode, NodeTreeInsertOperation operation, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
operation NodeTreeInsertOperation
newNode INode<T>
raiseValidate bool
OnInsertedTree(INode<T>)
protected virtual void OnInsertedTree(INode<T> newNode)
Parameters
newNode INode<T>
OnInsertedTree(INode<T>, INode<T>)
protected virtual void OnInsertedTree(INode<T> newNode, INode<T> child)
Parameters
newNode INode<T>
child INode<T>
OnInsertedTreeCore(INode<T>, INode<T>, bool)
protected virtual void OnInsertedTreeCore(INode<T> newNode, INode<T> child, bool raiseValidate)
Parameters
newNode INode<T>
child INode<T>
raiseValidate bool
OnInserting(INode<T>, NodeTreeInsertOperation, INode<T>)
protected virtual void OnInserting(INode<T> oldNode, NodeTreeInsertOperation operation, INode<T> newNode)
Parameters
oldNode INode<T>
operation NodeTreeInsertOperation
newNode INode<T>
OnInsertingCore(INode<T>, NodeTreeInsertOperation, INode<T>, bool)
protected virtual void OnInsertingCore(INode<T> oldNode, NodeTreeInsertOperation operation, INode<T> newNode, bool raiseValidate)
Parameters
oldNode INode<T>
operation NodeTreeInsertOperation
newNode INode<T>
raiseValidate bool
OnInsertingTree(INode<T>)
protected virtual void OnInsertingTree(INode<T> newNode)
Parameters
newNode INode<T>
OnInsertingTree(INode<T>, INode<T>)
protected virtual void OnInsertingTree(INode<T> newNode, INode<T> child)
Parameters
newNode INode<T>
child INode<T>
OnInsertingTreeCore(INode<T>, INode<T>, bool)
protected virtual void OnInsertingTreeCore(INode<T> newNode, INode<T> child, bool raiseValidate)
Parameters
newNode INode<T>
child INode<T>
raiseValidate bool
OnSetDone(INode<T>, T)
protected virtual void OnSetDone(INode<T> node, T data)
Parameters
node INode<T>
data T
OnSetDoneCore(INode<T>, T, bool)
protected virtual void OnSetDoneCore(INode<T> node, T data, bool raiseValidate)
Parameters
node INode<T>
data T
raiseValidate bool
OnSetting(INode<T>, T)
protected virtual void OnSetting(INode<T> node, T data)
Parameters
node INode<T>
data T
OnSettingCore(INode<T>, T, bool)
protected virtual void OnSettingCore(INode<T> node, T data, bool raiseValidate)
Parameters
node INode<T>
data T
raiseValidate bool
OnValidate(INode<T>, T)
protected virtual void OnValidate(INode<T> node, T data)
Parameters
node INode<T>
data T
Remove()
Remove(T)
Parameters
o T
Returns
- bool
RemoveCore()
protected virtual void RemoveCore()
SortAllChildren()
public virtual void SortAllChildren()
SortAllChildren(IComparer<T>)
public virtual void SortAllChildren(IComparer<T> comparer)
Parameters
comparer IComparer<T>
SortAllChildren(Comparison<T>)
public virtual void SortAllChildren(Comparison<T> comparison)
Parameters
comparison Comparison<T>
SortDirectChildren()
public virtual void SortDirectChildren()
SortDirectChildren(IComparer<T>)
public virtual void SortDirectChildren(IComparer<T> comparer)
Parameters
comparer IComparer<T>
SortDirectChildren(Comparison<T>)
public virtual void SortDirectChildren(Comparison<T> comparison)
Parameters
comparison Comparison<T>
ToNodeTree(INode<T>)
protected static NodeTree<T> ToNodeTree(INode<T> node)
Parameters
node INode<T>
Returns
- NodeTree<T>
ToNodeTree(ITree<T>)
protected static NodeTree<T> ToNodeTree(ITree<T> tree)
Parameters
tree ITree<T>
Returns
- NodeTree<T>
ToString()
public override string ToString()
Returns
- string
ToStringRecursive()
public virtual string ToStringRecursive()
Returns
- string
Events
Cleared
public event EventHandler Cleared
Event Type
- EventHandler
Clearing
public event EventHandler Clearing
Event Type
- EventHandler
Copied
public event EventHandler<NodeTreeNodeEventArgs<T>> Copied
Event Type
- EventHandler<NodeTreeNodeEventArgs<T>>
Copying
public event EventHandler<NodeTreeNodeEventArgs<T>> Copying
Event Type
- EventHandler<NodeTreeNodeEventArgs<T>>
CutDone
public event EventHandler CutDone
Event Type
- EventHandler
Cutting
public event EventHandler Cutting
Event Type
- EventHandler
DeepCopied
public event EventHandler<NodeTreeNodeEventArgs<T>> DeepCopied
Event Type
- EventHandler<NodeTreeNodeEventArgs<T>>
DeepCopying
public event EventHandler<NodeTreeNodeEventArgs<T>> DeepCopying
Event Type
- EventHandler<NodeTreeNodeEventArgs<T>>
Inserted
public event EventHandler<NodeTreeInsertEventArgs<T>> Inserted
Event Type
- EventHandler<NodeTreeInsertEventArgs<T>>
Inserting
public event EventHandler<NodeTreeInsertEventArgs<T>> Inserting
Event Type
- EventHandler<NodeTreeInsertEventArgs<T>>
SetDone
public event EventHandler<NodeTreeDataEventArgs<T>> SetDone
Event Type
- EventHandler<NodeTreeDataEventArgs<T>>
Setting
public event EventHandler<NodeTreeDataEventArgs<T>> Setting
Event Type
- EventHandler<NodeTreeDataEventArgs<T>>
Validate
public event EventHandler<NodeTreeDataEventArgs<T>> Validate
Event Type
- EventHandler<NodeTreeDataEventArgs<T>>