using System;
using System.Collections.Generic;
using System.Text;
namespace Aga.Controls.Tree{
/// <summary>
/// Converts IEnumerable interface to ITreeModel.
/// Allows to display a plain list in the TreeView
/// </summary>
public class TreeListAdapter : ITreeModel
{
private System.Collections.IEnumerable _list;
public TreeListAdapter(System.Collections.IEnumerable list)
{
_list = list;
}
#region ITreeModel Members
public System.Collections.IEnumerable GetChildren(TreePath treePath)
{
if (treePath.IsEmpty())
return _list;
else
return null;
}
public bool IsLeaf(TreePath treePath)
{
return true;
}
public event EventHandler<TreeModelEventArgs> NodesChanged;
public void OnNodesChanged(TreeModelEventArgs args)
{
if (NodesChanged != null)
NodesChanged(this, args);
}
public event EventHandler<TreePathEventArgs> StructureChanged;
public void OnStructureChanged(TreePathEventArgs args)
{
if (StructureChanged != null)
StructureChanged(this, args);
}
public event EventHandler<TreeModelEventArgs> NodesInserted;
public void OnNodeInserted(TreeModelEventArgs args)
{
if (NodesInserted != null)
NodesInserted(this, args);
}
public event EventHandler<TreeModelEventArgs> NodesRemoved;
public void OnNodeRemoved(TreeModelEventArgs args)
{
if (NodesRemoved != null)
NodesRemoved(this, args);
}
#endregion
}
}
|