private void SetupStartState() { string name = Nodes.Any(x => x.Name == "Start") ? GetNameForNewNode() : "Start"; StartState = new ViewModelNode(this, name, new Point()); SetAsStart(StartState); Nodes.Add(StartState); this.ItSaved = true; }
public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode, string name, Point myPoint) { Node = viewModelNode; NodesCanvas = nodesCanvas; Name = name; PositionConnectPoint = myPoint; SetupCommands(); SetupSubscriptions(); }
public static ViewModelConnect FromXElement(ViewModelNodesCanvas nodesCanvas, XElement node, out string errorMessage, Func <string, bool> actionForCheck) { ViewModelConnect viewModelConnect = null; errorMessage = null; string name = node.Attribute("Name")?.Value; string from = node.Attribute("From")?.Value; string to = node.Attribute("To")?.Value; if (string.IsNullOrEmpty(name)) { errorMessage = "Connect without name"; return(viewModelConnect); } if (string.IsNullOrEmpty(from)) { errorMessage = "Connect without from point"; return(viewModelConnect); } if (string.IsNullOrEmpty(to)) { errorMessage = "Connect without to point"; return(viewModelConnect); } if (actionForCheck(name)) { errorMessage = String.Format("Contains more than one connect with name \"{0}\"", name); return(viewModelConnect); } ViewModelNode nodeFrom = nodesCanvas.Nodes.Single(x => x.Name == from); ViewModelNode nodeTo = nodesCanvas.Nodes.Single(x => x.Name == to); nodeFrom.CurrentConnector.Name = name; if (nodeFrom == nodeTo) { nodeFrom.CurrentConnector.CommandSetAsLoop.ExecuteWithSubscribe(); } else { viewModelConnect = new ViewModelConnect(nodeFrom.NodesCanvas, nodeFrom.CurrentConnector); viewModelConnect.ToConnector = nodeTo.Input; nodeFrom.CommandAddEmptyConnector.ExecuteWithSubscribe(); } return(viewModelConnect); }
private ViewModelNode AddNode(MyPoint parameter, ViewModelNode result) { ViewModelNode newNode = result; if (result == null) { MyPoint myPoint = parameter.Copy(); myPoint /= Scale.Value; newNode = new ViewModelNode(this) { Name = "State " + Nodes.Count.ToString(), Point1 = new MyPoint(myPoint) }; } Nodes.Add(newNode); return(newNode); }
private void SetupNodes() { ViewModelNode start = new ViewModelNode(this) { Name = "Start", NameEnable = false, CanBeDelete = false }; start.Input.Visible = null; Nodes.Add(start); //ViewModelNode end = new ViewModelNode(this) //{ // Name = "End", // NameEnable = false, // CanBeDelete = false, // Point1 = new MyPoint(100, 100) //}; //end.TransitionsVisible = null; //end.RollUpVisible = null; //Nodes.Add(end); }
private void SetAsStart(ViewModelNode node) { node.Input.Visible = false; node.CanBeDelete = false; }
public Test(ViewModelNode viewModelNode) { Name = viewModelNode.Name; }
private ViewModelNode DeleteNode(MyPoint parameter, ViewModelNode result) { Nodes.Remove(result); return(result); }
public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode) { Node = viewModelNode; NodesCanvas = nodesCanvas; SetupCommands(); }