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; } }
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 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; } }
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 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 AddMaterialItems(ContextMenuBuilder builder, params string[] colAliases) { foreach (string col in colAliases) { if (Data.ContainsColumn(col)) { if (builder.ContextMenu.HasItems) { builder.Separator(); } } } }
private void Border_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { lst.ContextMenu = null; var selected = lst.SelectedItem as AssociateReportViewModel; if (selected != null) { var builder = new ContextMenuBuilder(null); builder.New("Edit " + selected.FromViewModel.DisplayLabel + " (" + selected.RelationFromTo + ")").Handler(() => { EditAssociatedItem(selected.Model.FromCatID, selected.Model.FromIntraCatID); }).End(); builder.Separator(); builder.New("Pin " + selected.FromViewModel.DisplayLabel + " (" + selected.RelationFromTo + ") to pin board").Handler(() => PinAssociatedItem(selected.Model.FromCatID, selected.Model.FromIntraCatID)).End(); lst.ContextMenu = builder.ContextMenu; } }