private ContextMenuStrip createMenuBkgImage() { LinkedList <Services.MenuItem> menuItems = new LinkedList <Services.MenuItem>(); menuItems.AddLast(new MenuItemImpl("mnuDelete", "Удалить", null, mhuDeleteFigure_Click)); menuItems.AddLast(new MenuItemImpl("mnuPosition", "Положение", null, null)); menuItems.AddLast(new MenuItemImpl("mnuEditImage", "Эффекты", null, null)); menuItems.AddLast(new MenuItemImpl("mnuCopy", "Копировать", null, mnuCopy_Click)); menuItems.AddLast(new MenuItemImpl("mnuGetProperty", "Свойства", null, canvas_double_click)); ContextMenuBuilder menuBuilder = new ContextMenuBuilder(menuItems); menuBuilder.addToExistingStrip("mnuPosition", new MenuItemImpl("mnuLevelUp", "На уровень вышe", null, mnuUp_Click)); menuBuilder.addToExistingStrip("mnuPosition", new MenuItemImpl("mnuLevelUp", "На уровень ниже", null, mnuLower_Click)); menuBuilder.addToExistingStrip("mnuPosition", new MenuItemImpl("mnuLevelUp", "На передний план", null, mnuToFrontClick)); menuBuilder.addToExistingStrip("mnuPosition", new MenuItemImpl("mnuLevelUp", "На задний план", null, mnuToBack_Click)); menuBuilder.addToExistingStrip("mnuEditImage", new MenuItemImpl("mnuInverse", "Инвертировать", null, mnuInversion_Click)); menuBuilder.addToExistingStrip("mnuEditImage", new MenuItemImpl("mnuMirror", "Отзеркалить", null, null)); menuBuilder.addToExistingStrip("mnuMirror", new MenuItemImpl("mnuMirrorHorizontal", "По горизонтали", null, mnuMirrorHorizontal_Click)); menuBuilder.addToExistingStrip("mnuMirror", new MenuItemImpl("mnuMirrorVertical", "По вертикали", null, mnuMirrorVertical_Click)); menuBuilder.addToExistingStrip("mnuEditImage", new MenuItemImpl("mnuRotate", "Повернуть", null, null)); menuBuilder.addToExistingStrip("mnuRotate", new MenuItemImpl("mnuRotateClockwise", "По часовой", null, mnuRotateClockwise_Click)); menuBuilder.addToExistingStrip("mnuRotate", new MenuItemImpl("mnuRotateCounter-Clockwise", "Против часовой", null, mnuRotateCounter_Clockwise_Click)); return(menuBuilder.getContext()); }
public void OnBeforeContextMenu(TModel model, Context context) { for (int i = modelAdapter.GetItemCount(model) - 1; i >= 0; i--) { int command = modelAdapter.GetCommandAt(model, i); if (!(AllowedCommands.Contains(command) || command is >= CommandCustomFirst and <= CommandCustomLast)) { modelAdapter.RemoveAt(model, i); } } for (int i = modelAdapter.GetItemCount(model) - 2; i >= 0; i--) { if (modelAdapter.IsSeparatorAt(model, i) && modelAdapter.IsSeparatorAt(model, i + 1)) { modelAdapter.RemoveAt(model, i); } } if (modelAdapter.GetItemCount(model) > 0 && modelAdapter.IsSeparatorAt(model, 0)) { modelAdapter.RemoveAt(model, 0); } var builder = new ContextMenuBuilder(modelAdapter, actionRegistry, model); builder.AddSeparator(); handler?.Show(builder, context); builder.RemoveSeparatorIfLast(model); }
void lvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvw.SelectedItem as MultimediaLinkViewModel; if (selected == null) { return; } ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("_Edit details...").Handler(() => { ShowMultimediaProperties(selected); }).End(); builder.New("_View multimedia...").Handler(() => { ViewMultimedia(selected); }).End(); builder.New("Save as...").Handler(() => { SaveMultimedia(selected); }).End(); builder.Separator(); var filename = _tempFileManager.GetContentFileName(selected.MultimediaID, selected.Extension); var verbMenuItems = SystemUtils.GetVerbsAsMenuItems(filename); foreach (MenuItem verbItem in verbMenuItems) { builder.AddMenuItem(verbItem); } if (selected != null) { builder.Separator(); builder.New("Show linked items...").Handler(() => { ShowLinkedItems(selected); }).End(); } builder.Separator(); builder.New("_Add new...").Handler(() => { AddNew(); }).End(); builder.New("_Delete").Handler(() => { DeleteSelected(); }).End(); lvw.ContextMenu = builder.ContextMenu; }
void lvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvw.SelectedItem as LabelSetItemViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); // builder.New("Select _material...").Handler(() => { SelectMaterial(); }).End(); builder.New("Load material by _User ID").Handler(() => { SelectMaterialByUser(); }).End(); builder.Separator(); builder.New("Remove item from list").Handler(() => DeleteSelected()).End(); builder.Separator(); if (selected.ItemType.Equals("site", StringComparison.CurrentCultureIgnoreCase)) { builder.New("Edit _Site").Handler(() => EditSite()).End(); } else if (selected.ItemType.Equals("sitevisit", StringComparison.CurrentCultureIgnoreCase)) { builder.New("Edit _Site").Handler(() => EditSite()).End(); builder.New("Edit Site _Visit").Handler(() => EditSiteVisit()).End(); } else if (selected.ItemType.Equals("material", StringComparison.CurrentCultureIgnoreCase)) { builder.New("Edit _Site").Handler(() => EditSite()).End(); builder.New("Edit Site _Visit").Handler(() => EditSiteVisit()).End(); builder.New("Edit _Material").Handler(() => EditMaterial()).End(); } builder.Separator(); builder.New("E_xport Label Set").Handler(() => ExportData()).End(); lvw.ContextMenu = builder.ContextMenu; } }
void lvw_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e) { var builder = new ContextMenuBuilder(null); builder.New("Edit loan").Handler(() => { EditSelectedLoan(); }).End(); lvw.ContextMenu = builder.ContextMenu; }
private void TreeView_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var tvw = sender as TreeView; var item = tvw.SelectedItem as DistributionRegionViewModel; var builder = new ContextMenuBuilder(null); if (item != null) { builder.New("Add region").Handler(() => { AddRegion(item); }).End(); builder.Separator(); builder.New("Delete region").Handler(() => { DeleteRegion(item); }).End(); builder.New("Rename region").Handler(() => { RenameRegion(item); }).End(); builder.Separator(); builder.New("Expand all").Handler(() => { ExpandAll(item); }).End(); builder.Separator(); builder.New("Taxa for Distribution Region").Handler(() => { RunTaxaForDistRegionReport(item); }).End(); } else { builder.New("Add region").Handler(() => { AddRegion(item); }).End(); builder.Separator(); builder.New("Expand all").Handler(() => { ExpandAll(item); }).End(); } tvw.ContextMenu = builder.ContextMenu; }
public void Invoke(Document activeDocument) { var bindingMethod = GetSelectedBindingMethod(activeDocument); var projectScopes = GetProjectScopes(activeDocument).ToArray(); if (projectScopes.Any(ps => !ps.StepSuggestionProvider.Populated)) { MessageBox.Show("Step bindings are still being analyzed. Please wait.", "Go to steps"); return; } var candidatingPositions = projectScopes.SelectMany(ps => GetMatchingSteps(bindingMethod, ps)).ToArray(); if (candidatingPositions.Length == 0) { MessageBox.Show("No matching step found.", "Go to steps"); return; } if (candidatingPositions.Length == 1) { JumpToStep(candidatingPositions[0]); return; } var menuBuilder = new ContextMenuBuilder(); menuBuilder.Title = "Go to steps: Multiple matching steps found."; menuBuilder.AddRange(candidatingPositions.Select((si, index) => new ContextMenuBuilder.ContextCommandItem( GetStepInstanceGotoTitle(si), () => JumpToStep(si)))); VsContextMenuManager.ShowContextMenu(menuBuilder.ToContextMenu(), dte); }
private void InizializeMenu() { this.ContextMenuStrip = new ContextMenuStrip(); ContextMenuBuilder menuBuilder = new ContextMenuBuilder(this.ContextMenuStrip); menuBuilder.BlockEditStripItem(OnAddItemClick, OnEditItemClick, OnDeleteItemClick); }
protected override void OnNodeConnectionPointerClick(string connId, PointerEventData eventData) { if (eventData.button == PointerEventData.InputButton.Right) { var ctx = new ContextMenuBuilder() .Add("clear connection", () => DisconnectConnection(connId)) .Build(); SetContextMenu(ctx); DisplayContextMenu(); } }
void lvwSelectedFields_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvwSelectedFields.SelectedItem as QueryCriteriaViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); builder.New("Format options").Handler(() => { ShowFormatOptions(selected); }).End(); lvwSelectedFields.ContextMenu = builder.ContextMenu; } }
void lvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var builder = new ContextMenuBuilder(null); builder.New("Edit Loan").Handler(() => { EditSelectedLoan(); }).End(); builder.Separator(); builder.New("Delete Loan").Handler(() => { DeleteSelectedLoan(); }).End(); builder.Separator(); builder.New("Add New Loan").Handler(() => { AddNewLoan(); }).End(); lvw.ContextMenu = builder.ContextMenu; }
private void CreateItem() { string itemName = _path + NameTextBox.Text; if ((DirectoryRadioButton.IsChecked ?? false)) { Directory.CreateDirectory(itemName); _curretnItem.Items.Add(new TreeViewItemBuilder(NameTextBox.Text) .SetTag(itemName) .SetOnSelectedHandler(TreeViewBuilder.SelectedEventHandler) .AddContextMenu(new ContextMenuBuilder() .AddMenuItem("Delete", TreeViewBuilder.DeleteEventHandler) .AddMenuItem("Create new...") .Build()) .Build()); } else { var attr = (FileAttributes)0; if (ReadOnlyCheckbox.IsChecked ?? false) { attr |= FileAttributes.ReadOnly; } if (ArchiveCheckbox.IsChecked ?? false) { attr |= FileAttributes.Archive; } if (SystemCheckbox.IsChecked ?? false) { attr |= FileAttributes.System; } if (HiddenCheckbox.IsChecked ?? false) { attr |= FileAttributes.Hidden; } File.Create(itemName); File.SetAttributes(itemName, attr); var cmb = new ContextMenuBuilder().AddMenuItem("Delete", TreeViewBuilder.DeleteEventHandler); if (NameTextBox.Text.EndsWith(".txt")) { cmb.AddMenuItem("Open", TreeViewBuilder.OpenEventHandler); } _curretnItem.Items.Add(new TreeViewItemBuilder(NameTextBox.Text) .SetTag(itemName) .SetOnSelectedHandler(TreeViewBuilder.SelectedEventHandler) .AddContextMenu(cmb.Build()) .Build()); } }
private ContextMenuStrip createMenuFacade() { LinkedList <Services.MenuItem> menuItems = new LinkedList <Services.MenuItem>(); menuItems.AddLast(new MenuItemImpl("mnuDelete", "Удалить", null, mhuDeleteFigure_Click)); //menuItems.AddLast(new MenuItemImpl("mnuGetProperty", "Свойства", null, canvas_double_click)); ContextMenuBuilder menuBuilder = new ContextMenuBuilder(menuItems); return(menuBuilder.getContext()); }
public void ContextMenuStrip_Always_AddImportItem() { // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); var context = new HydraulicBoundaryDatabaseContext(assessmentSection.HydraulicBoundaryDatabase, assessmentSection); var applicationFeatureCommands = mocks.Stub <IApplicationFeatureCommands>(); var importCommandHandler = mocks.Stub <IImportCommandHandler>(); importCommandHandler.Stub(ich => ich.GetSupportedImportInfos(null)).IgnoreArguments().Return(new[] { new ImportInfo() }); var exportCommandHandler = mocks.Stub <IExportCommandHandler>(); var updateCommandHandler = mocks.Stub <IUpdateCommandHandler>(); var viewCommands = mocks.Stub <IViewCommands>(); using (var treeViewControl = new TreeViewControl()) { var builder = new ContextMenuBuilder(applicationFeatureCommands, importCommandHandler, exportCommandHandler, updateCommandHandler, viewCommands, context, treeViewControl); IGui gui = StubFactory.CreateGuiStub(mocks); gui.Stub(g => g.Get(context, treeViewControl)).Return(builder); gui.Stub(cmp => cmp.MainWindow).Return(mocks.Stub <IMainWindow>()); mocks.ReplayAll(); using (var plugin = new RiskeerPlugin()) { TreeNodeInfo info = GetInfo(plugin); plugin.Gui = gui; // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, assessmentSection, treeViewControl)) { TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuImportHydraulicBoundaryDatabaseIndex, "&Koppel aan database...", "Koppel aan hydraulische belastingendatabase.", RiskeerCommonFormsResources.DatabaseIcon); } } } // Assert mocks.VerifyAll(); }
protected override void OnNodePointerClick(Node node, PointerEventData eventData) { if (eventData.button == PointerEventData.InputButton.Right) { var ctx = new ContextMenuBuilder() .Add("clear connections", () => ClearConnections(node)) .Add("delete", () => DeleteNode(node)) .Build(); SetContextMenu(ctx); DisplayContextMenu(); } }
//private static IKeyBindingInputs keyBindingsInputCopies; //private static IKeyBindingInputs keyBindingsInputPaste; //private static IKeyBindingWorker keyBindingWorker; static ExcelActions() { allCopier = new AllCopyItems(); selectedCopier = new SelectedCopyItems(); colorator = new Colorator(); contextMenuBuilder = new ContextMenuBuilder(); builderObjects = new BuilderObjects(); itemsSourceInserts = new ItemsSourceIntems(builderObjects); excelActionsCommandGenerator = new ExcelActionsCommandGenerator(allCopier, selectedCopier, itemsSourceInserts, colorator); //keyBindingsInputCopies = new KeyBindingInputsCopies(); //keyBindingsInputPaste = new KeyBindingInputsPaste(); //keyBindingWorker = new KeyBindingWorker(); }
void lvwValues_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvwValues.SelectedItem as TypeDataOwnerInfo; if (selected != null) { ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("Edit owner").Handler(() => { EditOwner(selected); }).End(); builder.New("Delete {0} from owner", _type).Handler(() => { DeleteTypeDataFromOwner(selected); }).End(); lvwValues.ContextMenu = builder.ContextMenu; } }
protected ContextMenu CreateContextMenu() { ContextMenu menu = new ContextMenu(); if (ContextMenuBuilder != null) { var items = ContextMenuBuilder.GetMenuItems(Component); foreach (var item in items) { menu.Items.Add(item); } } return(menu); }
void lstTraitTypes_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lstTypeData.SelectedItem as TypeDataViewModel; if (selected != null) { ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("Rename").Handler(() => { RenameTraitType(selected); }).End(); builder.Separator(); builder.New("Add new {0} type", _type).Handler(() => { AddNewTypeData(); }).End(); builder.Separator(); builder.New("Delete {0} type", _type).Handler(() => { DeleteTypeData(selected); }).End(); lstTypeData.ContextMenu = builder.ContextMenu; } }
private void InizializeMenu() { scene.ContextMenuStrip = new ContextMenuStrip(); typesScene.ContextMenuStrip = new ContextMenuStrip(); scene.ContextMenuStrip.VisibleChanged += OnSceneContextMenuStripVisibleChanged; typesScene.ContextMenuStrip.VisibleChanged += OnTypesSceneContextMenuStripVisibleChanged; ContextMenuBuilder menuBuilder = new ContextMenuBuilder(scene.ContextMenuStrip); menuBuilder.BlockEditStripItem(OnAddItemClick, OnEditItemClick, OnDeleteItemClick); ContextMenuBuilder typesMenuBuilder = new ContextMenuBuilder(typesScene.ContextMenuStrip); typesMenuBuilder.BlockEditStripItem(OnAddSectionTypeClick, OnEditSectionTypeClick, OnDeleteSectionTypeClick); }
private void lvwUsers_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvwUsers.SelectedItem as UserSearchResultViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); builder.New("Add User").Handler(() => AddNewUser()).End(); builder.Separator(); builder.New("Delete " + selected.Username).Handler(() => DeleteSelectedUser()).End(); builder.Separator(); builder.New("Properties...").Handler(() => ShowSelectedProperties()).End(); lvwUsers.ContextMenu = builder.ContextMenu; } }
private void ShowJournalMenu(ListBox lst) { var viewModel = lst.SelectedItem as JournalViewModel; if (viewModel != null) { ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("_Edit journal").Handler(() => { EditJournal(viewModel); }).End(); builder.Separator(); builder.New("_Pin to pinboard").Handler(() => { PinSelected(); }).End(); builder.Separator(); builder.New("_Add new Journal").Handler(() => { AddNew(); }).End(); builder.New("_Delete Journal").Handler(() => { DeleteJournal(viewModel); }).End(); lst.ContextMenu = builder.ContextMenu; } }
internal ContextMenu BuildFavoritesMenu(HierarchicalViewModelBase node) { int? favoriteId = null; bool isFavoriteGroup = false; if (node is TaxonFavoriteViewModel) { var fav = node as TaxonFavoriteViewModel; favoriteId = fav.FavoriteID; isFavoriteGroup = fav.IsGroup; } ContextMenuBuilder builder = new ContextMenuBuilder(FormatterFunc); builder.New("TaxonExplorer.menu.ShowInContents").Handler(() => { Explorer.ShowInExplorer(Taxon.TaxaID); }); MenuItem reports = CreateReportMenuItems(); if (reports != null && reports.HasItems) { builder.Separator(); builder.New("Distribution _Map").Handler(() => { Explorer.DistributionMap(Taxon); }).End(); builder.AddMenuItem(reports); } if (favoriteId != null && favoriteId.HasValue) { builder.Separator(); if (isFavoriteGroup) { builder.New("Rename group").Handler(() => { Explorer.RenameFavoriteGroup(node as TaxonFavoriteViewModel); }); builder.New("Add favorite group").Handler(() => { Explorer.AddFavoriteGroup(node); }).End(); } builder.New("Remove from favorites").Handler(() => { Explorer.RemoveFromFavorites(favoriteId.Value); }); } builder.Separator(); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(new PinnableObject(TaxaPlugin.TAXA_PLUGIN_NAME, LookupType.Taxon, Taxon.TaxaID.Value)); }); builder.Separator(); builder.New("_Permissions...").Handler(() => Explorer.EditBiotaPermissions(Taxon)).End(); builder.Separator(); builder.New("_Edit Name...").Handler(() => { Explorer.EditTaxonName(Taxon); }); builder.New("_Edit Details...").Handler(() => { Explorer.EditTaxonDetails(Taxon.TaxaID); }).End(); return(builder.ContextMenu); }
private ContextMenuStrip createMenuCanvas() { LinkedList <Services.MenuItem> menuItems = new LinkedList <Services.MenuItem>(); menuItems.AddLast(new MenuItemImpl("mnuAddmage", "Добавить изображение", null, mnuAddImage_Click)); menuItems.AddLast(new MenuItemImpl("mnuClearImages", "Очистить сцену", null, mnuClearImages_Click)); menuItems.AddLast(new MenuItemImpl("mnuEnableEditPosition", "Редактировать положение фасадов", null, mnuEnableEditPosition_Click)); menuItems.AddLast(new MenuItemImpl("mnuPaste", "Вставить", null, mnuPaste_Click)); menuItems.AddLast(new MenuItemImpl("mnuFillFacades", "Обрезать", null, mnuFillFacades_Click)); menuItems.AddLast(new MenuItemImpl("mnuCreateHowPhotoFacade", "Создать как фото фасады", null, mnuCreateHowPhotoFacade_Click)); menuItems.AddLast(new MenuItemImpl("mnuCreateHowSandblast", "Создать как пескоструйные фасады", null, mnuCreateHowSandblast_Click)); ContextMenuBuilder menuBuilder = new ContextMenuBuilder(menuItems); return(menuBuilder.getContext()); }
void lvwRichness_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { lvwRichness.ContextMenu = null; var vm = lvwRichness.SelectedItem as SpeciesRichnessPointSetViewModel; if (vm != null) { var builder = new ContextMenuBuilder(null); if (!string.IsNullOrEmpty(vm.Filename)) { builder.New("Show layer as image").Handler(() => ShowGridLayerImage(vm.Filename)).End(); } if (builder.HasItems) { lvwRichness.ContextMenu = builder.ContextMenu; } } }
public void TestMultiselectContextMenu() { XmlDocument storedResults = new XmlDocument(); storedResults.Load(TestResource("ContextMenuBuilderTestResults.xml")); foreach (Selection selection in XenObjectSelections) { MW(() => { ContextMenuBuilder cmd = new ContextMenuBuilder(_pluginManager, _mainWindow); ToolStripItem[] items = cmd.Build(selection.Objects.ConvertAll(x => new SelectedItem(GetAnyXenObject(xx => xx.opaque_ref == x.opaque_ref)))); AssertItemsMatchStoredResults(storedResults, selection, items); }); } // use this to save results // Serializer.SerializeTestResult(TestResource("ContextMenuBuilderTestResults.xml"), s, items); }
void tvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = tvw.SelectedItem as HierarchicalViewModelBase; tvw.ContextMenu = null; if (selected != null) { var builder = new ContextMenuBuilder(null); if (selected is ServerViewModel) { var server = selected as ServerViewModel; builder.New("Connect...").Handler(() => Connect(server)).Enabled(server.Server == null).End(); builder.Separator(); builder.New("Disconnect").Handler(() => Disconnect(server)).Enabled(server.Server != null).End(); tvw.ContextMenu = builder.ContextMenu; } } }
private void ShowGridContextMenu() { var selected = lstLayers.SelectedItem as GridLayerFileViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); builder.New("Save as _GRD file").Handler(() => { SaveAsGRDFile(new GridLayer(selected.Name)); }).End(); builder.New("Save as _ASCII Grid file").Handler(() => { SaveAsASCIIFile(new GridLayer(selected.Name)); }).End(); builder.Separator(); builder.New("Show in _map").Handler(() => { ShowGridLayerInMap(new GridLayer(selected.Name), _singleModelOptions.Intervals, _singleModelOptions.CutOff, _singleModelOptions); }).End(); builder.Separator(); builder.New("Layer _properties").Handler(() => { ShowGridLayerProperties(new GridLayer(selected.Name)); }).End(); lstLayers.ContextMenu = builder.ContextMenu; } }
public void ContextMenuStrip_Always_ImportItemEnabled() { // Setup var mapDataCollection = new MapDataCollection("test data"); MapDataCollectionContext context = GetContext(mapDataCollection); var applicationFeatureCommands = mocks.Stub <IApplicationFeatureCommands>(); var importCommandHandler = mocks.Stub <IImportCommandHandler>(); importCommandHandler.Stub(ich => ich.GetSupportedImportInfos(null)).IgnoreArguments().Return(new[] { new ImportInfo() }); var exportCommandHandler = mocks.Stub <IExportCommandHandler>(); var updateCommandHandler = mocks.Stub <IUpdateCommandHandler>(); var viewCommands = mocks.Stub <IViewCommands>(); using (var treeViewControl = new TreeViewControl()) { var builder = new ContextMenuBuilder(applicationFeatureCommands, importCommandHandler, exportCommandHandler, updateCommandHandler, viewCommands, mapDataCollection, treeViewControl); contextMenuBuilderProvider.Expect(cmbp => cmbp.Get(context, treeViewControl)).Return(builder); mocks.ReplayAll(); // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, null, treeViewControl)) { // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuAddMapLayerIndex, "&Voeg kaartlaag toe...", "Importeer een nieuwe kaartlaag en voeg deze toe.", Resources.MapPlusIcon); } } }
protected override void OnGraphPointerClick(PointerEventData eventData) { switch (eventData.button) { case PointerEventData.InputButton.Right: { var ctx = new ContextMenuBuilder() .Add("nodes/float", CreateFloatNode) .Add("nodes/math op", CreateMatOpNode) .Add("graph/load", () => LoadGraph(_savePath)) .Add("graph/save", () => SaveGraph(_savePath)) .Build(); SetContextMenu(ctx); DisplayContextMenu(); } break; case PointerEventData.InputButton.Left: CloseContextMenu(); break; } }
void lvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lvw.SelectedItem as ViewModelBase; if (selected != null) { var list = new List<ViewModelBase>(); list.Add(selected); var commands = PluginManager.Instance.SolicitCommandsForObjects(list); if (commands.Count > 0) { var builder = new ContextMenuBuilder(null); foreach (Command loopvar in commands) { Command cmd = loopvar; // include this in the closure scope, loopvar is outside, hence will always point to the last item... if (cmd is CommandSeparator) { builder.Separator(); } else { builder.New(cmd.Caption).Handler(() => { cmd.CommandAction(selected); }).End(); } } lvw.ContextMenu = builder.ContextMenu; } } }
private void ShowContextMenu(HierarchicalViewModelBase selected, FrameworkElement control) { ContextMenuBuilder builder = new ContextMenuBuilder(null); if (_content.CanAddNewItem) { builder.New("Add new").Handler(() => { AddNewItem(selected); }).End(); } if (_content.CanRenameItem) { builder.Separator(); builder.New("Rename").Handler(() => { RenameItem(selected); }).End(); } if (_content.CanDeleteItem) { builder.Separator(); builder.New("Delete").Handler(() => { DeleteItem(selected); }).End(); } if (builder.HasItems) { control.ContextMenu = builder.ContextMenu; } }
private void addSetOperations(ContextMenuBuilder builder, LookupType type, params string[] idColAliases) { int index = -1; foreach (string alias in idColAliases) { var field = alias; for (int i = 0; i < Data.Columns.Count; ++i) { var col = Data.Columns[i]; if (col.Name.Contains(alias)) { index = i; break; } } if (index >= 0) { break; } } if (index > -1) { List<int> idSet = new List<int>(); if (lvw.SelectedItems.Count > 1) { foreach (object selected in lvw.SelectedItems) { var row = selected as MatrixRow; var selectedRow = Data.Rows.IndexOf(row); idSet.Add((int)row[selectedRow]); } } else { Data.Rows.ForEach(row => { var objectIndex = row[index]; if (objectIndex is int) { idSet.Add((int)row[index]); } }); } if (idSet.Count > 0) { var commands = PluginManager.Instance.SolicitCommandsForObjectSet(idSet, type); if (commands != null && commands.Count > 0) { MenuItemBuilder b = new MenuItemBuilder(); var typeItem = b.New(type.ToString() + String.Format(" Set ({0} items)", idSet.Count)).MenuItem; commands.ForEach((cmd) => { if (cmd is CommandSeparator) { typeItem.Items.Add(new Separator()); } else { typeItem.Items.Add(b.New(cmd.Caption).Handler(() => { cmd.CommandAction(idSet); }).MenuItem); } }); builder.AddMenuItem(typeItem); } } } }
private void AddMapItems(ContextMenuBuilder builder, params string[] colAliases) { foreach (string colpair in colAliases) { var bits = colpair.Split(','); if (bits.Length == 2) { if (Data.ContainsColumn(bits[0]) && Data.ContainsColumn(bits[1])) { var latColName = bits[0]; var longColName = bits[1]; if (!string.IsNullOrEmpty(longColName) && !string.IsNullOrEmpty(latColName)) { if (builder.ContextMenu.HasItems) { builder.Separator(); } builder.New("Plot selected rows on Map").Handler(() => { PlotSelected(longColName, latColName); }).End(); builder.New("Plot all rows on Map").Handler(() => { PlotAll(longColName, latColName); }).End(); } break; } } } }
private void TreeViewItem_MouseRightButtonDown(object sender, MouseEventArgs e) { TreeViewItem item = sender as TreeViewItem; if (item == null) { return; } item.Focus(); e.Handled = true; var model = tvwFavorites.SelectedItem as HierarchicalViewModelBase; Debug.Assert(model != null); int? favoriteId = null; TaxonViewModel tvm = null; bool isGroup = false; if (model is TaxonFavoriteViewModel) { var fav = model as TaxonFavoriteViewModel; favoriteId = fav.FavoriteID; if (!fav.IsGroup) { var taxon = new TaxaService(User).GetTaxon(fav.TaxaID); tvm = new TaxonViewModel(null, taxon, TaxonExplorer.GenerateTaxonDisplayLabel); } else { isGroup = true; } } else if (model is TaxonViewModel) { tvm = model as TaxonViewModel; } if (tvm != null) { TaxonMenuFactory f = new TaxonMenuFactory(tvm, TaxonExplorer, TaxonExplorer._R); tvwFavorites.ContextMenu = f.BuildFavoritesMenu(model); } else { var builder = new ContextMenuBuilder(null); builder.New("Add favorite group").Handler(() => { AddFavoriteGroup(model); }).End(); if (isGroup) { builder.New("Rename group").Handler(() => { RenameFavoriteGroup(model as TaxonFavoriteViewModel); }).End(); builder.New("Remove favorite group").Handler(() => { DeleteFavoriteGroup(model); }).End(); } tvwFavorites.ContextMenu = builder.ContextMenu; } }
private void ShowContextMenu(TreeView tvw) { var selected = tvw.SelectedItem as SiteExplorerNodeViewModel; var builder = new ContextMenuBuilder(null); if (selected != null) { tvw.ContextMenu = SiteExplorerMenuBuilder.Build(selected, this); } else if (tvw.SelectedItem == this.regionsNode) { builder.New("Add _Region").Handler(() => { var newNode = AddRegion(null); RegionsModel.Insert(0, newNode); }).End(); builder.Separator(); builder.AddMenuItem(SiteExplorerMenuBuilder.CreateTemplateItems(this)); builder.Separator(); builder.New("Refresh").Handler(() => { Refresh(); }).End(); tvw.ContextMenu = builder.ContextMenu; } else if (tvw.SelectedItem == unplacedNode) { builder.New("Add Site _Group").Handler(() => { var newNode = AddSiteGroup(null); UnplacedModel.Insert(0, newNode); }).End(); MenuItemBuilder b = new MenuItemBuilder(); MenuItem addSite = b.New("Add Site").MenuItem; addSite.Items.Add(b.New("Blank").Handler(() => { var newNode = AddSite(null); UnplacedModel.Insert(0, newNode); }).MenuItem); addSite.Items.Add(b.New("From _Template").Handler(() => { int? templateId = ChooseTemplate(SiteExplorerNodeType.Site); if (templateId != null && templateId.HasValue) { var newNode = AddSite(null, templateId.Value); UnplacedModel.Insert(0, newNode); } }).MenuItem); builder.AddMenuItem(addSite); builder.Separator(); builder.AddMenuItem(SiteExplorerMenuBuilder.CreateTemplateItems(this)); builder.Separator(); builder.New("Refresh").Handler(() => { Refresh(); }).End(); tvw.ContextMenu = builder.ContextMenu; } else if (tvw.SelectedItem is ViewModelPlaceholder) { var ph = tvw.SelectedItem as ViewModelPlaceholder; switch (ph.DisplayLabel.ToLower()) { case "site templates": builder.New("Add new _Site Template").Handler(() => { AddSiteTemplate(); }).End(); break; case "site visit templates": builder.New("Add new Site _Visit Template").Handler(() => { AddSiteVisitTemplate(); }).End(); break; case "material templates": builder.New("Add new _Material Template").Handler(() => { AddMaterialTemplate(); }).End(); break; } tvw.ContextMenu = builder.ContextMenu; } else if (tvw.SelectedItem == templatesNode) { builder.AddMenuItem(SiteExplorerMenuBuilder.CreateTemplateItems(this)); tvw.ContextMenu = builder.ContextMenu; } else { tvw.ContextMenu = null; } }
void lvw_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { // Clear the last context menu... lvw.ContextMenu = null; var viewModel = lvw.SelectedItem as ViewModelBase; if (viewModel != null) { ContextMenuBuilder builder = new ContextMenuBuilder(null); if (viewModel is RDESiteViewModel) { var site = viewModel as RDESiteViewModel; builder.New("Edit Site...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.Site, site.SiteID); }).End(); } else if (viewModel is RDESiteVisitViewModel) { var visit = viewModel as RDESiteVisitViewModel; builder.New("Edit Site...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.Site, visit.SiteID); }).End(); builder.New("Edit Site Visit...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.SiteVisit, visit.SiteVisitID); }).End(); } else if (viewModel is RDEMaterialViewModel) { var material = viewModel as RDEMaterialViewModel; builder.New("Edit Site...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.Site, material.SiteVisit.SiteID); }).End(); builder.New("Edit Site Visit...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.SiteVisit, material.SiteVisitID); }).End(); builder.New("Edit Material...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.Material, material.MaterialID); }).End(); if (material.BiotaID != 0) { builder.New("Edit Taxon...").Handler(() => { PluginManager.Instance.EditLookupObject(LookupType.Taxon, material.BiotaID); }).End(); } } if (builder.HasItems) { lvw.ContextMenu = builder.ContextMenu; } } }
void lstTypeData_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = lstTypeData.SelectedItem as TypeDataViewModel; if (selected != null) { ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("Rename").Handler(() => { RenameTraitType(selected); }).End(); builder.Separator(); builder.New("Add new {0} type", TypeName).Handler(() => { AddNewTypeData(); }).End(); builder.Separator(); builder.New("Delete {0} type", TypeName).Handler(() => { DeleteTypeData(selected); }).End(); lstTypeData.ContextMenu = builder.ContextMenu; } }
internal ContextMenu BuildFindResultsMenu() { var builder = new ContextMenuBuilder(FormatterFunc); builder.New("TaxonExplorer.menu.ShowInContents").Handler(() => { Explorer.ShowInExplorer(Taxon.TaxaID); }).End(); builder.Separator(); if (Explorer.IsUnlocked) { if (!Taxon.IsRootNode) { builder.New("TaxonExplorer.menu.Delete", Taxon.DisplayLabel).Handler(() => { Explorer.DeleteTaxon(Taxon); }); builder.New("TaxonExplorer.menu.DeleteCurrentLevel", Taxon.DisplayLabel).Handler(() => { Explorer.DeleteLevel(Taxon); }); builder.New("TaxonExplorer.menu.Rename", Taxon.DisplayLabel).Handler(() => { Explorer.RenameTaxon(Taxon); }); builder.Separator(); builder.New("TaxonExplorer.menu.ChangeRank", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeRank(Taxon); }); if (Taxon.AvailableName == true) { builder.New("TaxonExplorer.menu.ChangeToLiterature", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeAvailable(Taxon); }); } else if (Taxon.LiteratureName == true) { builder.New("TaxonExplorer.menu.ChangeToAvailable", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeAvailable(Taxon); }); } } MenuItem addMenu = BuildAddMenuItems(); if (addMenu != null && addMenu.Items.Count > 0) { builder.Separator(); builder.AddMenuItem(addMenu); } } else { builder.New("TaxonExplorer.menu.Unlock").Handler(() => { Explorer.btnLock.IsChecked = true; }); } MenuItem reports = CreateReportMenuItems(); if (reports != null && reports.HasItems) { if (builder.HasItems) { builder.Separator(); } builder.New("Distribution _Map").Handler(() => { Explorer.DistributionMap(Taxon); }).End(); builder.AddMenuItem(reports); } builder.Separator(); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(new PinnableObject(TaxaPlugin.TAXA_PLUGIN_NAME, LookupType.Taxon, Taxon.TaxaID.Value)); }).End(); builder.Separator(); builder.New("_Permissions...").Handler(() => Explorer.EditBiotaPermissions(Taxon)).End(); builder.Separator(); builder.New("_Edit Name...").Handler(() => { Explorer.EditTaxonName(Taxon); }).End(); builder.New("_Edit Details...").Handler(() => { Explorer.EditTaxonDetails(Taxon.TaxaID); }).End(); return builder.ContextMenu; }
public static ContextMenu BuildForFavorite(SiteFavoriteViewModel fav, MaterialExplorer explorer) { if (fav == null) { return null; } ContextMenuBuilder builder = new ContextMenuBuilder(null); builder.New("Refresh").Handler(() => { explorer.Refresh(); }).End(); if (!fav.IsGroup) { builder.Separator(); builder.New("Rename").Handler(() => { fav.IsRenaming = true; }).End(); // A little bit of a hack to reuse the edit code...simulate a site explorer node, although its not really there... SiteExplorerNode model = new SiteExplorerNode(); model.ElemID = fav.ElemID; model.ElemType = fav.ElemType; model.Name = fav.Name; var node = new SiteExplorerNodeViewModel(model); var pinnable = explorer.CreatePinnable(node); if (pinnable != null) { builder.Separator(); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(pinnable); }); } var mnuReports = CreateReportMenuItems(node, explorer); if (mnuReports.HasItems) { builder.Separator(); builder.AddMenuItem(mnuReports); } SiteExplorerNodeType type = (SiteExplorerNodeType)Enum.Parse(typeof(SiteExplorerNodeType), fav.ElemType); if (type != SiteExplorerNodeType.SiteGroup) { builder.Separator(); builder.New("Edit Details...").Handler(() => { switch (type) { case SiteExplorerNodeType.Region: explorer.EditRegion(node); break; case SiteExplorerNodeType.Site: explorer.EditSite(node); break; case SiteExplorerNodeType.SiteVisit: explorer.EditSiteVisit(node); break; case SiteExplorerNodeType.Trap: explorer.EditTrap(node); break; case SiteExplorerNodeType.Material: explorer.EditMaterial(node); break; default: throw new Exception("[Details] Unhandled site explorer element type: " + node.ElemType); } }).End(); var rdeNodeTypes = new List<SiteExplorerNodeType>(new SiteExplorerNodeType[] { SiteExplorerNodeType.Material, SiteExplorerNodeType.Site, SiteExplorerNodeType.SiteVisit }); if (node != null && rdeNodeTypes.Contains(node.NodeType)) { builder.New("Open in Rapid Data Entry...").Handler(() => { explorer.EditRDE(node); }).End(); } else { builder.New("Rapid Data Entry...").Handler(() => { explorer.EditRDE(node); }).End(); } } } return builder.ContextMenu; }
private void AddLookupItem(ContextMenuBuilder builder, LookupType lookupType, params String[] aliases) { int index = -1; foreach (string alias in aliases) { var field = alias; for (int i = 0; i < Data.Columns.Count; ++i) { var col = Data.Columns[i]; if (col.Name.Contains(alias)) { index = i; break; } } if (index >= 0) { break; } } if (index > -1) { var row = lvw.SelectedItem as MatrixRow; int objectId = 0; var enabled = false; if (row[index] != null) { if (Int32.TryParse(row[index].ToString(), out objectId) && objectId > 0) { enabled = true; } } var pinnable = PluginManager.Instance.GetPinnableForLookupType(lookupType, objectId); var commands = new List<Command>(); if (pinnable != null) { var vm = PluginManager.Instance.GetViewModel(pinnable); if (vm != null) { var selected = new List<ViewModelBase>(); selected.Add(vm); commands.AddRange(PluginManager.Instance.SolicitCommandsForObjects(selected)); } } if (commands.Count > 0) { MenuItemBuilder b = new MenuItemBuilder(); var typeItem = b.New(lookupType.ToString()).MenuItem; typeItem.Items.Add(b.New("Pin {0} to pinboard", lookupType).Handler(() => { PluginManager.Instance.PinObject(pinnable); }).Enabled(enabled).MenuItem); typeItem.Items.Add(new Separator()); commands.ForEach((cmd) => { if (cmd is CommandSeparator) { typeItem.Items.Add(new Separator()); } else { typeItem.Items.Add(b.New(cmd.Caption).Handler(() => { cmd.CommandAction(pinnable); }).Enabled(enabled).MenuItem); } }); builder.AddMenuItem(typeItem); } else { builder.New("Edit " + lookupType.ToString()).Handler(() => { PluginManager.Instance.EditLookupObject(lookupType, objectId); }).Enabled(enabled).End(); } } addSetOperations(builder, lookupType, aliases); }
private void thumbList_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var selected = thumbList.SelectedItem as MultimediaLinkViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); string filename = _tempFileManager.GetContentFileName(selected.MultimediaID, selected.Extension); var verbMenuItems = SystemUtils.GetVerbsAsMenuItems(filename); foreach (MenuItem verbItem in verbMenuItems) { builder.AddMenuItem(verbItem); } builder.Separator(); builder.New("Show linked items...").Handler(() => ShowLinkedItems(selected)).End(); builder.Separator(); builder.New("Save as...").Handler(() => SaveAs(selected)).End(); builder.Separator(); builder.New("Open in system editor...").Handler(() => OpenSelected()).End(); builder.Separator(); builder.New("Properties...").Handler(() => ShowMultimediaProperties(selected)).End(); thumbList.ContextMenu = builder.ContextMenu; } }
private void AddMaterialItems(ContextMenuBuilder builder, params string[] colAliases) { foreach (string col in colAliases) { if (Data.ContainsColumn(col)) { if (builder.ContextMenu.HasItems) { builder.Separator(); } } } }
private void ShowSourceMenu() { var selected = lvwMappings.SelectedItem as ImportFieldMappingViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); bool isFixed = selected.Model.IsFixed; builder.New("_Add new fixed field...").Handler(() => { AddFixedField(); }).End(); builder.New("_Edit fixed field...").Handler(() => { EditFixedField(); }).Enabled(isFixed).End(); builder.New("_Delete fixed field").Handler(() => { DeleteFixedField(); }).Enabled(isFixed).End(); builder.Separator(); builder.New("_Set default value").Handler(() => { SetDefaultValue(); }).Enabled(!isFixed).End(); builder.New("_Clear default value").Handler(() => { ClearDefaultValue(); }).Enabled(!isFixed).End(); builder.Separator(); builder.New("Edit transformations").Handler(() => { EditTransformations(); }).End(); builder.New("Clear transformations").Handler(() => { ClearTransformations(); }).Enabled(selected.Transformer != null).End(); lvwMappings.ContextMenu = builder.ContextMenu; } }
void lvw_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { var row = lvw.SelectedItem as MatrixRow; if (row != null) { var builder = new ContextMenuBuilder(null); AddLookupItem(builder, LookupType.Site, "SiteID", "intSiteID", "Site Identifier"); AddLookupItem(builder, LookupType.SiteVisit, "SiteVisitID", "intSiteVisitID", "Visit Identifier"); AddLookupItem(builder, LookupType.Material, "MaterialID", "intMaterialID", "Material Identifier"); AddLookupItem(builder, LookupType.Taxon, "BiotaID", "intBiotaID", "Taxon Identifier", "TaxonID"); AddLookupItem(builder, LookupType.Reference, "RefID", "intRefID", "ReferenceID", "Reference Identifier"); AddLookupItem(builder, LookupType.Journal, "JournalID", "intJournalID", "Journal Identifier"); string latColName = null; string longColName = null; foreach (MatrixColumn col in Data.Columns) { if (latColName == null && col.Name.Contains("Lat")) { latColName = col.Name; } if (longColName == null && col.Name.Contains("Long")) { longColName = col.Name; } } AddMapItems(builder, "Lat,Long", "Latitude,Longitude", "Y,X", "Y1,X1", "decimalLatitude,decimalLongitude"); AddMaterialItems(builder, "materialID", "intMaterialID"); if (builder.ContextMenu.HasItems) { builder.Separator(); } if (ContextMenuHandler != null) { ContextMenuHandler(builder, row); if (builder.ContextMenu.HasItems) { builder.Separator(); } } builder.New("Export data...").Handler(() => { Export(); }).End(); builder.Separator(); builder.New("Copy All (including column names)").Handler(() => CopyAll(true)).End(); builder.New("Copy All (excluding column names)").Handler(() => CopyAll(false)).End(); builder.Separator(); builder.New("Copy Selected (including column names)").Handler(() => CopySelected(true)).End(); builder.New("Copy Selected (excluding column names)").Handler(() => CopySelected(false)).End(); lvw.ContextMenu = builder.ContextMenu; } }
internal ContextMenu BuildFavoritesMenu(HierarchicalViewModelBase node) { int? favoriteId = null; bool isFavoriteGroup = false; if (node is TaxonFavoriteViewModel) { var fav = node as TaxonFavoriteViewModel; favoriteId = fav.FavoriteID; isFavoriteGroup = fav.IsGroup; } ContextMenuBuilder builder = new ContextMenuBuilder(FormatterFunc); builder.New("TaxonExplorer.menu.ShowInContents").Handler(() => { Explorer.ShowInExplorer(Taxon.TaxaID); }); MenuItem reports = CreateReportMenuItems(); if (reports != null && reports.HasItems) { builder.Separator(); builder.New("Distribution _Map").Handler(() => { Explorer.DistributionMap(Taxon); }).End(); builder.AddMenuItem(reports); } if (favoriteId != null && favoriteId.HasValue) { builder.Separator(); if (isFavoriteGroup) { builder.New("Rename group").Handler(() => { Explorer.RenameFavoriteGroup(node as TaxonFavoriteViewModel); }); builder.New("Add favorite group").Handler(() => { Explorer.AddFavoriteGroup(node); }).End(); } builder.New("Remove from favorites").Handler(() => { Explorer.RemoveFromFavorites(favoriteId.Value); }); } builder.Separator(); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(new PinnableObject(TaxaPlugin.TAXA_PLUGIN_NAME, LookupType.Taxon, Taxon.TaxaID.Value)); }); builder.Separator(); builder.New("_Permissions...").Handler(() => Explorer.EditBiotaPermissions(Taxon)).End(); builder.Separator(); builder.New("_Edit Name...").Handler(() => { Explorer.EditTaxonName(Taxon); }); builder.New("_Edit Details...").Handler(() => { Explorer.EditTaxonDetails(Taxon.TaxaID); }).End(); return builder.ContextMenu; }
public static ContextMenu Build(SiteExplorerNodeViewModel node, MaterialExplorer explorer) { if (node == null) { return null; } ContextMenuBuilder builder = new ContextMenuBuilder(null); if (explorer.tabMaterial.SelectedIndex != 0) { builder.New("Show in Contents").Handler(() => { explorer.ShowInContents(node); }).End(); builder.Separator(); } builder.New("Refresh").Handler(() => { explorer.Refresh(); }).End(); builder.Separator(); builder.New("Rename").Handler(() => { node.IsRenaming = true; }).End(); if (!node.IsTemplate) { var addMenu = CreateAddMenu(node, explorer); builder.AddMenuItem(addMenu); builder.Separator(); } var type = NodeType(node); builder.New("Delete").Handler(() => { switch (type) { case SiteExplorerNodeType.Region: explorer.DeleteRegion(node); break; case SiteExplorerNodeType.SiteGroup: explorer.DeleteSiteGroup(node); break; case SiteExplorerNodeType.Site: explorer.DeleteSite(node); break; case SiteExplorerNodeType.SiteVisit: explorer.DeleteSiteVisit(node); break; case SiteExplorerNodeType.Trap: explorer.DeleteTrap(node); break; case SiteExplorerNodeType.Material: explorer.DeleteMaterial(node); break; default: throw new Exception("[Delete] Unhandled site explorer element type: " + node.ElemType); } }); if (!node.IsTemplate) { var pinnable = explorer.CreatePinnable(node); if (pinnable != null) { builder.Separator(); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(pinnable); }); } builder.Separator(); builder.AddMenuItem(CreateFavoriteMenuItems(explorer, node)); var mnuReports = CreateReportMenuItems(node, explorer); if (mnuReports.HasItems) { builder.Separator(); builder.AddMenuItem(mnuReports); } builder.Separator(); builder.AddMenuItem(CreateTemplateItems(explorer)); } if (type != SiteExplorerNodeType.SiteGroup) { builder.Separator(); builder.New("Edit Details...").Handler(() => { explorer.EditNode(node); }).End(); var rdeNodeTypes = new List<SiteExplorerNodeType>(new SiteExplorerNodeType[] { SiteExplorerNodeType.Material, SiteExplorerNodeType.Site, SiteExplorerNodeType.SiteVisit }); if (node != null && rdeNodeTypes.Contains(node.NodeType)) { builder.New("Open in Rapid Data Entry...").Handler(() => { explorer.EditRDE(node); }).Enabled(!node.IsTemplate).End(); } else { builder.New("Rapid Data Entry...").Handler(() => { explorer.EditRDE(node); }).End(); } } return builder.ContextMenu; }
public ContextMenu BuildExplorerMenu() { ContextMenuBuilder builder = new ContextMenuBuilder(FormatterFunc); if (Explorer.IsUnlocked) { if (!Taxon.IsRootNode) { builder.New("TaxonExplorer.menu.Delete", Taxon.DisplayLabel).Handler(() => { Explorer.DeleteTaxon(Taxon); }); builder.New("TaxonExplorer.menu.DeleteCurrentLevel", Taxon.DisplayLabel).Handler(() => { Explorer.DeleteLevel(Taxon); }); builder.New("TaxonExplorer.menu.Rename", Taxon.DisplayLabel).Handler(() => { Explorer.RenameTaxon(Taxon); }); builder.Separator(); builder.New("TaxonExplorer.menu.ChangeRank", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeRank(Taxon); }); if (Taxon.AvailableName == true) { builder.New("TaxonExplorer.menu.ChangeToLiterature", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeAvailable(Taxon); }); } else if (Taxon.LiteratureName == true) { builder.New("TaxonExplorer.menu.ChangeToAvailable", Taxon.DisplayLabel).Handler(() => { Explorer.ChangeAvailable(Taxon); }); } } MenuItem addMenu = BuildAddMenuItems(); if (addMenu != null && addMenu.Items.Count > 0) { builder.Separator(); builder.AddMenuItem(addMenu); } } else { builder.New("TaxonExplorer.menu.Unlock").Handler(() => { Explorer.btnLock.IsChecked = true; }); } builder.Separator(); builder.New("TaxonExplorer.menu.ExpandAll").Handler(() => { JobExecutor.QueueJob(() => { Explorer.tvwAllTaxa.InvokeIfRequired(() => { try { using (new OverrideCursor(Cursors.Wait)) { Explorer.ExpandChildren(Taxon); } } catch (Exception ex) { GlobalExceptionHandler.Handle(ex); } }); }); }); MenuItem sortMenu = BuildSortMenuItems(); if (sortMenu != null && sortMenu.HasItems) { builder.Separator(); builder.AddMenuItem(sortMenu); } builder.Separator(); builder.AddMenuItem(CreateFavoriteMenuItems()); if (!Explorer.IsUnlocked) { builder.Separator(); builder.New("TaxonExplorer.menu.Refresh").Handler(() => Explorer.Refresh()).End(); } if (!Taxon.IsRootNode) { MenuItem reports = CreateReportMenuItems(); if (reports != null && reports.HasItems) { builder.Separator(); builder.New("Distribution _Map").Handler(() => { Explorer.DistributionMap(Taxon); }).End(); builder.AddMenuItem(reports); } builder.Separator(); builder.New("Export (XML)").Handler(() => { Explorer.XMLIOExport(Taxon.TaxaID.Value); }).End(); builder.Separator(); var pinnable = Explorer.Owner.CreatePinnableTaxon(Taxon.TaxaID.Value); builder.New("_Pin to pin board").Handler(() => { PluginManager.Instance.PinObject(pinnable); }).End(); builder.Separator(); builder.New("_Permissions...").Handler(() => Explorer.EditBiotaPermissions(Taxon)).End(); builder.Separator(); builder.New("_Edit Name...").Handler(() => { Explorer.EditTaxonName(Taxon); }); builder.New("_Edit Details...").Handler(() => { Explorer.EditTaxonDetails(Taxon.TaxaID); }).End(); } return builder.ContextMenu; }