private void InitIoBranches(int branchCount, NodeConnector connector, ICollection <NodeItem> branchList,
                                    IList <PropertyInfo> blocks, bool isInput)
        {
            if (branchCount == 1)
            {
                connector.Enabled = true;
                branchList.Add(m_iconItem);
            }
            else
            {
                for (int i = 0; i < branchCount; i++)
                {
                    string name = (i + 1) + "";

                    if (Node is MyWorkingNode)
                    {
                        name = blocks[i].Name;
                    }

                    NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), isInput, !isInput)
                    {
                        Tag       = i,
                        IsPassive = true
                    };

                    branchList.Add(branch);
                    AddItem(branch);
                }
            }
        }
Exemple #2
0
        public void UpdateView()
        {
            listView.Items.Clear();
            toolStrip.Enabled = false;
            splitContainer.Panel2Collapsed = true;

            if (Target != null)
            {
                if (m_mainForm.SimulationHandler.State == MySimulationHandler.SimulationState.STOPPED)
                {
                    try
                    {
                        Target.UpdateMemoryBlocks();
                    }
                    catch (Exception e)
                    {
                        MyLog.ERROR.WriteLine("Exeption occured while updating node " + Target.Name + ": " + e.Message);
                    }
                }

                List <MyAbstractMemoryBlock> blocks = MyMemoryManager.Instance.GetBlocks(Target);


                for (int i = 0; i < Target.InputBranches; i++)
                {
                    MyAbstractMemoryBlock mb = Target.GetAbstractInput(i);

                    if (mb != null)
                    {
                        if (Target is IMyVariableBranchViewNodeBase)
                        {
                            addListViewItem(mb, "<Input_" + (i + 1) + ">", false);
                        }
                        else if (Target is MyNodeGroup)
                        {
                            addListViewItem(mb, (Target as MyNodeGroup).GroupInputNodes[i].Name, false);
                        }
                        else
                        {
                            addListViewItem(mb, Target.GetInfo().InputBlocks[i].Name, false);
                        }
                    }
                }

                if (Target is MyNodeGroup)
                {
                    for (int i = 0; i < Target.OutputBranches; i++)
                    {
                        MyAbstractMemoryBlock mb = Target.GetAbstractOutput(i);

                        if (mb != null)
                        {
                            addListViewItem(mb, (Target as MyNodeGroup).GroupOutputNodes[i].Name, false);
                        }
                    }
                }
                else if (Target is MyParentInput)
                {
                    MyAbstractMemoryBlock mb = Target.GetAbstractOutput(0);

                    if (mb != null)
                    {
                        addListViewItem(mb, MyProject.ShortenMemoryBlockName(mb.Name), false);
                    }
                }

                foreach (MyAbstractMemoryBlock block in blocks)
                {
                    addListViewItem(block, block.Name);
                }
            }
        }
Exemple #3
0
        protected virtual void InitBranches()
        {
            MyNodeInfo nodeInfo = Node.GetInfo();

            foreach (PropertyInfo signalInfo in nodeInfo.RegisteredSignals)
            {
                MySignal signal = (MySignal)signalInfo.GetValue(Node);

                MySignalItem signalItem = new MySignalItem(signal);

                m_signals.Add(signalItem);
                AddItem(signalItem);
            }

            if (Node.InputBranches == 1)
            {
                m_iconItem.Input.Enabled = true;
                m_inputBranches.Add(m_iconItem);
            }
            else
            {
                for (int i = 0; i < Node.InputBranches; i++)
                {
                    string name = (i + 1) + "";

                    if (Node is MyWorkingNode)
                    {
                        name = Node.GetInfo().InputBlocks[i].Name;
                    }

                    NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), true, false);
                    branch.Tag = i;

                    m_inputBranches.Add(branch);
                    AddItem(branch);
                }
            }

            if (Node.OutputBranches == 1)
            {
                m_iconItem.Output.Enabled = true;
                m_outputBranches.Add(m_iconItem);
            }
            else
            {
                for (int i = 0; i < Node.OutputBranches; i++)
                {
                    string name = (i + 1) + "";

                    if (Node is MyWorkingNode)
                    {
                        name = Node.GetInfo().OutputBlocks[i].Name;
                    }

                    NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), false, true);
                    branch.Tag = i;

                    m_outputBranches.Add(branch);
                    AddItem(branch);
                }
            }
        }