Пример #1
0
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Метод ищёт в списке моделей портов данный узел и если находит отображает
        /// для него настройки. Если не находит ничего не делает
        /// </summary>
        /// <param name="node">Узел с моделью CAN-порта</param>
        private void ShowPortSettings(TreeNode node)
        {
            SplitContainer splitContainer = (SplitContainer)this.Controls["_SplitContainerMainWindows"];

            splitContainer = (SplitContainer)splitContainer.Panel1.Controls["_SplitContainerManufactures"];
            Panel settingsPanel = splitContainer.Panel2;

            // Ищем узел в списке
            int index = this._TreeNodesOfCanPortsList.IndexOf(node);

            if (index >= 0)
            {
                // Узел найден в списке, отображаем настройки для данного типа оборудования
                switch (node.Text)
                {
                case "IXXATGmb":
                {
                    Design.Controls.IXXATCanPortTuner ixxatTuner =
                        new Design.Controls.IXXATCanPortTuner();

                    if (this._ICanPort is IXXAT.CanPort)
                    {
                        ixxatTuner.CanPort = this._ICanPort as IXXAT.CanPort;
                    }

                    ixxatTuner.Dock = DockStyle.Fill;

                    settingsPanel.Controls.Clear();
                    settingsPanel.Controls.Add(ixxatTuner);
                    break;
                }

                case "NIM-351":
                {
                    Design.Controls.FastwelNIM351PortTuner nim351Tuner =
                        new FastwelNIM351PortTuner();

                    if (this._ICanPort is CanPort.Fastwel.NIM351.CanPort)
                    {
                        nim351Tuner.CanPort = this._ICanPort as CanPort.Fastwel.NIM351.CanPort;
                    }

                    nim351Tuner.Dock = DockStyle.Fill;

                    settingsPanel.Controls.Clear();
                    settingsPanel.Controls.Add(nim351Tuner);
                    break;
                }

                default:
                {
                    throw new Exception(
                              "Найден узел с портом, который не поддерживается данным методом");
                }
                }
            }
        }
Пример #2
0
        //--------------------------------------------------------------------------------
        #endregion
        //--------------------------------------------------------------------------------
        #region Methods
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Обработчик события загрузки формы
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EventHandler_ICanPortUITypeEditorDialogForm_Load(object sender, EventArgs e)
        {
            float percent;

            // Настраиваем окно
            this.Icon            = Properties.Resources.faviconMy;
            this.Text            = "Редактор CAN-Порта";
            this.WindowState     = FormWindowState.Normal;
            this.StartPosition   = FormStartPosition.CenterScreen;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;

            SplitContainer splitContainer;

            splitContainer             = new SplitContainer();
            splitContainer.Name        = "_SplitContainerMainWindows";
            splitContainer.Dock        = DockStyle.Fill;
            splitContainer.Orientation = Orientation.Horizontal;
            percent = splitContainer.Height / 100;
            splitContainer.Panel2MinSize    = Convert.ToInt32(percent * 5);
            splitContainer.SplitterDistance = Convert.ToInt32(percent * 95);
            splitContainer.IsSplitterFixed  = true;
            this.Controls.Add(splitContainer);

            splitContainer             = new SplitContainer();
            splitContainer.Name        = "_SplitContainerManufactures";
            splitContainer.Dock        = DockStyle.Fill;
            splitContainer.Orientation = Orientation.Vertical;
            percent = splitContainer.Height / 100;
            splitContainer.Panel1MinSize    = Convert.ToInt32(percent * 35);
            splitContainer.SplitterDistance = Convert.ToInt32(percent * 40);
            //splitContainer.IsSplitterFixed = false;
            ((SplitContainer)this.Controls["_SplitContainerMainWindows"]).Panel1.Controls.Add(splitContainer);

            Button button;

            button         = new Button();
            button.Name    = "_ButtonOK";
            button.Text    = "OK";
            button.Click  += new EventHandler(EventHandler_ButtonOK_Click);
            button.Dock    = DockStyle.Fill;
            splitContainer = (SplitContainer)this.Controls["_SplitContainerMainWindows"];
            splitContainer.Panel2.Controls.Add(button);

            _TreeNodesOfCanPortsList = new List <TreeNode>(2);

            TreeView treeView;

            treeView              = new TreeView();
            treeView.Name         = "_TreeViewManufacturers";
            treeView.Dock         = DockStyle.Fill;
            treeView.AfterSelect +=
                new TreeViewEventHandler(EventHandler_TreeViewManufacturers_AfterSelect);
            splitContainer = (SplitContainer)this.Controls["_SplitContainerMainWindows"];
            splitContainer = (SplitContainer)splitContainer.Panel1.Controls["_SplitContainerManufactures"];
            splitContainer.Panel1.Controls.Add(treeView);

            TreeNode node;

            node      = new TreeNode();
            node.Name = "_TreeNodeTop";
            node.Text = "Производители";
            treeView.Nodes.Add(node);
            treeView.TopNode = node;

            node      = new TreeNode();
            node.Name = "_TreeNodeIXXATGmb";
            node.Text = "IXXATGmb";
            treeView.TopNode.Nodes.Add(node);
            // Загружаем данный узел в список моделей портов
            this._TreeNodesOfCanPortsList.Add(node);

            node      = new TreeNode();
            node.Name = "_TreeNodeFastwel";
            node.Text = "Fastwel";
            treeView.TopNode.Nodes.Add(node);

            node      = new TreeNode();
            node.Name = "TreeNodeFastwelNim351";
            node.Text = "NIM-351";
            (treeView.TopNode.Nodes["_TreeNodeFastwel"]).Nodes.Add(node);
            // Загружаем данный узел в список моделей портов
            this._TreeNodesOfCanPortsList.Add(node);


            splitContainer = (SplitContainer)this.Controls["_SplitContainerMainWindows"];
            splitContainer = (SplitContainer)splitContainer.Panel1.Controls["_SplitContainerManufactures"];
            Panel settingsPanel = splitContainer.Panel2;

            if (this._ICanPort != null)
            {
                if (_ICanPort is IXXAT.CanPort)
                {
                    Design.Controls.IXXATCanPortTuner ixxatTuner =
                        new Design.Controls.IXXATCanPortTuner();
                    ixxatTuner.CanPort = this._ICanPort as IXXAT.CanPort;
                    ixxatTuner.Dock    = DockStyle.Fill;
                    settingsPanel.Controls.Clear();
                    settingsPanel.Controls.Add(ixxatTuner);
                }
                else if (_ICanPort is Fastwel.NIM351.CanPort)
                {
                    Design.Controls.FastwelNIM351PortTuner nim351Tuner =
                        new FastwelNIM351PortTuner();
                    nim351Tuner.CanPort = this._ICanPort as CanPort.Fastwel.NIM351.CanPort;
                    nim351Tuner.Dock    = DockStyle.Fill;
                    settingsPanel.Controls.Clear();
                    settingsPanel.Controls.Add(nim351Tuner);
                }
                else
                {
                    throw new ArgumentException("Данный тип CAN-порта не поддерживается");
                }
            }
            return;
        }