//--------------------------------------------------------------------------------
        #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;
        } 
        //--------------------------------------------------------------------------------
        /// <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(
                                "Найден узел с портом, который не поддерживается данным методом");
                        }
                }
            }
        }