public virtual void AfterVisitAction(SequenceItemNode actionNode) { var hasInferredOutput = false; foreach (var output in actionNode.GraphItems.OfType <ActionOut>()) { Visit(output); } foreach (var output in actionNode.GraphItems.OfType <ActionBranch>()) { Visit(output); if (output.OutputTo <ActionNode>() != null) { hasInferredOutput = true; } } //if (!hasInferredOutput) //{ var innerRight = actionNode.OutputsTo <SequenceItemNode>().FirstOrDefault(p => p.Filter == actionNode); if (innerRight != null) { Visit(innerRight); } var outterRight = actionNode.OutputsTo <SequenceItemNode>().FirstOrDefault(p => p.Filter != actionNode); if (outterRight != null) { Visit(outterRight); } //} }
public void Execute(CreateConverterConnectionCommand command) { SequenceItemNode node = null; var type = command.ConverterAction; if (type != null && type.IsEditorClass) { node = Activator.CreateInstance(type.SystemType) as SequenceItemNode; } else { node = new ActionNode { Meta = type, }; //node.Name = ""; } node.Graph = command.Output.Graph; InvertGraphEditor.CurrentDiagramViewModel.AddNode(node, Event.current.mousePosition - new Vector2(250f, 0f)); var result = node.GraphItems.OfType <IActionOut>().FirstOrDefault(p => p.Name == "Result"); var input = node.GraphItems.OfType <IActionIn>().FirstOrDefault(); node.Graph.AddConnection(command.Output, input); node.Graph.AddConnection(result, command.Input); node.IsSelected = true; }
public virtual void BeforeVisitAction(SequenceItemNode actionNode) { outputtedNodes.Add(actionNode); foreach (var input in actionNode.GraphItems.OfType <IActionIn>()) { Visit(input); } }
public void Visit(IDiagramNodeItem item) { if (item == null) { return; } var handlerNode = item as ISequenceNode; SequenceItemNode actionNode = item as SequenceItemNode; var actionBranch = item as ActionBranch; var actionOut = item as IActionOut; var actionIn = item as IActionIn; //var setVariableNode = item as SetVariableNode; //var groupNode = item as ActionGroupNode; var handlerIn = item as HandlerIn; if (handlerIn != null) { BeforeVisitHandlerIn(handlerIn); VisitHandlerIn(handlerIn); AfterVisitHandlerIn(handlerIn); return; } if (actionNode != null) { BeforeVisitAction(actionNode); VisitAction(actionNode); AfterVisitAction(actionNode); return; } if (actionBranch != null) { BeforeVisitBranch(actionBranch); VisitBranch(actionBranch); AfterVisitBranch(actionBranch); return; } if (actionOut != null) { BeforeVisitOutput(actionOut); VisitOutput(actionOut); AfterVisitOutput(actionOut); return; } if (actionIn != null) { BeforeVisitInput(actionIn); VisitInput(actionIn); AfterVisitInput(actionIn); return; } }
public virtual void VisitAction(SequenceItemNode actionNode) { }
public virtual void AfterVisitAction(SequenceItemNode actionNode) { var hasInferredOutput = false; foreach (var output in actionNode.GraphItems.OfType<ActionOut>()) { Visit(output); } foreach (var output in actionNode.GraphItems.OfType<ActionBranch>()) { Visit(output); if (output.OutputTo<ActionNode>() != null) { hasInferredOutput = true; } } //if (!hasInferredOutput) //{ var innerRight = actionNode.OutputsTo<SequenceItemNode>().FirstOrDefault(p => p.Filter == actionNode); if (innerRight != null) Visit(innerRight); var outterRight = actionNode.OutputsTo<SequenceItemNode>().FirstOrDefault(p => p.Filter != actionNode); if (outterRight != null) Visit(outterRight); //} }
public virtual void BeforeVisitAction(SequenceItemNode actionNode) { outputtedNodes.Add(actionNode); foreach (var input in actionNode.GraphItems.OfType<IActionIn>()) { Visit(input); } }
public CustomActionViewModel(SequenceItemNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public SequenceItemNodeViewModel(SequenceItemNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }