Exemple #1
0
        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;
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        public override IMemento <NodalDirector> Restore(NodalDirector target)
        {
            IMemento <NodalDirector> inverse = new SetPortPropetyMemento(Port, propertyName);

            target._SetPortProperty(Port, propertyName, value);
            return(inverse);
        }
Exemple #7
0
        public override IMemento <NodalDirector> Restore(NodalDirector target)
        {
            IMemento <NodalDirector> inverse = new CreateCompoundMemento(Nodes, Compound);

            target._CreateCompound(Nodes, Compound);
            return(inverse);
        }
Exemple #8
0
        public override IMemento <NodalDirector> Restore(NodalDirector target)
        {
            IMemento <NodalDirector> inverse = new RenameMemento(Node, nodeName);

            target._Rename(Node, nodeName);
            return(inverse);
        }
Exemple #9
0
        public override IMemento <NodalDirector> Restore(NodalDirector target)
        {
            IMemento <NodalDirector> inverse = new DisconnectMemento(copyReconnected);

            target._Disconnect(copyReconnected);
            return(inverse);
        }
Exemple #10
0
        public override IMemento <NodalDirector> Restore(NodalDirector target)
        {
            IMemento <NodalDirector> inverse = new ConnectMemento(disconnected, mode);

            target._Connect(disconnected, mode);
            return(inverse);
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        /// <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;
            }
        }
Exemple #17
0
        /// 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;
        }