/// <summary>
        /// Отобразить конфигурацию
        /// </summary>
        private void ConfigToControls()
        {
            // обнуление выбранного объекта
            selExpDest     = null;
            selExpDestNode = null;

            // очистка и заполнение дерева
            treeView.BeginUpdate();
            treeView.Nodes.Clear();

            foreach (ModConfig.ExportDestination expDest in config.ExportDestinations)
            {
                treeView.Nodes.Add(NewExpDestNode(expDest));
            }

            treeView.ExpandAll();
            treeView.EndUpdate();

            // выбор первого узла дерева
            if (treeView.Nodes.Count > 0)
            {
                treeView.SelectedNode = treeView.Nodes[0];
            }

            SetControlsEnabled();
        }
        private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            // определение и отображение свойств выбранного объекта
            TreeNode selNode = e.Node;

            selExpDest     = selNode.Tag as ModConfig.ExportDestination;
            selExpDestNode = selExpDest == null ? null : selNode;
            ShowSelectedExportParams();
        }
        private TreeNode selExpDestNode;                // узел дерева выбранного назначения экспорта


        /// <summary>
        /// Конструктор, ограничивающий создание формы без параметров
        /// </summary>
        private FrmDBExportConfig()
        {
            InitializeComponent();

            config         = null;
            configCopy     = null;
            modified       = false;
            changing       = false;
            selExpDest     = null;
            selExpDestNode = null;
        }
        private void miAddDataSource_Click(object sender, EventArgs e)
        {
            // добавление назначения экспорта
            DataSource dataSource = null;

            if (sender == miAddSqlDataSource)
            {
                dataSource = new SqlDataSource();
            }
            else if (sender == miAddOraDataSource)
            {
                dataSource = new OraDataSource();
            }
            else if (sender == miAddPgSqlDataSource)
            {
                dataSource = new PgSqlDataSource();
            }
            else if (sender == miAddMySqlDataSource)
            {
                dataSource = new MySqlDataSource();
            }
            else if (sender == miAddOleDbDataSource)
            {
                dataSource = new OleDbDataSource();
            }

            if (dataSource != null)
            {
                ModConfig.ExportDestination expDest = new ModConfig.ExportDestination(dataSource, new ModConfig.ExportParams());
                TreeNode treeNode = NewExpDestNode(expDest);

                int ind = config.ExportDestinations.BinarySearch(expDest);
                if (ind >= 0)
                {
                    ind++;
                }
                else
                {
                    ind = ~ind;
                }

                config.ExportDestinations.Insert(ind, expDest);
                treeView.Nodes.Insert(ind, treeNode);
                treeView.SelectedNode = treeNode;

                SetConnectionString();
                SetControlsEnabled();
                Modified = true;
            }
        }
Exemple #5
0
        /// <summary>
        /// Конструктор
        /// </summary>
        public Exporter(ModConfig.ExportDestination expDest, Log log)
        {
            if (expDest == null)
            {
                throw new ArgumentNullException("expDest");
            }

            this.log     = log ?? throw new ArgumentNullException("log");
            maxQueueSize = expDest.ExportParams.MaxQueueSize;

            curSrezQueue = new Queue <SrezTableLight.Srez>(maxQueueSize);
            arcSrezQueue = new Queue <SrezTableLight.Srez>(maxQueueSize);
            evQueue      = new Queue <EventTableLight.Event>(maxQueueSize);
            thread       = null;
            terminated   = false;
            running      = false;

            ResetStats();

            DataSource   = expDest.DataSource;
            ExportParams = expDest.ExportParams;
        }
        /// <summary>
        /// Создать узел дерева, соответствующий назначению экспорта
        /// </summary>
        private TreeNode NewExpDestNode(ModConfig.ExportDestination expDest)
        {
            TreeNode node = new TreeNode(expDest.DataSource.Name)
            {
                Tag = expDest
            };
            string imageKey;

            switch (expDest.DataSource.DBType)
            {
            case DBType.MSSQL:
                imageKey = "mssql.png";
                break;

            case DBType.Oracle:
                imageKey = "oracle.png";
                break;

            case DBType.PostgreSQL:
                imageKey = "postgresql.png";
                break;

            case DBType.MySQL:
                imageKey = "mysql.png";
                break;

            case DBType.OLEDB:
                imageKey = "oledb.png";
                break;

            default:
                imageKey = "";
                break;
            }

            node.ImageKey = node.SelectedImageKey = imageKey;
            return(node);
        }
        private void btnDelDataSource_Click(object sender, EventArgs e)
        {
            // удаление назначения экспорта
            if (selExpDestNode != null)
            {
                TreeNode prevNode = selExpDestNode.PrevNode;
                TreeNode nextNode = selExpDestNode.NextNode;

                int ind = selExpDestNode.Index;
                config.ExportDestinations.RemoveAt(ind);
                treeView.Nodes.RemoveAt(ind);

                treeView.SelectedNode = nextNode == null ? prevNode : nextNode;
                if (treeView.SelectedNode == null)
                {
                    selExpDest     = null;
                    selExpDestNode = null;
                }

                SetControlsEnabled();
                Modified = true;
            }
        }
Exemple #8
0
        /// <summary>
        /// Отобразить форму модально
        /// </summary>
        public static bool ShowDialog(ServerComm serverComm,
                                      List <ModConfig.ExportDestination> expDests, ModConfig.ExportDestination selExpDest,
                                      ref int curDataCtrlCnlNum, ref int arcDataCtrlCnlNum, ref int eventsCtrlCnlNum)
        {
            FrmManualExport frmManualExport = new FrmManualExport();

            frmManualExport.ServerComm = serverComm;

            // заполнение списка источников данных
            foreach (ModConfig.ExportDestination expDest in expDests)
            {
                int ind = frmManualExport.cbDataSource.Items.Add(expDest.DataSource);
                if (expDest == selExpDest)
                {
                    frmManualExport.cbDataSource.SelectedIndex = ind;
                }
            }

            // установка каналов управления
            frmManualExport.CurDataCtrlCnlNum = curDataCtrlCnlNum;
            frmManualExport.ArcDataCtrlCnlNum = arcDataCtrlCnlNum;
            frmManualExport.EventsCtrlCnlNum  = eventsCtrlCnlNum;

            if (frmManualExport.ShowDialog() == DialogResult.OK)
            {
                // возврат каналов управления
                curDataCtrlCnlNum = frmManualExport.CurDataCtrlCnlNum;
                arcDataCtrlCnlNum = frmManualExport.ArcDataCtrlCnlNum;
                eventsCtrlCnlNum  = frmManualExport.EventsCtrlCnlNum;
                return(true);
            }
            else
            {
                return(false);
            }
        }