public virtual INode CreateNode(Node node,
			bool keepGroups, bool ignoreArrowDirection)
		{
			// If groups' layout is preserved, then, the underlying
			// node is always the highest-in-hierarchy group master.
			if (keepGroups)
			{
				while (node.MasterGroup != null)
				{
					if (!(node.MasterGroup.MainObject is Node))
						break;

					node = node.MasterGroup.MainObject as Node;
				}
			}

			if (_nodes.Contains(node))
				return _nodes[node] as INode;

			FCNode result = new FCNode();
			_nodes[node] = result;
			result.Create(node, keepGroups,
				ignoreArrowDirection, this);

			return result;
		}
Exemple #2
0
        public virtual INode CreateNode(Node node,
                                        bool keepGroups, bool ignoreArrowDirection)
        {
            // If groups' layout is preserved, then, the underlying
            // node is always the highest-in-hierarchy group master.
            if (keepGroups)
            {
                while (node.MasterGroup != null)
                {
                    if (!(node.MasterGroup.MainObject is Node))
                    {
                        break;
                    }

                    node = node.MasterGroup.MainObject as Node;
                }
            }

            if (_nodes.Contains(node))
            {
                return(_nodes[node] as INode);
            }

            FCNode result = new FCNode();

            _nodes[node] = result;
            result.Create(node, keepGroups,
                          ignoreArrowDirection, this);

            return(result);
        }