Table of Contents

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()

protected 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)

public INode<T> Add(T o)

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()

public void 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()

public ITree<T> 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()

public ITree<T> Cut()

Returns

ITree<T>

Cut(T)

public ITree<T> Cut(T o)

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()

public void Dispose()

Dispose(bool)

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

~NodeTree()

protected ~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()

public void MoveToLast()

MoveToNext()

public void 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()

public void Remove()

Remove(T)

public bool Remove(T o)

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>>