/// <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; } }
/// <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; } }
/// <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); } }