Added the source code of Aga.Controls (TreeViewAdv for .Net) version 1.7.0.0.
2 using System.Collections.Generic;
4 using System.Collections;
6 namespace Aga.Controls.Tree
8 public class SortedTreeModel: TreeModelBase
10 private ITreeModel _innerModel;
11 public ITreeModel InnerModel
13 get { return _innerModel; }
16 private IComparer _comparer;
17 public IComparer Comparer
19 get { return _comparer; }
23 OnStructureChanged(new TreePathEventArgs(TreePath.Empty));
27 public SortedTreeModel(ITreeModel innerModel)
29 _innerModel = innerModel;
30 _innerModel.NodesChanged += new EventHandler<TreeModelEventArgs>(_innerModel_NodesChanged);
31 _innerModel.NodesInserted += new EventHandler<TreeModelEventArgs>(_innerModel_NodesInserted);
32 _innerModel.NodesRemoved += new EventHandler<TreeModelEventArgs>(_innerModel_NodesRemoved);
33 _innerModel.StructureChanged += new EventHandler<TreePathEventArgs>(_innerModel_StructureChanged);
36 void _innerModel_StructureChanged(object sender, TreePathEventArgs e)
38 OnStructureChanged(e);
41 void _innerModel_NodesRemoved(object sender, TreeModelEventArgs e)
43 OnStructureChanged(new TreePathEventArgs(e.Path));
46 void _innerModel_NodesInserted(object sender, TreeModelEventArgs e)
48 OnStructureChanged(new TreePathEventArgs(e.Path));
51 void _innerModel_NodesChanged(object sender, TreeModelEventArgs e)
53 OnStructureChanged(new TreePathEventArgs(e.Path));
56 public override IEnumerable GetChildren(TreePath treePath)
60 ArrayList list = new ArrayList();
61 IEnumerable res = InnerModel.GetChildren(treePath);
64 foreach (object obj in res)
73 return InnerModel.GetChildren(treePath);
76 public override bool IsLeaf(TreePath treePath)
78 return InnerModel.IsLeaf(treePath);