public static ComponentsLibraryNode Build(ComponentLibraryViewModel viewModel) { ComponentsLibraryNode root = new ComponentsLibraryNode(String.Empty); // package references ComponentsLibraryNode packageReferencesNode = new ComponentsLibraryNode("Package References"); root.AddChild(packageReferencesNode); if (viewModel.Experiment != null) { foreach (IPackageReference reference in viewModel.Experiment.References) { ComponentsLibraryNode referenceNode = new ComponentsLibraryNode(reference.Name); packageReferencesNode.AddChild(referenceNode); } } // components ComponentsLibraryNode allComponentsNode = new ComponentsLibraryNode("All Components"); root.AddChild(allComponentsNode); foreach (MetadataDefinition component in viewModel.ComponentsCollection) { ComponentsLibraryNode componentNode = new ComponentsLibraryNode(component.Label, component); allComponentsNode.AddChild(componentNode); foreach (string qualifiedTag in component.Tags.Values) { string[] tags = qualifiedTag.Split(new char[] {'.'}); if (tags.Length > 0) { ComponentsLibraryNode node = root; foreach (string tag in tags) { ComponentsLibraryNode childNode = node.GetChild(tag); if (childNode == null) { childNode = new ComponentsLibraryNode(tag); node.AddChild(childNode); } node = childNode; } node.AddChild(componentNode); } } } return root; }
bool FilterNode(ComponentsLibraryNode node, string filter) { if (node.Label.ToUpper().Contains(filter)) return true; foreach (ComponentsLibraryNode child in node.GetChildren()) if (FilterNode(child, filter)) return true; return false; }
void AddNodeToTreeModel(ComponentsLibraryNode node, TreeStore tree, TreeIter parentNode) { parentNode = tree.AppendValues(parentNode, node); foreach (ComponentsLibraryNode childNode in node) AddNodeToTreeModel(childNode, tree, parentNode); }
void AddNodeToTreeModel(ComponentsLibraryNode node, TreeStore tree, TreeIter parentNode) { parentNode = tree.AppendValues(parentNode, node); //foreach (ComponentsLibraryNode childNode in node) // AddNodeToTreeModel(childNode, tree, parentNode); // HERZUM SPRINT 3: TLAB-194 List<ComponentsLibraryNode> listNode = new List<ComponentsLibraryNode> (); foreach (ComponentsLibraryNode childNode in node) listNode.Add (childNode); listNode.Sort (); if (listNode.Count>0) foreach (ComponentsLibraryNode childNode in listNode) AddNodeToTreeModel(childNode, tree, parentNode); // END HERZUM SPRINT 3: TLAB-194 }