private ITreeNode SetupBusinessObjectNode(IBusinessObject businessObject, ITreeNodeCollection nodes) { ITreeNode node; NodeState nodeState; if (!ObjectNodes.ContainsKey(businessObject)) { node = nodes.Add(""); node.Collapse(false); if (_levelsToDisplay > -1 && node.Level > _levelsToDisplay) { nodes.Remove(node); return(null); } nodeState = new NodeState(node); nodeState.IsLoaded = false; UpdateNodeDummy(nodeState, GetVisibleRelationships(businessObject).Count); //LoadChildrenNodes(nodeState.Node.Nodes, businessObject); ObjectNodes.Add(businessObject, nodeState); // LoadObjectNode(businessObject); RegisterForBusinessObjectEvents(businessObject); } else { nodeState = ObjectNodes[businessObject]; node = nodeState.Node; } DoSetupNodeWithBusinessObject(node, businessObject); node.Tag = businessObject; return(node); }
private ITreeNode SetupRelationshipNode(IRelationship relationship, ITreeNodeCollection nodes) { bool isNewColTag = !RelationshipNodes.ContainsKey(relationship); ITreeNode node; NodeState nodeState; if (isNewColTag) { node = nodes.Add(""); node.Collapse(false); if (_levelsToDisplay > -1 && node.Level > _levelsToDisplay) { nodes.Remove(node); return(null); } nodeState = new NodeState(node); RelationshipNodes.Add(relationship, nodeState); SetupRelationshipNodeDummy(relationship, nodeState); } else { nodeState = RelationshipNodes[relationship]; node = nodeState.Node; } DoSetupNodeWithRelationship(node, relationship); node.Tag = relationship; return(node); }
private void AddCollectionNode (ITreeNodeCollection nodeCollection, IBusinessObjectCollection businessObjectCollection) { foreach (IBusinessObject businessObject in businessObjectCollection) { AddBusinessObjectNode(TreeView.Nodes, businessObject); } }
private void AddRelationshipNode(ITreeNodeCollection nodes, IRelationship relationship) { ITreeNode newNode = SetupNode(nodes, relationship); if (newNode == null) { return; } if (newNode.IsExpanded) { LoadRelationshipNode(relationship, newNode.Nodes); } }
private void AddBusinessObjectNode(ITreeNodeCollection nodes, IBusinessObject businessObject) { ITreeNode newNode = SetupNode(nodes, businessObject); if (newNode == null) { return; } if (newNode.IsExpanded) { LoadObjectNode(businessObject); } }
private void ExpandLevels(ITreeNodeCollection nodes, int expandLevels) { if (expandLevels <= 0) { return; } foreach (ITreeNode treeNode in nodes) { treeNode.Expand(); ExpandNode(treeNode); this.ExpandLevels(treeNode.Nodes, expandLevels - 1); } }
public void Setup() { mr = new MockRepository(); sc = new ServiceContainer(); mockTree = mr.StrictMock <ITreeView>(); mockNodes = mr.StrictMock <ITreeNodeCollection>(); uiSvc = mr.StrictMock <IDecompilerShellUiService>(); uiPrefSvc = mr.Stub <IUiPreferencesService>(); mockTree.Stub(t => t.Nodes).Return(mockNodes); uiSvc.Stub(u => u.SetContextMenu(null, 0)).IgnoreArguments(); sc.AddService <IDecompilerShellUiService>(uiSvc); sc.AddService <IUiPreferencesService>(uiPrefSvc); fakeTree = new FakeTreeView(); }
private void LoadObjectNode(IBusinessObject businessObject) { if (businessObject == null) { return; } NodeState nodeState = ObjectNodes[businessObject]; if (nodeState.IsLoaded) { return; } ITreeNodeCollection nodes = nodeState.Node.Nodes; nodes.Clear(); LoadChildrenNodes(nodes, businessObject); nodeState.IsLoaded = true; }
private void LoadChildrenNodes(ITreeNodeCollection nodes, IBusinessObject parent) { foreach (KeyValuePair <string, IRelationship> pair in GetVisibleRelationships(parent)) { IRelationship relationship = pair.Value; if (!String.IsNullOrEmpty(pair.Key)) { ITreeNode node = SetupNode(nodes, relationship); if (node == null) { continue; } if (node.IsExpanded) { LoadChildNode(relationship); } } } }
private void LoadChildNode(IRelationship relationship) { if (relationship == null) { return; } NodeState nodeState = RelationshipNodes[relationship]; if (nodeState.IsLoaded) { return; } ITreeNodeCollection nodes = nodeState.Node.Nodes; nodes.Clear(); LoadRelationshipNode(relationship, nodes); nodeState.IsLoaded = true; }
/// <summary> /// Creates a new instance of the <see cref="TreeNode{T}" /> class. /// </summary> /// <param name="value">The value of the node.</param> /// <param name="parent">The parent of the node.</param> /// <param name="children">The children of the node.</param> public TreeNode(T value, ITreeNode <T> parent = null, ITreeNodeCollection <T> children = null) { Value = value; Parent = parent; Children = children ?? new TreeNodeCollection <T>(this); if (Parent != null) { DisposeTraversalDirection = Parent.DisposeTraversalDirection; SearchTraversalDirection = Parent.SearchTraversalDirection; AncestorsTraversalDirection = Parent.AncestorsTraversalDirection; DescendantsTraversalDirection = Parent.DescendantsTraversalDirection; } else { DisposeTraversalDirection = TreeTraversalDirection.BottomUp; SearchTraversalDirection = TreeTraversalDirection.BottomUp; AncestorsTraversalDirection = TreeTraversalDirection.BottomUp; DescendantsTraversalDirection = TreeTraversalDirection.BottomUp; } }
private void LoadRelationshipNode(IRelationship relationship, ITreeNodeCollection nodes) { if (relationship is IMultipleRelationship) { IMultipleRelationship multipleRelationship = (IMultipleRelationship)relationship; IBusinessObjectCollection children = multipleRelationship.BusinessObjectCollection; foreach (IBusinessObject businessObject in children.Clone()) { AddBusinessObjectNode(nodes, businessObject); } } else { ISingleRelationship singleRelationship = (ISingleRelationship)relationship; IBusinessObject businessObject = singleRelationship.GetRelatedObject(); if (businessObject != null) { AddBusinessObjectNode(nodes, businessObject); } } }
private ITreeNode SetupNode(ITreeNodeCollection nodes, object nodeTag) { if (nodeTag == null) { throw new ArgumentNullException("nodeTag"); } IBusinessObject businessObject = nodeTag as IBusinessObject; if (businessObject != null) { return(SetupBusinessObjectNode(businessObject, nodes)); } IRelationship relationship = nodeTag as IRelationship; if (relationship != null) { return(SetupRelationshipNode(relationship, nodes)); } throw new InvalidCastException("'nodeTag' is not of a recognised type."); }
/// <summary> /// Creates a new instance of the <see cref="TreeNode{T}" /> class. /// </summary> /// <param name="value">The value of the node.</param> /// <param name="children">The children of the node.</param> public TreeNode(T value, ITreeNodeCollection <T> children) : this(value, null, children) { }
/// <summary> /// Creates a new instance of the <see cref="TreeNode{T}" /> class. /// </summary> /// <param name="children">The children of the node.</param> public TreeNode(ITreeNodeCollection <T> children) : this(default, null, children) { }
private void ExpandLevels(ITreeNodeCollection nodes, int expandLevels) { if (expandLevels <= 0) return; foreach (ITreeNode treeNode in nodes) { treeNode.Expand(); ExpandNode(treeNode); this.ExpandLevels(treeNode.Nodes, expandLevels - 1); } }
private ITreeNode SetupBusinessObjectNode(IBusinessObject businessObject, ITreeNodeCollection nodes) { ITreeNode node; NodeState nodeState; if (!ObjectNodes.ContainsKey(businessObject)) { node = nodes.Add(""); node.Collapse(false); if (_levelsToDisplay > -1 && node.Level > _levelsToDisplay) { nodes.Remove(node); return null; } nodeState = new NodeState(node); nodeState.IsLoaded = false; UpdateNodeDummy(nodeState, GetVisibleRelationships(businessObject).Count); //LoadChildrenNodes(nodeState.Node.Nodes, businessObject); ObjectNodes.Add(businessObject, nodeState); // LoadObjectNode(businessObject); RegisterForBusinessObjectEvents(businessObject); } else { nodeState = ObjectNodes[businessObject]; node = nodeState.Node; } DoSetupNodeWithBusinessObject(node, businessObject); node.Tag = businessObject; return node; }
private ITreeNode SetupRelationshipNode(IRelationship relationship, ITreeNodeCollection nodes) { bool isNewColTag = !RelationshipNodes.ContainsKey(relationship); ITreeNode node; NodeState nodeState; if (isNewColTag) { node = nodes.Add(""); node.Collapse(false); if (_levelsToDisplay > -1 && node.Level > _levelsToDisplay) { nodes.Remove(node); return null; } nodeState = new NodeState(node); RelationshipNodes.Add(relationship, nodeState); SetupRelationshipNodeDummy(relationship, nodeState); } else { nodeState = RelationshipNodes[relationship]; node = nodeState.Node; } DoSetupNodeWithRelationship(node, relationship); node.Tag = relationship; return node; }
private ITreeNode SetupNode(ITreeNodeCollection nodes, object nodeTag) { if (nodeTag == null) { throw new ArgumentNullException("nodeTag"); } IBusinessObject businessObject = nodeTag as IBusinessObject; if (businessObject != null) return SetupBusinessObjectNode(businessObject, nodes); IRelationship relationship = nodeTag as IRelationship; if (relationship != null) return SetupRelationshipNode(relationship, nodes); throw new InvalidCastException("'nodeTag' is not of a recognised type."); }
private void AddRelationshipNode(ITreeNodeCollection nodes, IRelationship relationship) { ITreeNode newNode = SetupNode(nodes, relationship); if (newNode == null) return; if (newNode.IsExpanded) { LoadRelationshipNode(relationship, newNode.Nodes); } }
private void AddBusinessObjectNode(ITreeNodeCollection nodes, IBusinessObject businessObject) { ITreeNode newNode = SetupNode(nodes, businessObject); if (newNode == null) return; if (newNode.IsExpanded) { LoadObjectNode(businessObject); } }
private void LoadChildrenNodes(ITreeNodeCollection nodes, IBusinessObject parent) { foreach (KeyValuePair<string, IRelationship> pair in GetVisibleRelationships(parent)) { IRelationship relationship = pair.Value; if (!String.IsNullOrEmpty(pair.Key)) { ITreeNode node = SetupNode(nodes, relationship); if (node == null) continue; if (node.IsExpanded) { LoadChildNode(relationship); } } } }