예제 #1
0
 public StartNode(VirtualControl host, bool addDirectly = false) : base(host, NodeTypes.Root)
 {
     Background = Brushes.WhiteSmoke;
     Title      = "Start";
     AddExecPort(this, "", PortTypes.Output, "Execute first node");
     Description = "The root node.";
 }
예제 #2
0
        public VariableHoster(VirtualControl host, ref VariableItem variable)
        {
            if (host != null)
            {
                Host = host;
            }
            Style   = (Style)FindResource("VariableHoster");
            _item   = variable;
            Loaded += (t, y) =>
            {
                var tb   = (TextBlock)Template.FindName("VarName", this);
                var icon = (Border)Template.FindName("Icon", this);
                BuildIcons(_item.Type);
                CaptureMouse();
                Move();
                tb.Text         = _item.Name;
                _ib.ImageSource = new BitmapImage(
                    new Uri(_icon));
                icon.Background      = _ib;
                _positioner.Tick    += (c, e) => Move();
                _positioner.Interval = new TimeSpan(0);
                _positioner.Start();
            };

            MouseLeftButtonUp += VariableHoster_PreviewMouseUp;
            PreviewMouseMove  += VariableHoster_PreviewMouseMove;
        }
예제 #3
0
파일: ReadCSV.cs 프로젝트: ngmacha/VisualSR
        public ReadCSV([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
                host, NodeTypes.Basic,
                spontaneousAddition)
        {
            Title       = "Read CSV";
            Description = "Reads a CSV file and return a data frame.";
            Host        = host;

            Category = "CSV";

            AddObjectPort(this, "File Path", PortTypes.Input, RTypes.Character, false, _tb);
            AddObjectPort(this, "Headers", PortTypes.Input, RTypes.Logical, false, _cb);
            AddObjectPort(this, "Character of separation", PortTypes.Input, RTypes.Character, false, _tc);
            AddObjectPort(this, "return", PortTypes.Output, RTypes.DataFrame, false);

            _tb.TextChanged           += (s, e) => { InputPorts[0].Data.Value = _tb.Text; };
            InputPorts[0].DataChanged += (s, e) =>
            {
                if (_tb.Text != InputPorts[0].Data.Value)
                {
                    _tb.Text = InputPorts[0].Data.Value;
                }
                GenerateCode();
            };
            InputPorts[2].DataChanged += (s, e) =>
            {
                if (_tc.Text != InputPorts[2].Data.Value)
                {
                    _tc.Text = InputPorts[2].Data.Value;
                }
                GenerateCode();
            };
            _cb.Checked += (s, e) =>
                           GenerateCode();
        }
예제 #4
0
        public Equal([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
                host, NodeTypes.Basic, spontaneousAddition)
        {
            Title    = "==";
            Category = "Logic nodes";
            Host     = host;

            AddObjectPort(this, "", PortTypes.Input, RTypes.Generic, false);
            AddObjectPort(this, "", PortTypes.Input, RTypes.Generic, false);
            AddObjectPort(this, "==", PortTypes.Output, RTypes.Logical, true);
            MouseRightButtonDown += (sender, args) => GenerateCode();
            foreach (var port in InputPorts)
            {
                port.DataChanged += (sender, args) => { GenerateCode(); }
            }
            ;
            InputPorts[1].LinkChanged += (sender, args) =>
            {
                if (!InputPorts[1].Linked)
                {
                    InputPorts[1].Data.Value = "";
                }
            };
            InputPorts[0].LinkChanged += (sender, args) =>
            {
                if (!InputPorts[0].Linked)
                {
                    InputPorts[0].Data.Value = "";
                }
            };
        }
예제 #5
0
        public static void CreateObjectConnector(VirtualControl host, ObjectPort x, ObjectPort y, string connID = "",
                                                 bool nullifyTempConn = true)
        {
            if (!y.MultipleConnectionsAllowed)
            {
                if (y.ConnectedConnectors.Count > 0)
                {
                    y.ConnectedConnectors.ClearConnectors();
                    y.Linked = false;
                    if (x != null)
                    {
                        x.Linked = false;
                    }
                }
            }
            Connector conn = x.PortTypes == PortTypes.Output
                ? new ObjectsConnector(host, x, y)
                : new ObjectsConnector(host, y, x);

            conn.EndPort.ConnectedConnectors.Add(conn);
            conn.StartPort.ConnectedConnectors.Add(conn);
            conn.StartPort.CountOutConnectors++;
            conn.EndPort.CountOutConnectors++;
            host.TemObjectPort = null;
            TryCast(ref conn);
            y.Data.Value = x.Data.Value;
            host.ObjectConnectors.Add(conn as ObjectsConnector);
            if (connID != "")
            {
                conn.ID = connID;
            }
        }
예제 #6
0
    public void EnableVirtualControl(ControllerTouchscreen player)
    {
        Debug.Assert(player.layout < virtualControls.Length, "Inappropriate layout index " + player.layout + " for controller " + player.name);

        VirtualControl virtualControl = virtualControls[player.layout];

        virtualControl.gameObject.SetActive(true);
        player.SetVirtualControl(virtualControl);
    }
예제 #7
0
 public ReturnNode(VirtualControl host, bool spontaneousAddition = true) : base(host, NodeTypes.Return,
                                                                                spontaneousAddition)
 {
     Background  = Brushes.WhiteSmoke;
     Title       = "Return";
     Description = "This value will reflect the passed value as a return value.";
     AddExecPort(this, "", PortTypes.Input, "");
     AddObjectPort(this, "return value", PortTypes.Input, RTypes.Generic, false);
 }
예제 #8
0
        public Multiply([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
                host, NodeTypes.Basic, spontaneousAddition)
        {
            Title       = "Multiply";
            Description = "Multiplies A and B.";

            Category = "Math nodes";
            Host     = host;
            AddObjectPort(this, "A", PortTypes.Input, RTypes.Numeric, false, _a);
            AddObjectPort(this, "B", PortTypes.Input, RTypes.Numeric, false, _b);
            AddObjectPort(this, "A * B", PortTypes.Output, RTypes.Numeric, true);
            MouseRightButtonDown += (sender, args) => GenerateCode();
            _a.TextChanged       += (sender, args) =>
            {
                InputPorts[0].Data.Value = _a.Text;
                GenerateCode();
            };
            _b.TextChanged += (sender, args) =>
            {
                InputPorts[1].Data.Value = _b.Text;
                GenerateCode();
            };
            foreach (var port in InputPorts)
            {
                port.DataChanged += (sender, args) => { GenerateCode(); }
            }
            ;
            InputPorts[1].LinkChanged += (sender, args) =>
            {
                if (!InputPorts[1].Linked)
                {
                    InputPorts[1].Data.Value = _b.Text;
                }
            };
            InputPorts[0].LinkChanged += (sender, args) =>
            {
                if (!InputPorts[0].Linked)
                {
                    InputPorts[0].Data.Value = _a.Text;
                }
            };
            InputPorts[0].DataChanged += (s, e) =>
            {
                if (_a.Text != InputPorts[0].Data.Value)
                {
                    _a.Text = InputPorts[0].Data.Value;
                }
            };
            InputPorts[1].DataChanged += (s, e) =>
            {
                if (_b.Text != InputPorts[1].Data.Value)
                {
                    _b.Text = InputPorts[1].Data.Value;
                }
            };
        }
예제 #9
0
 public Vector1D([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
         host, NodeTypes.Basic,
         spontaneousAddition)
 {
     Host        = host;
     Title       = "Vector 1D";
     Category    = "Vectors";
     Description = "Contains a one-dimensional vector";
     AddObjectPort(this, "return value", PortTypes.Output, RTypes.Generic, true, _tb);
     _tb.TextChanged += (sender, args) => OutputPorts[0].Data.Value = _tb.Text;
 }
예제 #10
0
 public static void DeleteExecConnection(VirtualControl host, string id, bool deletedByBrain = false)
 {
     for (var index = 0; index < host.ExecutionConnectors.Count; index++)
     {
         var conn = host.ExecutionConnectors[index];
         if (conn.ID == id)
         {
             conn.Delete(deletedByBrain);
         }
     }
 }
예제 #11
0
        public SpaghettiDivider(VirtualControl host, Connector connector, bool spontaneousAddition = true) : base(host,
                                                                                                                  NodeTypes.SpaghettiDivider, spontaneousAddition)
        {
            ObjectConnector = connector as ObjectsConnector;
            Host            = host;
            Connector       = connector;
            Start           = connector.StartPort as ObjectPort;
            End             = connector.EndPort as ObjectPort;
            connector.Delete();
            Title = "";
            var inPort  = Connector.EndPort as ObjectPort;
            var outPort = Connector.StartPort as ObjectPort;

            if (outPort != null)
            {
                AddObjectPort(this, "", PortTypes.Input, outPort.Data.Type, true);
            }
            Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() =>
            {
                NodesManager.CreateObjectConnector(host, InputPorts[0], outPort);
                NodesManager.CreateObjectConnector(host, inPort, InputPorts[0]);
                if (Host.NodesTree.IsVisible)
                {
                    Host.NodesTree.Remove();
                }
                InputPorts[0].IsEnabled = false;
                if (InputPorts.Count > 0)
                {
                    if (InputPorts[0].ConnectedConnectors.Count > 0)
                    {
                        Connector.StartPort = InputPorts[0].ConnectedConnectors[0].StartPort;
                    }
                }
                InputPorts[0].DataChanged += (ss, ee) =>
                {
                    End.Data.Value = InputPorts[0].Data.Value;
                    foreach (var c in InputPorts[0].ConnectedConnectors)
                    {
                        c.Wire.HeartBeatsAnimation(false);
                    }
                };
                InputPorts[0].ConnectedConnectors.CollectionChanged += (ss, ee) => { };
                var hint = Template.FindName("NodeHint", this) as Path;
                if (hint != null)
                {
                    hint.Visibility = Visibility.Collapsed;
                }
                Height -= 33;
                Width  -= 13;
                Canvas.SetTop(InputPortsPanel, -8);
                Canvas.SetLeft(InputPortsPanel, 3);
            }));
        }
예제 #12
0
 public ReadFile(VirtualControl host, bool spontaneousAddition = false) : base(
     host, NodeTypes.Basic,
     spontaneousAddition)
 {
     Host = host;
     Title = "String";
     Description = "This node contains a list of charaters.";
     Category = "Basic";
     AddObjectPort(this, "return ", PortTypes.Output, RTypes.Character, true, _tb);
     OutputPorts[0].DataChanged += ReadFile_DataChanged;
     _tb.TextChanged += (sender, args) => OutputPorts[0].Data.Value = _tb.Text;
 }
예제 #13
0
 public PluginsManager(VirtualControl host)
 {
     _host = host;
     try
     {
         _plugins = new List <string>(Directory.GetFiles(@"./Plugins/", "*.dll"));
     }
     catch (Exception) {
         Console.WriteLine("Could not find the plugins folder. The application will create one.");
         Directory.CreateDirectory(@"./Plugins/");
         _plugins = new List <string>(Directory.GetFiles(@"./Plugins/", "*.dll"));
     }
 }
예제 #14
0
파일: While.cs 프로젝트: ngmacha/VisualSR
 public While([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
         host, NodeTypes.Method,
         spontaneousAddition)
 {
     Title    = "While";
     Host     = host;
     Category = "Loops";
     AddExecPort(this, "", PortTypes.Input, "");
     AddExecPort(this, "", PortTypes.Output, "Reset");
     AddExecPort(this, "Instructions", PortTypes.Output, "Instructions");
     AddObjectPort(this, "Condition", PortTypes.Input, RTypes.Logical, false);
     Description = "While loop.";
 }
예제 #15
0
 public CharacterRVector([Import("host")] VirtualControl host,
                         [Import("bool")] bool spontaneousAddition = false) : base(
         host, NodeTypes.Method,
         spontaneousAddition)
 {
     Title    = "Characters Vector";
     Host     = host;
     Category = "Vectors";
     AddExecPort(this, "", PortTypes.Input, "");
     AddExecPort(this, "", PortTypes.Output, "");
     AddObjP();
     AddObjectPort(this, "return value", PortTypes.Output, RTypes.ArrayOrFactorOrListOrMatrix, true);
     Loaded += RArray_Loaded;
 }
예제 #16
0
 public GenericRArray([Import("host")] VirtualControl host,
                      [Import("bool")] bool spontaneousAddition = false) : base(
         host, NodeTypes.Method,
         spontaneousAddition)
 {
     Title    = "Generic array";
     Host     = host;
     Category = "Arrays";
     AddExecPort(this, "", PortTypes.Input, "");
     AddExecPort(this, "", PortTypes.Output, "");
     AddObjectPort(this, "[1]", PortTypes.Input, RTypes.Generic, true);
     AddObjectPort(this, "return value", PortTypes.Output, RTypes.ArrayOrFactorOrListOrMatrix, true);
     Loaded += RArray_Loaded;
 }
예제 #17
0
        public static void MiddleMan(VirtualControl host, Node a, Node b, Node c)
        {
            if (c.OutExecPorts[0].ConnectedConnectors[0].EndPort.ParentNode == a)
            {
                CreateExecutionConnector(host, a.OutExecPorts[0], b.InExecPorts[0]);

                CreateExecutionConnector(host, b.OutExecPorts[0],
                                         c.InExecPorts[0]);
                if (b.OutExecPorts[0].ConnectedConnectors.Count > 0)
                {
                    MiddleMan(host, c, b, b.OutExecPorts[0].ConnectedConnectors[0].EndPort.ParentNode);
                }
            }
        }
예제 #18
0
파일: IfElse.cs 프로젝트: ngmacha/VisualSR
 public IfElse([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
         host, NodeTypes.Method,
         spontaneousAddition)
 {
     Types    = NodeTypes.Event;
     Host     = host;
     Title    = "IfElse";
     Category = "Logic nodes";
     AddExecPort(this, "", PortTypes.Input, "");
     AddObjectPort(this, "Condition", PortTypes.Input, RTypes.Logical, false);
     AddExecPort(this, "", PortTypes.Output, "True");
     AddExecPort(this, "", PortTypes.Output, "False");
     AddExecPort(this, "", PortTypes.Output, "Default");
     re_Arrange();
 }
예제 #19
0
        public LogicalNode([Import("host")] VirtualControl host,
                           [Import("bool")] bool spontaneousAddition = false) : base(host, NodeTypes.Basic,
                                                                                     spontaneousAddition)
        {
            Title = "Bool";
            Host  = host;

            Category = "Logic nodes";
            AddObjectPort(this, "return value", PortTypes.Output, RTypes.Logical, true, _cb);
            _cb.GotFocus += (sender, args) =>
            {
                _cb.IsChecked             = !_cb.IsChecked;
                OutputPorts[0].Data.Value = _cb.IsChecked.Value.ToString();
            };
        }
예제 #20
0
파일: Tan.cs 프로젝트: ngmacha/VisualSR
 public Tan([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(host,
                                                                                                            NodeTypes.Basic,
                                                                                                            spontaneousAddition)
 {
     Host        = host;
     Title       = "Tan";
     Category    = "Math nodes";
     Description = "Calculates tan(x).";
     AddObjectPort(this, "value", PortTypes.Input, RTypes.Numeric, false);
     AddObjectPort(this, "return tan(value)", PortTypes.Output, RTypes.Numeric, true);
     InputPorts[0].DataChanged += (s, e) =>
     {
         OutputPorts[0].Data.Value = "tan(" + InputPorts[0].Data.Value + ")";
     };
 }
예제 #21
0
 public Search(VirtualControl host)
 {
     WindowStyle = WindowStyle.ToolWindow;
     _host       = host;
     Style       = FindResource("Search") as Style;
     Loaded     += (s, e) =>
     {
         clear = Template.FindName("Clear", this) as TextBlock;
         go    = Template.FindName("FindButton", this) as TextBlock;
         tb    = Template.FindName("NodeName", this) as TextBox;
         lv    = Template.FindName("FoundNodes", this) as ListView;
         clear.MouseLeftButtonUp += (ss, ee) => tb.Clear();
         go.MouseLeftButtonUp    += Go_MouseLeftButtonUp;
         Topmost = true;
     };
 }
예제 #22
0
 public ToUpper([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
         host,
         NodeTypes.Basic,
         spontaneousAddition)
 {
     Host        = host;
     Title       = "Text to upper";
     Category    = "Characters";
     Description = "Converts a set of characters to uppercased characters.";
     AddObjectPort(this, "Text", PortTypes.Input, RTypes.Character, false);
     AddObjectPort(this, "return ", PortTypes.Output, RTypes.Character, true);
     InputPorts[0].DataChanged += (s, e) =>
     {
         OutputPorts[0].Data.Value = "toupper(" + InputPorts[0].Data.Value + ")";
     };
 }
예제 #23
0
        public static void CreateObjectConnector(VirtualControl host, string xid, int xindex, string yid, int yindex,
                                                 string connID        = "",
                                                 bool nullifyTempConn = true)
        {
            ObjectPort x = null, y = null;

            foreach (var node in host.Nodes)
            {
                if (node.Id == xid)
                {
                    x = node.OutputPorts[xindex];
                }
                else if (node.Id == yid)
                {
                    y = node.InputPorts[yindex];
                }
            }
            if (!y.MultipleConnectionsAllowed)
            {
                if (y.ConnectedConnectors.Count > 0)
                {
                    y.ConnectedConnectors.ClearConnectors();
                    y.Linked = false;
                    if (x != null)
                    {
                        x.Linked = false;
                    }
                }
            }
            Connector conn = x.PortTypes == PortTypes.Output
                ? new ObjectsConnector(host, x, y)
                : new ObjectsConnector(host, y, x);

            conn.EndPort.ConnectedConnectors.Add(conn);
            conn.StartPort.ConnectedConnectors.Add(conn);
            conn.StartPort.CountOutConnectors++;
            conn.EndPort.CountOutConnectors++;
            host.TemObjectPort = null;
            TryCast(ref conn);
            y.Data.Value = x.Data.Value;
            host.ObjectConnectors.Add(conn as ObjectsConnector);
            if (connID != "")
            {
                conn.ID = connID;
            }
        }
예제 #24
0
        public static void CreateExecutionConnector(VirtualControl host, string xid, int xindex, string yid, int yindex,
                                                    string connId = "")
        {
            ExecPort x = null, y = null;

            foreach (var node in host.Nodes)
            {
                if (node.Id == xid)
                {
                    x = node.OutExecPorts[xindex];
                }
                else if (node.Id == yid)
                {
                    y = node.InExecPorts[yindex];
                }
            }
            if (y == null || x == null)
            {
                return;
            }
            x.ConnectedConnectors.ClearConnectors();

            y.ConnectedConnectors.ClearConnectors();
            x.Linked = false;
            y.Linked = false;
            Connector conn;

            conn = x.PortTypes == PortTypes.Output
                ? new ExecutionConnector(host, x, y)
                : new ExecutionConnector(host, y, x);
            Panel.SetZIndex(conn.Wire, ZIndexes.ConnectorIndex);

            conn.EndPort.ConnectedConnectors.Add(conn);
            conn.StartPort.ConnectedConnectors.Add(conn);
            host.Children.Remove(host.TempConn);
            host.Children.Remove(host.TempConn);
            host.TemExecPort = null;
            host.WireMode    = WireMode.Nothing;
            host.MouseMode   = MouseMode.Nothing;
            host.HideLinkingPossiblity();
            host.ExecutionConnectors.Add((ExecutionConnector)conn);
            if (connId != "")
            {
                conn.ID = connId;
            }
        }
예제 #25
0
 public Get(VirtualControl host, VariableItem variable, bool spontaneousAddition) : base(host,
                                                                                         NodeTypes.VariableGet,
                                                                                         spontaneousAddition)
 {
     Host  = host;
     Title = string.Empty;
     AddObjectPort(this, "Return " + variable.Name, PortTypes.Output, RTypes.Generic, true);
     Description = @"Gets the value of " + variable.Name + ".";
     OutputPorts[0].Data.Value = variable.Name;
     if (variable.Type != null)
     {
         NodesManager.ChangeColorOfVariableNode(OutputPorts[0], variable.Type);
     }
     _item = variable;
     _item.Gets++;
     _item.DsOfNodes.Add(Id);
 }
예제 #26
0
        public Set(VirtualControl host, VariableItem variable, bool spontaneousAddition) : base(host,
                                                                                                NodeTypes.VariableSet,
                                                                                                spontaneousAddition)
        {
            Title = "Set";
            Host  = host;

            AddExecPort(this, "", PortTypes.Input, "");
            AddExecPort(this, "", PortTypes.Output, "");
            AddObjectPort(this, variable.Name, PortTypes.Input, RTypes.Generic, false);
            Description = @"Sets the value of " + variable.Name + ".";
            if (variable.Type != null)
            {
                NodesManager.ChangeColorOfVariableNode(InputPorts[0], variable.Type);
            }
            variable.Sets++;
            _item = variable;
            _item.DsOfNodes.Add(Id);
            Console.WriteLine("Sets: " + variable.Gets);
        }
예제 #27
0
        public NodesTree(VirtualControl host)
        {
            Style           = FindResource("NodesTree") as Style;
            _host           = host;
            _pluginsManager = new PluginsManager(host);
            Task.Factory.StartNew(() =>
            {
                Dispatcher.BeginInvoke(DispatcherPriority.Send, new Action(() =>
                {
                    var loadedNewNodes = _pluginsManager.LoadPlugins();
                    if (!loadedNewNodes)
                    {
                        return;
                    }
                    ClearAll();
                    BuildCategories();
                    BuildNodes();
                    RefreshBackUp();
                    Loaded += (o, e) =>
                    {
                        _tv = (TreeView)Template.FindName("Tv", this);
                        _tv.SelectedItemChanged += _tv_SelectedItemChanged;
                        _tb              = (TextBox)Template.FindName("SearchTextBox", this);
                        _tb.TextChanged += (s, ev) =>
                                           Filter(_tb.Text);
                        if (_tv.ItemsSource == null)
                        {
                            _tv.ItemsSource = Roots;
                        }
                        _tb.PreviewKeyDown   += OnPreviewKeyDown;
                        _tv.MouseDoubleClick += _tv_MouseDoubleClick;
                        ExpandAll();
                        _tb.Focus();
                    };
                }));
            });


            MouseLeave += (o, e) => Remove();
            Panel.SetZIndex(this, ZIndexes.NodesTreeIndex);
        }
예제 #28
0
        public Install([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
                host, NodeTypes.Method,
                spontaneousAddition)
        {
            Title       = "Install Package";
            Description = "Installs packages from CRAN.";
            Host        = host;

            Category = "Core";
            AddExecPort(this, "", PortTypes.Input, "");
            AddExecPort(this, "", PortTypes.Output, "");
            AddObjectPort(this, "Package name", PortTypes.Input, RTypes.Character, false, _tb);
            _tb.TextChanged           += (s, e) => { InputPorts[0].Data.Value = _tb.Text; };
            InputPorts[0].DataChanged += (s, e) =>
            {
                if (_tb.Text != InputPorts[0].Data.Value)
                {
                    _tb.Text = InputPorts[0].Data.Value;
                }
            };
        }
예제 #29
0
        public static void CreateExecutionConnector(VirtualControl host, ExecPort x, ExecPort y, string connId = "")
        {
            string id;

            if (connId == "")
            {
                id = Guid.NewGuid().ToString();
            }
            else
            {
                id = connId;
            }

            x.ConnectedConnectors.ClearConnectors();

            y.ConnectedConnectors.ClearConnectors();
            x.Linked = false;
            y.Linked = false;
            Connector conn;

            conn = x.PortTypes == PortTypes.Output
                ? new ExecutionConnector(host, x, y)
                : new ExecutionConnector(host, y, x);
            Panel.SetZIndex(conn.Wire, ZIndexes.ConnectorIndex);
            conn.EndPort.ConnectedConnectors.Add(conn);
            conn.StartPort.ConnectedConnectors.Add(conn);
            host.Children.Remove(host.TempConn);
            host.Children.Remove(host.TempConn);
            host.TemExecPort = null;
            host.WireMode    = WireMode.Nothing;
            host.MouseMode   = MouseMode.Nothing;
            host.HideLinkingPossiblity();
            host.ExecutionConnectors.Add((ExecutionConnector)conn);
            if (connId != "")
            {
                conn.ID = connId;
            }
        }
예제 #30
0
파일: Plot.cs 프로젝트: ngmacha/VisualSR
        public Plot([Import("host")] VirtualControl host, [Import("bool")] bool spontaneousAddition = false) : base(
                host, NodeTypes.Method,
                spontaneousAddition)
        {
            Title = "Plot";
            Host  = host;

            Category = "Plotting";
            AddExecPort(this, "", PortTypes.Input, "");

            AddExecPort(this, "", PortTypes.Output, "");
            AddObjectPort(this, "", PortTypes.Input, RTypes.Generic, false, _tb);

            Description                = "Uses R's built-in plotting function to generate a plot out of the entered data.";
            _tb.TextChanged           += (s, e) => { InputPorts[0].Data.Value = _tb.Text; };
            InputPorts[0].DataChanged += (s, e) =>
            {
                if (_tb.Text != InputPorts[0].Data.Value)
                {
                    _tb.Text = InputPorts[0].Data.Value;
                }
            };
        }