Exemple #1
0
        public static ViewModelNode FromXElement(ViewModelNodesCanvas nodesCanvas, XElement node, out string errorMessage, Func <string, bool> actionForCheck)
        {
            errorMessage = null;
            ViewModelNode viewModelNode = null;
            string        name          = node.Attribute("Name")?.Value;

            if (string.IsNullOrEmpty(name))
            {
                errorMessage = "Node without name";
                return(viewModelNode);
            }

            if (actionForCheck(name))
            {
                errorMessage = String.Format("Contains more than one node with name \"{0}\"", name);
                return(viewModelNode);
            }

            var   position = node.Attribute("Position")?.Value;
            Point point    = string.IsNullOrEmpty(position) ? new Point() : PointExtensition.StringToPoint(position);

            viewModelNode = new ViewModelNode(nodesCanvas, name, point);
            var isCollapse = node.Attribute("IsCollapse")?.Value;

            if (isCollapse != null)
            {
                viewModelNode.IsCollapse = bool.Parse(isCollapse);
            }



            return(viewModelNode);
        }
Exemple #2
0
 private void Initial(ViewModelNodesCanvas viewModelNodesCanvas, ViewModelConnector fromConnector)
 {
     NodesCanvas           = viewModelNodesCanvas;
     FromConnector         = fromConnector;
     FromConnector.Connect = this;
     this.EndPoint         = fromConnector.PositionConnectPoint;
 }
Exemple #3
0
        public ViewModelCutter(ViewModelNodesCanvas nodesCanvas)
        {
            SetupCommands();

            this.WhenAnyValue(x => x.NodesCanvas.Scale.Value).Subscribe(value => StrokeThickness = value);

            NodesCanvas = nodesCanvas;
        }
Exemple #4
0
 public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode, string name, Point myPoint)
 {
     Node                 = viewModelNode;
     NodesCanvas          = nodesCanvas;
     Name                 = name;
     PositionConnectPoint = myPoint;
     SetupCommands();
     SetupSubscriptions();
 }
        public ViewModelNode(ViewModelNodesCanvas nodesCanvas)
        {
            NodesCanvas = nodesCanvas;
            //this.WhenAnyValue(x=>x.Name).Subscribe()
            this.WhenAnyValue(x => x.Selected).Subscribe(value => { this.BorderBrush = value ? Brushes.Red : Brushes.LightGray; });
            this.WhenAnyValue(x => x.Point1.Value, x => x.Size).Subscribe(_ => UpdatePoint2());

            SetupConnectors();
            SetupCommands();
        }
Exemple #6
0
 public ViewModelNode(ViewModelNodesCanvas nodesCanvas, string name, Point point)
 {
     NodesCanvas = nodesCanvas;
     Name        = name;
     Zindex      = nodesCanvas.Nodes.Count;
     Point1      = point;
     SetupConnectors();
     SetupCommands();
     SetupBinding();
     SetupSubscriptions();
 }
        public ViewModelMainWindow(ViewModelNodesCanvas viewModelNodesCanvas)
        {
            NodesCanvas = viewModelNodesCanvas;
            NodesCanvas.Nodes.Connect().TransformMany(x => x.Transitions).AutoRefresh(x => x.Name).Filter(x => Filter(x.Name)).Bind(Transitions).Subscribe();
            bool Filter(string name)
            {
                return(!string.IsNullOrEmpty(name));
            }

            SetupCommands();
            SetupSubscriptions();
        }
        public ViewModelNode(ViewModelNodesCanvas nodesCanvas, string name, Point point)
        {
            NodesCanvas = nodesCanvas;
            Name        = name;
            Zindex      = nodesCanvas.Nodes.Count;
            Point1      = point;
            Transitions.Connect().ObserveOnDispatcher().Bind(TransitionsForView).Subscribe();
            SetupConnectors();

            SetupCommands();
            SetupBinding();
            SetupSubscriptions();
        }
Exemple #9
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);
        }
 private void Initial(ViewModelNodesCanvas viewModelNodesCanvas, ViewModelConnector fromConnector)
 {
     NodesCanvas           = viewModelNodesCanvas;
     FromConnector         = fromConnector;
     FromConnector.Connect = this;
 }
 public ViewModelConnect(ViewModelNodesCanvas viewModelNodesCanvas, ViewModelConnector fromConnector)
 {
     Initial(viewModelNodesCanvas, fromConnector);
     SetupSubscriptions();
 }
 public ViewModelMainWindow(ViewModelNodesCanvas viewModelNodesCanvas)
 {
     NodesCanvas = viewModelNodesCanvas;
     SetupCommands();
     SetupSubscriptions();
 }
 public ViewModelConnector(ViewModelNodesCanvas nodesCanvas, ViewModelNode viewModelNode)
 {
     Node        = viewModelNode;
     NodesCanvas = nodesCanvas;
     SetupCommands();
 }
 public ViewModelCutter(ViewModelNodesCanvas nodesCanvas)
 {
     NodesCanvas = nodesCanvas;
     SetupCommands();
     SetupSubscriptions();
 }