コード例 #1
0
 public override void OnStartServer()
 {
     base.OnStartServer();
     NodeControl                   = gameObject.GetComponent <INodeControl>();
     Node                          = gameObject.GetComponent <InLineDevice>();
     CanConnectTo                  = new HashSet <PowerTypeCategory>(ListCanConnectTo);
     Node.InData.Categorytype      = ApplianceType;
     Node.InData.CanConnectTo      = CanConnectTo;
     Node.InData.WireEndA          = WireEndA;
     Node.InData.WireEndB          = WireEndB;
     Node.InData.ControllingDevice = this;
     foreach (PowerInputReactions ReactionC in Reactions)
     {
         Node.InData.ConnectionReaction[ReactionC.ConnectingDevice] = ReactionC;
     }
     gameObject.SendMessage("BroadcastSetUpMessage", this, SendMessageOptions.DontRequireReceiver);
     if (UpdateRequestDictionary.TryGetValue(ElectricalUpdateTypeCategory.OnStartServer, out HashSet <ElectricalModuleTypeCategory> updateRequest))
     {
         foreach (ElectricalModuleTypeCategory Module in updateRequest)
         {
             UpdateDelegateDictionary[Module].OnStartServer();
         }
     }
     ElectricalManager.Instance.electricalSync.StructureChange = true;
 }
コード例 #2
0
ファイル: NodesDrag.cs プロジェクト: p4j4dyxcry/TsNode
        public void DragMultiNodeTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(-20, 0, true),
                Mock.CreateNodeControl(0, 0, false),
                Mock.CreateNodeControl(10, -50, true),
            };

            var executedCompleteCommand  = false;
            var nodeDragCompletedCommand = Mock.Command <CompletedMoveNodeEventArgs>(x =>
            {
                // selected が falseなものはドラッグされていない
                Assert.Equal(2, x.InitialNodePoints.Count);

                Assert.Equal(0, nodes[1].X);
                Assert.Equal(0, nodes[1].Y);

                AssertCheckNodeMovePoint(x, nodes[0], -20, 0, -10, 10);

                AssertCheckNodeMovePoint(x, nodes[2], 10, -50, 20, -40);

                executedCompleteCommand = true;
            });

            var controller = BuildController(nodes, nodeDragCompletedCommand);

            var args = DoDrag(controller, new Point(10, 10));

            controller.OnDragEnd(args.CreateEndArgs());

            Assert.True(executedCompleteCommand);
        }
コード例 #3
0
 // This method deserialize the EIB events associated with the control from
 // XML document. Look into all event nodes and check for associated event
 // name
 private static void SetEIBEventsValue(INodeControl control, XmlNode xmlNode)
 {
     foreach (XmlNode childXmlNode in xmlNode.ChildNodes)
     {
         if (childXmlNode.NodeType == XmlNodeType.Element)
         {
             if (childXmlNode.Name == XMLServicesConstants.XmlNodeEventsElt)
             {
                 foreach (XmlNode childEventXmlNode in childXmlNode.ChildNodes)
                 {
                     int attributeCount = childEventXmlNode.Attributes.Count;
                     if (attributeCount > 0)
                     {
                         for (int counter = 0; counter < attributeCount; counter++)
                         {
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.OnNode)
                             {
                                 control.NodeValue = childEventXmlNode.InnerText;
                             }
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.EnterNode)
                             {
                                 control.OnNodeEnterValue = childEventXmlNode.InnerText;
                             }
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.ExitNode)
                             {
                                 control.OnNodeExitClick = childEventXmlNode.InnerText;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #4
0
ファイル: FormulaManager.cs プロジェクト: harpreetoxyent/pnl
 public void displayWorkFlowNodeProperties(WorkflowEditorWindow form, INodeControl controlObject)
 {
     try
     {
         INodeControl currentNode = controlObject;
         if (form.SelectedNode != null)
         {
             if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.OnNode))
             {
                 form.formulaText.Text = currentNode.NodeValue;
             }
             if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.EnterNode))
             {
                 form.formulaText.Text = currentNode.OnNodeEnterValue;
             }
             else if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.ExitNode))
             {
                 form.formulaText.Text = currentNode.OnNodeExitClick;
             }
         }
     }
     catch (Exception exp)
     {
         Console.Write(exp.StackTrace);
     }
 }
コード例 #5
0
ファイル: NodesDrag.cs プロジェクト: p4j4dyxcry/TsNode
        public void DragSingleNodeTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(0, 50, true),
            };

            var executedCompleteCommand  = false;
            var nodeDragCompletedCommand = Mock.Command <CompletedMoveNodeEventArgs>(x =>
            {
                AssertCheckNodeMovePoint(x, nodes[0], 0, 50, 10, 60);

                executedCompleteCommand = true;
            });

            var controller = BuildController(nodes, nodeDragCompletedCommand);

            Assert.IsType <NodesDragController>(controller);

            var args = DoDrag(controller, new Point(10, 10));

            controller.OnDragEnd(args.CreateEndArgs());

            Assert.True(executedCompleteCommand);
        }
コード例 #6
0
ファイル: RectSelection.cs プロジェクト: p4j4dyxcry/TsNode
        public void SelectTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(0, 50, false),
                Mock.CreateNodeControl(0, 100, false),
                Mock.CreateNodeControl(0, 200, false),
            };

            var controller = BuildController(nodes, null);

            Assert.IsType <RectSelectionController>(controller);

            // 0,0 - 150,150までの矩形選択
            {
                var args = DoDrag(controller, new Point(0, 0), new Point(150, 150));

                controller.OnDragEnd(args);

                Assert.True(nodes[0].IsSelected);
                Assert.True(nodes[1].IsSelected);
                Assert.False(nodes[2].IsSelected);
            }

            // 40,120 - 200,200までの矩形選択
            {
                var args = DoDrag(controller, new Point(40, 120), new Point(200, 200));

                controller.OnDragEnd(args);

                Assert.False(nodes[0].IsSelected);
                Assert.True(nodes[1].IsSelected);
                Assert.True(nodes[2].IsSelected);
            }
        }
コード例 #7
0
ファイル: NodesDrag.cs プロジェクト: p4j4dyxcry/TsNode
        public void FailedTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(0, 0, false),
            };

            var controller = BuildController(nodes, null);

            Assert.Null(controller);
        }
コード例 #8
0
        private void designTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            currentBaseWindow = form.currentBaseWindow;
            TreeView treeControl = (TreeView)sender;

            selectedNode = treeControl.SelectedNode;
            if (currentBaseWindow != null)
            {
                if (currentBaseWindow.TypeOfWindow == FormDesignerConstants.WorkflowPattern)
                {
                    if (selectedNode != null)
                    {
                        if (currentBaseWindow.CurrentControl.Count > 0)
                        {
                            if (currentBaseWindow.CurrentControl[0] is INodeControl)
                            {
                                INodeControl currentNode = (INodeControl)currentBaseWindow.CurrentControl[0];

                                this.formulaText.Enabled = true;
                                if (currentBaseWindow.CurrentControl != null)
                                {
                                    if (selectedNode.Name.Trim().Equals(FormDesignerConstants.OnNode))
                                    {
                                        formulaText.Text = currentNode.NodeValue;
                                    }
                                    if (selectedNode.Name.Trim().Equals(FormDesignerConstants.EnterNode))
                                    {
                                        formulaText.Text = currentNode.OnNodeEnterValue;
                                    }
                                    else if (selectedNode.Name.Trim().Equals(FormDesignerConstants.ExitNode))
                                    {
                                        formulaText.Text = currentNode.OnNodeExitClick;
                                    }
                                }
                            }
                            else
                            {
                                formulaText.Text = "";
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Please select a Workflow Pattern before entering process rule");
                }
            }

            //MessageBox.Show(sender.ToString());
            //Display the basewindow current control's setting
        }
コード例 #9
0
ファイル: NodesDrag.cs プロジェクト: p4j4dyxcry/TsNode
        /// <summary>
        /// ノード座標をチェック
        /// </summary>
        /// <param name="args"></param>
        /// <param name="node"></param>
        /// <param name="originX">元のx</param>
        /// <param name="originY">元のy</param>
        /// <param name="movedX">移動後のx</param>
        /// <param name="movedY">移動後のy</param>
        private void AssertCheckNodeMovePoint(CompletedMoveNodeEventArgs args, INodeControl node, double originX, double originY, double movedX, double movedY)
        {
            var prevPoint = args.InitialNodePoints[node.DataContext as INodeDataContext];
            var endPoint  = args.CompletedNodePoints[node.DataContext as INodeDataContext];

            Assert.Equal(originX, prevPoint.X);
            Assert.Equal(originY, prevPoint.Y);

            Assert.Equal(movedX, endPoint.X);
            Assert.Equal(movedY, endPoint.Y);

            Assert.Equal(movedX, node.X);
            Assert.Equal(movedY, node.Y);
        }
コード例 #10
0
 public override void OnStartServer()
 {
     base.OnStartServer();
     NodeControl                   = gameObject.GetComponent <INodeControl>();
     Node                          = gameObject.GetComponent <InLineDevice>();
     CanConnectTo                  = new HashSet <PowerTypeCategory>(ListCanConnectTo);
     Node.InData.Categorytype      = ApplianceType;
     Node.InData.CanConnectTo      = CanConnectTo;
     Node.InData.ControllingDevice = this;
     foreach (PowerInputReactions ReactionC in Reactions)
     {
         Node.InData.ConnectionReaction[ReactionC.ConnectingDevice] = ReactionC;
     }
     gameObject.SendMessage("BroadcastSetUpMessage", this, SendMessageOptions.DontRequireReceiver);
     UpOnStartServer();
     StartCoroutine(WaitForload());
 }
コード例 #11
0
 private void saveFormula_Click(object sender, EventArgs e)
 {
     try
     {
         this.parserError.Text = "";
         if (errorWriter != null)
         {
             errorWriter.Dispose();
         }
         errorWriter = new StringWriter();
         if (!formulaText.Text.Trim().Equals(""))
         {
             Scanner scanner = new Scanner(formulaText.Text);
             Parser  parser  = new Parser(scanner);
             parser.errors.errorStream = errorWriter;
             parser.Parse();
             TextReader stringReader = new StringReader(errorWriter.ToString());
             this.parserError.Text = stringReader.ReadToEnd();
             Console.Write(parser.errors.count + " errors detected");
             if (parser.errors.count > 0)
             {
                 return;
             }
             //Parse the text to Validate the java api
         }
         if (currentBaseWindow != null && selectedNode != null && currentBaseWindow.CurrentControl != null)
         {
             INodeControl eibControl = (INodeControl)currentBaseWindow.CurrentControl[0];
             if (selectedNode.Name.Trim().Equals(FormDesignerConstants.OnNode))
             {
                 eibControl.NodeValue = formulaText.Text;
             }
             if (selectedNode.Name.Trim().Equals(FormDesignerConstants.EnterNode))
             {
                 eibControl.OnNodeEnterValue = formulaText.Text;
             }
             else if (selectedNode.Name.Trim().Equals(FormDesignerConstants.ExitNode))
             {
                 eibControl.OnNodeExitClick = formulaText.Text;
             }
         }
     }
     catch
     {
     }
 }
コード例 #12
0
ファイル: RectSelection.cs プロジェクト: p4j4dyxcry/TsNode
        public void CommandTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(-500, -1500, false),
                Mock.CreateNodeControl(-500, -2000, true),
                Mock.CreateNodeControl(0, 100, false),
                Mock.CreateNodeControl(0, 200, false),
            };

            var commandExecuted = false;
            var command         = Mock.Command <SelectionChangedEventArgs>(x =>
            {
                // コマンドが1回だけ実行されることを確認
                Assert.False(commandExecuted);

                // nodes[0]だけは変更がないのでここにくる数は3
                Assert.Equal(3, x.ChangedItems.Length);

                Assert.Contains(nodes[1], x.ChangedItems);
                Assert.Contains(nodes[2], x.ChangedItems);
                Assert.Contains(nodes[3], x.ChangedItems);

                commandExecuted = true;
            });

            var controller = BuildController(nodes, command);

            Assert.IsType <RectSelectionController>(controller);

            // 0,0 - 150,150までの矩形選択
            {
                var args = DoDrag(controller, new Point(0, 150), new Point(30, 250));

                controller.OnDragEnd(args);

                Assert.False(nodes[0].IsSelected);
                Assert.False(nodes[1].IsSelected);
                Assert.True(nodes[2].IsSelected);
                Assert.True(nodes[3].IsSelected);
            }

            // コマンドが実行されたことを確認
            Assert.True(commandExecuted);
        }
コード例 #13
0
 public override void OnStartServer()
 {
     //Logger.Log("yoooooo");
     base.OnStartServer();
     NodeControl                   = gameObject.GetComponent <INodeControl>();
     Node                          = gameObject.GetComponent <InLineDevice>();
     CanConnectTo                  = new HashSet <PowerTypeCategory>(ListCanConnectTo);
     Node.InData.Categorytype      = ApplianceType;
     Node.InData.CanConnectTo      = CanConnectTo;
     Node.InData.WireEndA          = WireEndA;
     Node.InData.WireEndB          = WireEndB;
     Node.InData.ControllingDevice = this;
     foreach (PowerInputReactions ReactionC in Reactions)
     {
         Node.InData.ConnectionReaction[ReactionC.ConnectingDevice] = ReactionC;
     }
     gameObject.SendMessage("BroadcastSetUpMessage", this, SendMessageOptions.DontRequireReceiver);
     UpOnStartServer();
     ElectricalManager.Instance.electricalSync.StructureChange = true;
 }
コード例 #14
0
ファイル: NodesDrag.cs プロジェクト: p4j4dyxcry/TsNode
        public void ChainDragTest()
        {
            var nodes = new INodeControl[]
            {
                Mock.CreateNodeControl(0, 0, true),
            };

            var executedCompleteCommand  = false;
            var nodeDragCompletedCommand = Mock.Command <CompletedMoveNodeEventArgs>(x =>
            {
                AssertCheckNodeMovePoint(x, nodes[0], 0, 0, 30, 0);

                executedCompleteCommand = true;
            });

            var controller = BuildController(nodes, nodeDragCompletedCommand);

            // 10,10 → -5,-5 → 30,0 へ順番に動かす
            var args = DoDrag(controller, new Point(10, 10), new Point(-5, -5), new Point(30, 0));

            controller.OnDragEnd(args.CreateEndArgs());

            Assert.True(executedCompleteCommand);
        }
コード例 #15
0
        public static Hashtable updateEvents(Control control, string elementName, string uniqueId)
        {
            Hashtable controlProperties       = new Hashtable();
            string    eibCOntrolInterfaceName = (typeof(IEIBControl)).Name;

            if (control.GetType().GetInterface(eibCOntrolInterfaceName) != null)
            {
                INodeControl eibControl = (INodeControl)control;
                if (eibControl.NodeValue != null && !eibControl.NodeValue.Trim().Equals(""))
                {
                    controlProperties.Add(FormDesignerConstants.OnNode, eibControl.NodeValue);
                }
                if (eibControl.OnNodeEnterValue != null && !eibControl.OnNodeEnterValue.Trim().Equals(""))
                {
                    controlProperties.Add(FormDesignerConstants.EnterNode, eibControl.OnNodeEnterValue);
                }
                if (eibControl.OnNodeExitClick != null && !eibControl.OnNodeExitClick.Trim().Equals(""))
                {
                    controlProperties.Add(FormDesignerConstants.ExitNode, eibControl.OnNodeExitClick);
                }
            }
            //EIBControl Settings
            return(controlProperties);
        }
コード例 #16
0
ファイル: FormulaManager.cs プロジェクト: harpreetoxyent/pnl
 public void displayWorkFlowNodeProperties(WorkflowEditorWindow form, INodeControl controlObject)
 {
     try
     {
         INodeControl currentNode = controlObject;
         if (form.SelectedNode != null)
         {
             if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.OnNode))
             {
                 form.formulaText.Text = currentNode.NodeValue;
             }
             if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.EnterNode))
             {
                 form.formulaText.Text = currentNode.OnNodeEnterValue;
             }
             else if (form.SelectedNode.Name.Trim().Equals(FormDesignerConstants.ExitNode))
             {
                 form.formulaText.Text = currentNode.OnNodeExitClick;
             }
         }
     }
     catch (Exception exp)
     {
         Console.Write(exp.StackTrace);
     }
 }
コード例 #17
0
 // This method deserialize the EIB events associated with the control from
 // XML document. Look into all event nodes and check for associated event
 // name
 private static void SetEIBEventsValue(INodeControl control, XmlNode xmlNode)
 {
     foreach (XmlNode childXmlNode in xmlNode.ChildNodes)
     {
         if (childXmlNode.NodeType == XmlNodeType.Element)
         {
             if (childXmlNode.Name == XMLServicesConstants.XmlNodeEventsElt)
             {
                 foreach (XmlNode childEventXmlNode in childXmlNode.ChildNodes)
                 {
                     int attributeCount = childEventXmlNode.Attributes.Count;
                     if (attributeCount > 0)
                     {
                         for (int counter = 0; counter < attributeCount; counter++)
                         {
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.OnNode)
                             {
                                 control.NodeValue = childEventXmlNode.InnerText;
                             }
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.EnterNode)
                             {
                                 control.OnNodeEnterValue = childEventXmlNode.InnerText;
                             }
                             if (childEventXmlNode.Attributes[counter].Value == FormDesignerConstants.ExitNode)
                             {
                                 control.OnNodeExitClick = childEventXmlNode.InnerText;
                             }
                         }
                     }
                 }
             }
             }
     }
 }
コード例 #18
0
 public static Rect ToRect(this INodeControl node)
 {
     return(new Rect(node.X, node.Y, node.ActualWidth, node.ActualHeight));
 }