//------------------------------------------------------------------- private void GraphContextMenu_Opening(object sender, CancelEventArgs e) { // remove previously added menu int index = GraphContextMenu.Items.IndexOf(toolStripMenuItemAdvanced) + 1; while (GraphContextMenu.Items.Count > index) { GraphContextMenu.Items.RemoveAt(index); } Localization.Manager.DoMenu(GraphContextMenu); _MenuTaxonTreeNode = BelowMouse; bool fullMenu = true; ToolStripMenuItem advanced = BuildAdvancedMenu(); if (ModifierKeys == Keys.Shift && advanced != null) { fullMenu = false; } foreach (ToolStripItem item in GraphContextMenu.Items) { item.Visible = fullMenu; } if (fullMenu) { GraphContextMenu.Enabled = (Root != null); collapseAllToolStripMenuItem.Visible = false; expandAllToolStripMenuItem.Visible = false; setAsNewRootToolStripMenuItem.Visible = TaxonUtils.CanPushSubRoot(_MenuTaxonTreeNode); bool gotoSelected = TaxonUtils.SelectedTaxon() != null && TaxonUtils.SelectedTaxon() != _MenuTaxonTreeNode; gotoSelectedToolStripMenuItem.Visible = gotoSelected; if (gotoSelected) { gotoSelectedToolStripMenuItem.Text = Localization.Manager.Get("_GotoTaxon", "Goto {0}", TaxonUtils.SelectedTaxon().Desc.RefMainName); } restoreRootToolStripMenuItem.Visible = TaxonUtils.HasSubRoots(); toolStripMenuItem1.Visible = _MenuTaxonTreeNode != null; selectAscendantToolStripMenuItem.Visible = _MenuTaxonTreeNode != null; collapseTaxonToolStripMenuItem.Visible = _MenuTaxonTreeNode != null; expandTaxonToolStripMenuItem.Visible = _MenuTaxonTreeNode != null; favoritesToolStripMenuItem.Visible = _MenuTaxonTreeNode != null; if (_MenuTaxonTreeNode != null) { selectAscendantToolStripMenuItem.Text = Localization.Manager.Get("_SelectAscendant", "Select ascendant"); List <TaxonTreeNode> Ascendants = new List <TaxonTreeNode>(); _MenuTaxonTreeNode.GetAllParents(Ascendants, false, false, false); if (Ascendants.Count == 0) { selectAscendantToolStripMenuItem.Enabled = false; } else { selectAscendantToolStripMenuItem.Enabled = true; selectAscendantToolStripMenuItem.DropDownItems.Clear(); foreach (TaxonTreeNode node in Ascendants) { ToolStripMenuItem subMenuItem = new ToolStripMenuItem(node.Desc.RefMainName, null, new System.EventHandler(OnSelect)) { Tag = node }; selectAscendantToolStripMenuItem.DropDownItems.Add(subMenuItem); } } collapseTaxonToolStripMenuItem.Text = Localization.Manager.Get("_CollapseTaxon", "Collapse {0}", _MenuTaxonTreeNode.Desc.RefMainName); collapseTaxonToolStripMenuItem.Enabled = _MenuTaxonTreeNode.HasAllChildVisible; expandTaxonToolStripMenuItem.Text = Localization.Manager.Get("_ExpandTaxon", "Expand {0}", _MenuTaxonTreeNode.Desc.RefMainName); string favoritesMenuItemText = TaxonUtils.FavoritesMenuItemText(_MenuTaxonTreeNode); favoritesToolStripMenuItem.Visible = favoritesMenuItemText != null; if (favoritesMenuItemText != null) { favoritesToolStripMenuItem.Text = favoritesMenuItemText; } } } if (advanced == null) { toolStripMenuItemAdvanced.Visible = false; } else if (fullMenu) { toolStripMenuItemAdvanced.Visible = true; GraphContextMenu.Items.Add(advanced); } else { while (advanced.DropDownItems.Count > 0) { GraphContextMenu.Items.Add(advanced.DropDownItems[0]); } } }