/// <summary> /// Checks if a node can be adopted by this one. /// </summary> /// <param name="child">The node we want to adopt.</param> /// <returns>Returns true if this node can adopt the given child.</returns> public bool CanAdoptNode(BaseNode child) { Connector connector = GetConnector(child.ParentConnector.Identifier); if (connector == null) { return(false); } return(connector != null && connector.AcceptsChild(child.GetType())); }
/// <summary> /// Add a new child node. /// </summary> /// <param name="connector">The connector the node will be added to. Use null for default connector.</param> /// <param name="node">The node you want to append.</param> /// <param name="index">The index of the new node.</param> /// <returns>Returns true if the child could be added.</returns> public virtual bool AddChild(Connector connector, Node node, int index) { Debug.Check(connector != null && _children.HasConnector(connector)); if (!connector.AcceptsChild(node.GetType())) { throw new Exception(Resources.ExceptionNodeHasTooManyChildren); } if (!connector.AddChild(node, index)) { return(false); } node._parent = this; BehaviorWasModified(); return(true); }
/// <summary> /// Add a new child but the behaviour does not need to be saved. /// Used for collapsed referenced behaviours which show the behaviours they reference. /// </summary> /// <param name="connector">The connector the node will be added to. Use null for default connector.</param> /// <param name="node">The node you want to append.</param> /// <returns>Returns true if the child could be added.</returns> public virtual bool AddChildNotModified(Connector connector, Node node) { Debug.Check(connector != null && _children.HasConnector(connector)); if (!connector.AcceptsChild(node.GetType())) { throw new Exception(Resources.ExceptionNodeHasTooManyChildren); } if (!connector.AddChild(node)) { return(false); } node._parent = this; node.CopyWasModifiedFromParent(this); return(true); }
/// <summary> /// Add a new child node. /// </summary> /// <param name="connector">The connector the node will be added to. Use null for default connector.</param> /// <param name="node">The node you want to append.</param> /// <param name="index">The index of the new node.</param> /// <returns>Returns true if the child could be added.</returns> public virtual bool AddChild(Connector connector, Node node, int index) { Debug.Check(connector != null && _children.HasConnector(connector)); if (!connector.AcceptsChild(node)) { throw new Exception(Resources.ExceptionNodeHasTooManyChildren); } if (!connector.AddChild(node, index)) { return false; } node._parent = this; return true; }
/// <summary> /// Add a new child but the behaviour does not need to be saved. /// Used for collapsed referenced behaviours which show the behaviours they reference. /// </summary> /// <param name="connector">The connector the node will be added to. Use null for default connector.</param> /// <param name="node">The node you want to append.</param> /// <returns>Returns true if the child could be added.</returns> public virtual bool AddChildNotModified(Connector connector, Node node) { Debug.Check(connector != null && _children.HasConnector(connector)); if (!connector.AcceptsChild(node.GetType())) { //throw new Exception(Resources.ExceptionNodeHasTooManyChildren); return false; } if (!connector.AddChild(node)) { return false; } node._parent = this; node.CopyWasModifiedFromParent(this); return true; }
/// <summary> /// Checks if a node can be adopted by this one. /// </summary> /// <param name="child">The node we want to adopt.</param> /// <returns>Returns true if this node can adopt the given child.</returns> public bool CanAdoptNode(BaseNode child) { Connector connector = (child != null && child.ParentConnector != null) ? GetConnector(child.ParentConnector.Identifier) : null; return((connector != null) ? connector.AcceptsChild(child.GetType()) : false); }
/// <summary> /// Add a new child but the behaviour does not need to be saved. /// Used for collapsed referenced behaviours which show the behaviours they reference. /// </summary> /// <param name="connector">The connector the node will be added to. Use null for default connector.</param> /// <param name="node">The node you want to append.</param> /// <returns>Returns true if the child could be added.</returns> public bool AddChildNotModified(Connector connector, NodeViewData node) { Debug.Check(connector != null && _children.HasConnector(connector)); if (!connector.AcceptsChild(node.Node)) { throw new Exception(Resources.ExceptionNodeHasTooManyChildren); } if (!connector.AddChild(node)) { return false; } node._parent = this; return true; }