예제 #1
0
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as MoveNodeCommandToken;

            // TODO Test if the connection already exists
            mApp.SetGraph(mApp.Graph.ReplaceNode(token.Node, token.Node.Move(token.NewPosition)));
        }
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as AddConnectionCommandToken;

            // TODO Test if the connection already exists
            mApp.SetGraph(mApp.Graph.AddConnection(token.Connection));
        }
예제 #3
0
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as AddNodeCommandToken;

            // TODO Test if the connection already exists
            var pos     = mApp.Graph.Nodes.Count == 0 ? new Point2(0, 0) : mApp.Graph.Nodes.Last().Position + new Point2(200, 0);
            var inputs  = ImmutableArray <NodeInput> .Empty;
            var outputs = ImmutableArray <NodeOutput> .Empty;

            var type = ComponentFinder.FindByName(token.Type);

            foreach (var attr in ComponentFinder.GetInputAttributes(type))
            {
                inputs = inputs.Add(new NodeInput(attr.Name, null));
            }
            foreach (var attr in ComponentFinder.GetOutputAttributes(type))
            {
                outputs = outputs.Add(new NodeOutput(attr.Name, false));
            }

            var node = new Node(FindUniqueName(mApp.Graph, token.Type), token.Type, pos,
                                inputs, outputs);

            mApp.SetGraph(mApp.Graph.AddNode(node));
        }
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as ToggleNodeOutputIsStreamCommandToken;

            // TODO Test if the connection already exists
            var newNodeOutput = new NodeOutput(token.NodeOutput.Name, !token.NodeOutput.IsStream);

            mApp.SetGraph(mApp.Graph.ReplaceNode(token.Node, token.Node.ReplaceOutput(token.NodeOutput, newNodeOutput)));
        }
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as EditNodeInputInitialDataToken;

            // TODO Test if the connection already exists
            var newNodeInput = new NodeInput(token.NodeInput.Name, token.NewInitialData);

            mApp.SetGraph(mApp.Graph.ReplaceNode(token.Node, token.Node.ReplaceInput(token.NodeInput, newNodeInput)));
        }
예제 #6
0
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as RemoveNodeCommandToken;

            mApp.SetGraph(mApp.Graph.RemoveNode(token.Node));
        }
예제 #7
0
        public override void Execute(ICommandToken commandToken)
        {
            var token = commandToken as RemoveConnectionCommandToken;

            mApp.SetGraph(mApp.Graph.RemoveConnection(token.Connection));
        }