Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private void AddCollectionNode
     (ITreeNodeCollection nodeCollection, IBusinessObjectCollection businessObjectCollection)
 {
     foreach (IBusinessObject businessObject in businessObjectCollection)
     {
         AddBusinessObjectNode(TreeView.Nodes, businessObject);
     }
 }
Ejemplo n.º 4
0
        private void AddRelationshipNode(ITreeNodeCollection nodes, IRelationship relationship)
        {
            ITreeNode newNode = SetupNode(nodes, relationship);

            if (newNode == null)
            {
                return;
            }
            if (newNode.IsExpanded)
            {
                LoadRelationshipNode(relationship, newNode.Nodes);
            }
        }
Ejemplo n.º 5
0
        private void AddBusinessObjectNode(ITreeNodeCollection nodes, IBusinessObject businessObject)
        {
            ITreeNode newNode = SetupNode(nodes, businessObject);

            if (newNode == null)
            {
                return;
            }
            if (newNode.IsExpanded)
            {
                LoadObjectNode(businessObject);
            }
        }
Ejemplo n.º 6
0
 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);
     }
 }
Ejemplo n.º 7
0
 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();
 }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
0
 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);
             }
         }
     }
 }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
 /// <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;
     }
 }
Ejemplo n.º 12
0
 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);
         }
     }
 }
Ejemplo n.º 13
0
        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.");
        }
Ejemplo n.º 14
0
 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);
         }
     }
 }
Ejemplo n.º 15
0
 /// <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)
 {
 }
Ejemplo n.º 16
0
 /// <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)
 {
 }
Ejemplo n.º 17
0
 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);
     }
 }
Ejemplo n.º 18
0
        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;
        }
Ejemplo n.º 19
0
 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;
 }
Ejemplo n.º 20
0
        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.");
        }
Ejemplo n.º 21
0
 private void AddRelationshipNode(ITreeNodeCollection nodes, IRelationship relationship)
 {
     ITreeNode newNode = SetupNode(nodes, relationship);
     if (newNode == null) return;
     if (newNode.IsExpanded)
     {
         LoadRelationshipNode(relationship, newNode.Nodes);
     }
 }
Ejemplo n.º 22
0
 private void AddCollectionNode
     (ITreeNodeCollection nodeCollection, IBusinessObjectCollection businessObjectCollection)
 {
     foreach (IBusinessObject businessObject in businessObjectCollection)
     {
         AddBusinessObjectNode(TreeView.Nodes, businessObject);
     }
 }
Ejemplo n.º 23
0
 private void AddBusinessObjectNode(ITreeNodeCollection nodes, IBusinessObject businessObject)
 {
     ITreeNode newNode = SetupNode(nodes, businessObject);
     if (newNode == null) return;
     if (newNode.IsExpanded)
     {
         LoadObjectNode(businessObject);
     }
 }
Ejemplo n.º 24
0
 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);
             }
         }
     }
 }