69 lines
1.1 KiB
C#
69 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|