public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new ExplodeMemento(Compound, Nodes); target._Explode(Compound); return(inverse); }
internal void Modify(Node Node, Keys ModifierKeys) { List <string> nodesName = new List <string> { Node.FullName }; switch (ModifierKeys) { case Keys.Shift: //AddToSelection(Node); NodalDirector.SelectNodes(nodesName, "Add"); break; case Keys.Control: //ToggleSelection(Node); NodalDirector.SelectNodes(nodesName, "Toggle"); break; case Keys.Alt: //RemoveFromSelection(Node); NodalDirector.SelectNodes(nodesName, "RemoveFrom"); break; default: //Select(Node); NodalDirector.SelectNodes(nodesName, "Default"); break; } }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new DeleteNodeMemento(node, node.Parent, new NodeConnexions(node), XOffset, YOffset); target._DeleteNode(node); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new ReAddNodeMemento(removed, parent, connections, 0, 0); target._AddNode(removed, parent, connections, 0, 0); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new MoveNodeMemento(Node); target._MoveNode(Node, (int)(x * target.layout.LayoutSize), (int)(y * target.layout.LayoutSize)); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new SetPortPropetyMemento(Port, propertyName); target._SetPortProperty(Port, propertyName, value); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new CreateCompoundMemento(Nodes, Compound); target._CreateCompound(Nodes, Compound); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new RenameMemento(Node, nodeName); target._Rename(Node, nodeName); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new DisconnectMemento(copyReconnected); target._Disconnect(copyReconnected); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { IMemento <NodalDirector> inverse = new ConnectMemento(disconnected, mode); target._Connect(disconnected, mode); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { Node removed = target.manager.GetNode(nodeName); IMemento <NodalDirector> inverse = new DeleteNodeMemento(removed, removed.Parent, null, 0, 0); target._DeleteNode(removed); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { Node Node = target.manager.GetNode(NodeName); IMemento <NodalDirector> inverse = new UnParentMemento(NodeName, CompoundName); target._UnParent(Node); return(inverse); }
public override IMemento <NodalDirector> Restore(NodalDirector target) { Node inNode = target.manager.GetNode(nodeNameIn); Node outNode = target.manager.GetNode(nodeNameOut); int inPort = inNode.GetPort(PortNameIn, false).Index; int outPort = outNode.GetPort(PortNameOut, true).Index; IMemento <NodalDirector> inverse = new ReconnectMemento(reconnected.Target.Owner.FullName, reconnected.Source.Owner.FullName, reconnected.Target.FullName, reconnected.Source.FullName, reconnected, Mode); target._ReConnect(inNode, outNode, inPort, outPort, reconnected, Mode); return(inverse); }
public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; switch (binder.Name) { case "addNode": result = (Func <string, string, int, int, string>)((string a, string b, int c, int d) => NodalDirector.AddNode(a, b, c, d)); return(true); case "deleteNode": result = (Func <string, bool>)((string a) => NodalDirector.DeleteNode(a)); return(true); } return(false); }
/// <summary> /// Inserts a port object /// </summary> /// <param name="inNode">Node on which to add the port</param> /// <param name="inObj">Port object</param> /// <param name="index">Index of where to insert the object</param> /// <returns></returns> internal static List <Port> AddPortObj(Node inNode, PortObj inObj, int index) { List <Port> ports = new List <Port>(); foreach (PortObj portObj in inNode.Elements) { if (portObj.FullName == inObj.FullName) { NodalDirector.ShowError(string.Format("Node '{0}' already have a port object named '{1}'", inNode.FullName, inObj.FullName), "Cannot add Port"); return(ports); } } inObj.Owner = inNode; inNode.Elements.Insert(index, inObj); if (inObj.IsInput) { Port newInput = new Port(inNode, inObj, inNode.Inputs.Count, false); inNode.Inputs.Insert(index, newInput); if (!inObj.ExposeInput) { newInput.Visible = false; } ports.Add(newInput); } if (inObj.IsOutput) { Port newOutput = new Port(inNode, inObj, inNode.Outputs.Count, true); inNode.Outputs.Insert(index, newOutput); if (!inObj.ExposeOutput) { newOutput.Visible = false; } ports.Add(newOutput); } return(ports); }
internal void Modify(List <Node> Nodes, Keys ModifierKeys) { List <string> nodesName = new List <string>(); foreach (Node node in Nodes) { nodesName.Add(node.FullName); } switch (ModifierKeys) { case Keys.Shift: //foreach (Node Node in Nodes) //{ // AddToSelection(Node); //} NodalDirector.SelectNodes(nodesName, "Add"); break; case Keys.Control: //foreach (Node Node in Nodes) //{ // ToggleSelection(Node); //} NodalDirector.SelectNodes(nodesName, "Toggle"); break; case Keys.Alt: //foreach (Node Node in Nodes) //{ // RemoveFromSelection(Node); //} NodalDirector.SelectNodes(nodesName, "RemoveFrom"); break; default: //Select(Nodes); NodalDirector.SelectNodes(nodesName, "Default"); break; } }
/// Handles the thread exception. public virtual void Application_ThreadException( object sender, ThreadExceptionEventArgs e) { NodalDirector.ClearHistory(); if (e.Exception is NodalDirectorException) { string[] stacks = e.Exception.StackTrace.Split("\n".ToCharArray()); int line = 10; foreach (string stack in stacks) { if (stack.Contains("CSCodeEvaler.EvalCode()")) { string[] chunks = stack.Split(" ".ToCharArray()); line = int.Parse(chunks[chunks.Length - 1].Trim("\r".ToCharArray())); break; } } string codeline = string.Empty; if (e.Exception.HelpLink != null) { string[] lines = e.Exception.HelpLink.Split("\n".ToCharArray()); if (lines.Length > line - 10) { codeline = lines[line - 10]; } } NodalDirector.Error(string.Format("in \"Interpreter\" line {0} > {1}\n{2}", line - 9, codeline, e.Exception.Message)); return; } throw e.Exception; }