public void AddNewTable() { var dialog = new AddTableDialog(); int tablesCount = TableDatas.Count; dialog.Init(this, _view, GetRandomTableName()); dialog.ShowDialog(); var result = dialog.Result; if (result.Success) { var tableForm = new TableForm(); tableForm.Init( result.Value, _form.TableForm_FormClosed, _form.TableForm_ModelChanged); tableForm.MdiParent = _form; TableDatas.Add(TableData.Get(tableForm)); _view.AddTableButton(result.Value.Name); _form.IsFileSaved = false; tableForm.Show(); } }
/* * Создание и открытие окна таблицы, TableData которой уже есть в MainModel */ public void AddExistingTable(TableData tableData) { TableForm tableForm = new TableForm(); tableForm.Init( tableData, _form.TableForm_FormClosed, _form.TableForm_ModelChanged); tableForm.MdiParent = _form; tableForm.Show(); }
/* * Обработка MouseUp по кнопку, ассоциируемой с таблицей (TableButton) */ public void TableBtn_X_MouseUp(object sender, MouseEventArgs e) { var button = (Button)sender; TableForm tableForm = new TableForm(); tableForm.Init( Model.TableDatas.Where(i => i.Descriptor.Name == button.Text).ElementAt(0), TableForm_FormClosed, TableForm_ModelChanged); switch (e.Button) { case MouseButtons.Left: { // если окно таблицы, с которой связяна эта кнопка, НЕ открыто if (!MdiChildren.Any(i => i.Text == button.Text)) { var tableData = TableData.Get(tableForm); Model.AddExistingTable(tableData); } else { Form mdiForm = MdiChildren.Where(i => i.Text == button.Text).ElementAt(0); mdiForm.BringToFront(); } break; } case MouseButtons.Right: { CtxMenuTableButtonName = button.Text; CtxMS_TableBtnX.Show(Cursor.Position); break; } } }