コード例 #1
0
ファイル: MoveNode.cs プロジェクト: jbatonnet/flowtomator
        public MoveNodeAction(NodeInfo nodeInfo, Point oldPosition, Point newPosition)
        {
            NodeInfo = nodeInfo;

            OldPosition = oldPosition;
            NewPosition = newPosition;
        }
コード例 #2
0
ファイル: SlotInfo.cs プロジェクト: jbatonnet/flowtomator
        private SlotInfo(NodeInfo nodeInfo, Slot slot)
        {
            Slot = slot;
            SlotAnchorBinder.PropertyChanged += SlotAnchorBinder_PropertyChanged;

            NodeInfo = nodeInfo;
        }
コード例 #3
0
ファイル: MoveNode.cs プロジェクト: jbatonnet/flowtomator
        public MoveNodeAction(NodeInfo nodeInfo, Point position)
        {
            NodeInfo = nodeInfo;

            OldPosition = new Point(NodeInfo.X, NodeInfo.Y);
            NewPosition = position;
        }
コード例 #4
0
ファイル: SlotInfo.cs プロジェクト: jbatonnet/flowtomator
        public static SlotInfo From(NodeInfo nodeInfo, Slot slot)
        {
            SlotInfo slotInfo;

            if (!slotInfos.TryGetValue(slot, out slotInfo))
                slotInfos.Add(slot, slotInfo = new SlotInfo(nodeInfo, slot));

            return slotInfo;
        }
コード例 #5
0
ファイル: LinkInfo.cs プロジェクト: jbatonnet/flowtomator
        public static LinkInfo From(NodeInfo nodeInfo, Slot slot, Node node)
        {
            Tuple<Slot, Node> tuple = new Tuple<Slot, Node>(slot, node);
            LinkInfo linkInfo;

            if (!linkInfos.TryGetValue(tuple, out linkInfo))
                linkInfos.Add(tuple, linkInfo = new LinkInfo(nodeInfo, slot, node));

            return linkInfo;
        }
コード例 #6
0
ファイル: LinkInfo.cs プロジェクト: jbatonnet/flowtomator
        private LinkInfo(NodeInfo nodeInfo, Slot slot, Node node)
        {
            Slot = slot;
            SlotInfo = SlotInfo.From(nodeInfo, slot);
            SlotInfo.PropertyChanged += SlotInfo_PropertyChanged;

            Node = node;
            NodeInfo = NodeInfo.From(nodeInfo.FlowInfo, node);
            NodeInfo.PropertyChanged += NodeInfo_PropertyChanged;
        }
コード例 #7
0
ファイル: AddLink.cs プロジェクト: jbatonnet/flowtomator
 public AddLinkAction(SlotInfo slotInfo, NodeInfo nodeInfo)
 {
     SlotInfo = slotInfo;
     NodeInfo = nodeInfo;
 }
コード例 #8
0
ファイル: FlowDebugger.cs プロジェクト: jbatonnet/flowtomator
        private async Task Evaluate(NodeInfo nodeInfo)
        {
            NodeStep nodeStep;
            nodeInfo.Status = NodeStatus.Running;
           
            try
            {
                Log.Trace(DebuggerCategory, "Entering node {0}", nodeInfo.Type.Name);

                nodeStep = nodeInfo.Node.Evaluate();

                Log.Trace(DebuggerCategory, "Exiting node {0} with result {1}", nodeInfo.Type.Name, nodeStep.Result);
            }
            catch (Exception e)
            {
                Log.Error(DebuggerCategory, "Error while executing node {0}. {1}", nodeInfo.Type.Name, e.Message);
                nodeStep = new NodeStep(NodeResult.Fail, null);
            }

            if (State == DebuggerState.Idle)
                return;

            nodeInfo.Status = NodeStatus.Idle;
            nodeInfo.Result = nodeStep.Result;

            switch (nodeStep.Result)
            {
                case NodeResult.Skip: return;
                case NodeResult.Fail: Break(); return;
                case NodeResult.Stop: Stop(); return;
            }

            NodeInfo[] nodeInfos = nodeStep.Slot.Nodes.Select(n => NodeInfo.From(FlowInfo, n)).ToArray();

            foreach (NodeInfo node in nodeInfos)
                node.Status = NodeStatus.Paused;

            lock (nodes)
                nodes.AddRange(nodeInfos);
        }
コード例 #9
0
ファイル: DeleteNode.cs プロジェクト: jbatonnet/flowtomator
 public DeleteNodeAction(NodeInfo nodeInfo)
 {
     FlowInfo = nodeInfo.FlowInfo;
     Node = nodeInfo.Node;
 }
コード例 #10
0
ファイル: VariableInfo.cs プロジェクト: jbatonnet/flowtomator
 private VariableInfo(NodeInfo nodeInfo, Variable variable)
 {
     Variable = variable;
     NodeInfo = nodeInfo;
 }
コード例 #11
0
ファイル: VariableInfo.cs プロジェクト: jbatonnet/flowtomator
        public static VariableInfo From(NodeInfo nodeInfo, Variable variable)
        {
            VariableInfo variableInfo;

            if (!variableInfos.TryGetValue(variable, out variableInfo))
                variableInfos.Add(variable, variableInfo = new VariableInfo(nodeInfo, variable));

            return variableInfo;
        }
コード例 #12
0
ファイル: NodeInfo.cs プロジェクト: jbatonnet/flowtomator
        public static NodeInfo From(FlowInfo flowInfo, Node node)
        {
            NodeInfo nodeInfo;

            if (!nodeInfos.TryGetValue(node, out nodeInfo))
                nodeInfos.Add(node, nodeInfo = new NodeInfo(flowInfo, node));

            return nodeInfo;
        }