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;
        }
예제 #2
0
 public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode, string name, Point myPoint)
 {
     Node                 = viewModelNode;
     NodesCanvas          = nodesCanvas;
     Name                 = name;
     PositionConnectPoint = myPoint;
     SetupCommands();
     SetupSubscriptions();
 }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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;
 }
예제 #8
0
 private ViewModelNode DeleteNode(MyPoint parameter, ViewModelNode result)
 {
     Nodes.Remove(result);
     return(result);
 }
 public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode)
 {
     Node        = viewModelNode;
     NodesCanvas = nodesCanvas;
     SetupCommands();
 }