static internal TreeNode CreateNode(this DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem item, bool openedDir = false) { int n2 = 0; int n3 = 1; int n4 = 2; if (openedDir) { ++n2; ++n3; ++n4; } TreeNode n = null; if (item is DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory) { DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory d = item as DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory; List <TreeNode> l = new List <TreeNode>(); foreach (DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem it in d.Children) { TreeNode tn = it.CreateNode(openedDir); if (tn != null) { l.Add(it.CreateNode(openedDir)); } } l.Sort(TreeNodeComparer.Singleton); n = new TreeNode(item.Name, 0, 1, l.ToArray()); } else { if (!openedDir) { n = new TreeNode(item.Name, 2, 3); } else { return(null); } } n.Tag = item; return(n); }
int IComparer <TreeNode> .Compare(TreeNode x, TreeNode y) { DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem lx = x.Tag as DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem; DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem ly = y.Tag as DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem; if ((lx is DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory)) { if (ly is DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory) { return(x.Text.CompareTo(y.Text)); } return(-1); } if (ly is DataPerformer.Interfaces.BufferedData.Interfaces.IBufferDirectory) { return(1); } return(x.Text.CompareTo(y.Text)); }
static internal TreeNode Find(this TreeNode node, string url) { object o = node.Tag; if (o is DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem) { DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem li = o as DataPerformer.Interfaces.BufferedData.Interfaces.IBufferItem; if (li.GetUrl().Equals(url)) { return(node); } } foreach (TreeNode tn in node.Nodes) { TreeNode t = Find(tn, url); if (t != null) { return(t); } } return(null); }