private void tableContextMenu_Opening(object sender, CancelEventArgs e) { ObjectsTreeView tree = focusedTree = allObjectsTree.tree.Focused ? allObjectsTree.tree : activeObjectsTree.tree; bool clickedOnSelected = tree.NodeAtLocationIsSelected(tree.PointToClient(Cursor.Position)); bool objectsSelected = false; if (clickedOnSelected) { objectsSelected = tree.GetSelectedColumns().Count > 0 || tree.GetSelectedTables().Count > 0; } T.Debug("clicked on selected=" + (clickedOnSelected ? "yes" : "no")); bool isActiveObjectsTree = focusedTree == activeObjectsTree.tree; showDataToolStripMenuItem.Enabled = background.busy == false && tree.GetSelectedTables().Count == 1 && tree.GetSelectedColumns().Count == 0; addToToolStripMenuItem.Enabled = selectFromToolStripMenuItem.Enabled = objectsSelected; addToWorkspaceToolStripMenuItem.Visible = !isActiveObjectsTree; stickyToolStripMenuItem.Visible = isActiveObjectsTree; showAllColumnsToolStripMenuItem.Visible = isActiveObjectsTree && focusedTree.OnlyTablesAreSelected(); recentAtTopToolStripMenuItem.Checked = S.Get("recentObjectsAtTop", false); int selectedSticky = tree.AreSelectedObjectsSticky(); stickyToolStripMenuItem.Checked = selectedSticky >= 0; addToWorkspaceToolStripMenuItem.Checked = selectedSticky > 0; collapseAllToolStripMenuItem.Enabled = !focusedTree.AllRootNodesCollapsed(); expandToolStripMenuItem.Enabled = !focusedTree.AllRootNodesExpanded(); if (focusedTree.OnlyTablesAreSelected()) { showAllColumnsToolStripMenuItem.Checked = focusedTree.SelectedTablesAreShowAllColumns(); } stickyToolStripMenuItem.Enabled = objectsSelected; addToWorkspaceToolStripMenuItem.Enabled = objectsSelected; showAllColumnsToolStripMenuItem.Enabled = objectsSelected; }
public ObjectsTree(bool all) { allObjectsTree = all; buttonImages = UI.buttonImages; searchTextBox = new TextBox(); searchTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; searchTextBox.Location = new System.Drawing.Point(0, 0); searchTextBox.Name = "searchTextBox"; searchTextBox.Size = new System.Drawing.Size(0, 31); searchTextBox.BackColor = UI.headerSearchBackground; searchTextBox.ForeColor = UI.passiveForeColor; searchTextBox.KeyUp += new KeyEventHandler(OnSearchKeyPress); searchTextBox.Visible = false; xButton = new ToolButton(this.buttonImages, 13, new EventHandler(OnClearSearch)); xButton.BackColor = searchTextBox.BackColor; Resize += new EventHandler(OnResize); label = new System.Windows.Forms.Label(); Font = label.Font = SystemFonts.MessageBoxFont; label.AutoSize = true; label.Location = new System.Drawing.Point(21, 29); label.ForeColor = UI.headerForeColor; label.Text = allObjectsTree ? "All Objects" : "Active Objects"; header = new System.Windows.Forms.Panel(); header.Font = SystemFonts.MessageBoxFont; header.BackColor = UI.backColor4; header.Controls.Add(searchTextBox); header.Controls.Add(label); header.Controls.Add(xButton); header.Location = new System.Drawing.Point(0, 0); header.Size = new System.Drawing.Size(10, 10); Controls.Add(header); if (allObjectsTree) { searchColumns = CreateCheckBox(buttons, 2, "Search Columns", new EventHandler(OnFilterColumns)); searchTables = CreateCheckBox(buttons, 3, "Search Tables", new EventHandler(OnFilterTables)); } else { CreateButton(buttons, 5, "Show Parse Tree", new EventHandler(OnParseTree)); CreateButton(buttons, 4, "Show Active Objects", new EventHandler(OnObjects)); showDetails = CreateCheckBox(parseTreeButtons, 7, "Show Details", new EventHandler(OnShowDetails)); showMore = CreateCheckBox(parseTreeButtons, 8, "Show More", new EventHandler(OnShowMore)); showBase = CreateCheckBox(parseTreeButtons, 6, "Show Base Structure", new EventHandler(OnShowBaseStructure)); collapseButton = CreateButton(parseTreeButtons, 14, "Collapse", new EventHandler(OnCollapse)); expandButton = CreateButton(parseTreeButtons, 15, "Expand", new EventHandler(OnExpand)); parseTree = new ParseTreeView(); Controls.Add(parseTree); parseTree.Visible = false; parseTree.BorderStyle = BorderStyle.None; parseTree.AfterExpand += parseTree.OnAfterExpand; } tree = new ObjectsTreeView(all ? "allObjectsTreeView" : "activeObjectsTreeView"); tree.ImageList = UI.treeImages; tree.expandByDefault = !allObjectsTree; tree.Location = new System.Drawing.Point(0, 0); tree.ShowNodeToolTips = true; tree.Size = new System.Drawing.Size(300, 300); tree.TabIndex = 0; Controls.Add(tree); UpdateShowCheckboxes(); }