示例#1
0
        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;
            }
        }
示例#2
0
        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;
                }
            }
        }
示例#5
0
 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;
             }
         }
     }
 }
示例#6
0
 private void AddMaterialItems(ContextMenuBuilder builder, params string[] colAliases)
 {
     foreach (string col in colAliases)
     {
         if (Data.ContainsColumn(col))
         {
             if (builder.ContextMenu.HasItems)
             {
                 builder.Separator();
             }
         }
     }
 }
示例#7
0
        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;
            }
        }