diff -r 3145aadca3d2 -r 0c551e8818e0 External/Aga.Controls/Tree/TreePath.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/External/Aga.Controls/Tree/TreePath.cs Sun May 27 15:16:19 2012 +0000 @@ -0,0 +1,68 @@ +using System; +using System.Text; +using System.Collections.ObjectModel; + +namespace Aga.Controls.Tree +{ + public class TreePath + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")] + public static readonly TreePath Empty = new TreePath(); + + private object[] _path; + public object[] FullPath + { + get { return _path; } + } + + public object LastNode + { + get + { + if (_path.Length > 0) + return _path[_path.Length - 1]; + else + return null; + } + } + + public object FirstNode + { + get + { + if (_path.Length > 0) + return _path[0]; + else + return null; + } + } + + public TreePath() + { + _path = new object[0]; + } + + public TreePath(object node) + { + _path = new object[] { node }; + } + + public TreePath(object[] path) + { + _path = path; + } + + public TreePath(TreePath parent, object node) + { + _path = new object[parent.FullPath.Length + 1]; + for (int i = 0; i < _path.Length - 1; i++) + _path[i] = parent.FullPath[i]; + _path[_path.Length - 1] = node; + } + + public bool IsEmpty() + { + return (_path.Length == 0); + } + } +}