Example #1
0
        public void SetupRecordset(RecordsetWrapper recordset)
        {
            gridView = new GridView(recordset);
               //   gridView.Dock = DockStyle.Fill;
              gridView.BorderStyle = BorderStyle.None;
              gridView.StandardTab = false; // Let Tab move the cursor to the next cell instead next control in parent tab order.
              gridView.AllowAutoResizeColumns = false; // this will mess up our custom sizing/column width saving

              recordset.register_edit_actions();

              ActionList actionList = recordset.action_list;
              actionList.register_action("record_wrap_vertical", ToggleGridWrapMode);
              actionList.register_action("record_sort_asc", SortAscending);
              actionList.register_action("record_sort_desc", SortDescending);
              actionList.register_action("record_del", DeleteCurrentRecord);
              actionList.register_action("record_add", AddNewRecord);
              actionList.register_action("record_edit", EditCurrentRecord);

              recordset.set_flush_ui_changes_cb(FlushUIChanges);

              recordset.set_update_selection_delegate(UpdateSelection);

              gridView.KeyDown += gridView_KeyDown;
              gridView.MouseDown += gridView_MouseDown;
              gridView.ColumnHeaderMouseClick += gridView_ColumnHeaderMouseClick;
              gridView.CellContextMenuStripNeeded += gridView_CellContextMenuStripNeeded;
              gridView.CellStateChanged += gridView_CellStateChanged;
              gridView.ColumnWidthChanged += gridView_ColumnWidthChanged;

              Model = recordset;
        }
Example #2
0
        protected void Initialize()
        {
            Logger.LogInfo("WQE.net", "Launching SQL IDE\n");

              InitializeComponent();

              Logger.LogDebug("WQE.net", 1, "Setup of generated UI done\n");
              outputSelector.SelectedIndex = 0;

              TabText = dbSqlEditorBE.get_title();

              Logger.LogDebug("WQE.net", 2, "Creating Log View\n");
              logView = new GridView(dbSqlEditorBE.log());
              logView.AutoScroll = true;
              logView.RowHeadersVisible = false;
              logView.Parent = actionPanel;
              logView.AllowAutoResizeColumns = false;

              // Some visual setup of the header.
              logView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
              logView.ColumnHeadersDefaultCellStyle.Font = ControlUtilities.GetFont("Segoe UI", 7.5f);
              logView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;

              dbSqlEditorBE.log().refresh_ui_cb(logView.ProcessModelRowsChange);
              logView.ProcessModelChange();
              logView.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
              logView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
              logView.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
              logView.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
              logView.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
              logView.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
              logView.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
              logView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
              logView.ForeColor = Color.Black;
              logView.CellContextMenuStripNeeded += new DataGridViewCellContextMenuStripNeededEventHandler(logView_CellContextMenuStripNeeded);

              Logger.LogDebug("WQE.net", 1, "Creating History View\n");
              historyEntriesView = new GridView(dbSqlEditorBE.history().entries_model());
              historyEntriesView.AutoScroll = true;
              historyEntriesView.ForeColor = Color.Black;
              historyEntriesView.MultiSelect = false;
              historyEntriesView.RowHeadersVisible = false;
              historyEntriesView.Parent = historySplitContainer.Panel1;
              dbSqlEditorBE.history().entries_model().refresh_ui_cb(ProcessModelHistoryEntryRowsChange);
              historyEntriesView.ProcessModelChange();
              historyEntriesView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
              historyEntriesView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
              historyEntriesView.RowEnter += new DataGridViewCellEventHandler(historyEntriesView_RowEnter);
              historyEntriesView.CellContextMenuStripNeeded += historyEntriesView_CellContextMenuStripNeeded;
              historyEntriesView.SetRowSelected(0);
              {
            Logger.LogDebug("WQE.net", 1, "Setting up menu for History View\n");

            // TODO: replace by mforms backed menu. Then remove SqlIdeMenuManager.
            // See if WorkbenchToolbarManager.cs can go entirely when done.
            SqlIdeMenuManager.MenuContext popupMenuContext = new SqlIdeMenuManager.MenuContext();
            popupMenuContext.GetNodesMenuItems = historyEntriesView.Model.get_popup_items_for_nodes;
            popupMenuContext.GetSelectedNodes = historyEntriesView.SelectedNodes;
            popupMenuContext.TriggerNodesAction = historyEntriesView.Model.activate_popup_item_for_nodes;
            SqlIdeMenuManager.InitMenu(historyListMenuStrip, popupMenuContext);
              }

              Logger.LogDebug("WQE.net", 1, "Setting up History Details View\n");
              historyDetailsView = new GridView(dbSqlEditorBE.history().details_model());
              historyDetailsView.AutoScroll = true;
              historyDetailsView.ForeColor = Color.Black;
              historyDetailsView.RowHeadersVisible = false;
              historyDetailsView.Parent = historySplitContainer.Panel2;
              historyDetailsView.CellContextMenuStripNeeded += new DataGridViewCellContextMenuStripNeededEventHandler(historyDetailsView_CellContextMenuStripNeeded);
              dbSqlEditorBE.history().details_model().refresh_ui_cb(historyDetailsView.ProcessModelRowsChange);
              historyDetailsView.ProcessModelChange();
              historyDetailsView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
              historyDetailsView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
              historyDetailsView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
              historyDetailsView.CellDoubleClick += new DataGridViewCellEventHandler(historyDetailsView_CellDoubleClick);

              Logger.LogDebug("WQE.net", 1, "Setting callbacks to backend\n");
              dbSqlEditorBE.set_post_query_cb(AfterExecSql);
              dbSqlEditorBE.exec_sql_task.progress_cb(OnExecSqlProgress);
              dbSqlEditorBE.set_busy_tab_cb(SetBusyTab);

              Logger.LogDebug("WQE.net", 1, "Setting up side bar\n");
              Control sidebar = dbSqlEditorBE.get_sidebar_control();
              sideArea.Controls.Add(sidebar);
              sidebar.Dock = DockStyle.Fill;

              // Help/snippets palette.
              Logger.LogDebug("WQE.net", 1, "Setting up secondary sidebar\n");
              Control palette = dbSqlEditorBE.get_palette_control();
              rightSplitContainer.Panel1.Controls.Add(palette);
              palette.Dock = DockStyle.Fill;
              palette.Show();

              UpdateColors();

              dbSqlEditorBE.set_docking_delegate(new MainPaneDockDelegate(this));

              ManagedNotificationCenter.AddObserver(this, "GNFormTitleDidChange");

              Logger.LogDebug("WQE.net", 1, "Initialization done\n");
        }