Example #1
0
        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());
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }
Example #4
0
        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;
        }
Example #6
0
        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;
        }
Example #7
0
        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);
        }
Example #9
0
    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();
        }
    }
Example #10
0
        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;
        }
Example #12
0
        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());
            }
        }
Example #13
0
        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());
        }
Example #14
0
        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();
        }
Example #15
0
    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;
            }
        }
Example #18
0
        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;
            }
        }
Example #20
0
        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;
            }
        }
Example #23
0
        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);
        }
Example #24
0
        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;
                }
            }
        }
Example #26
0
        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);
        }
Example #27
0
        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);
                }
            }
        }
Example #30
0
    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;
        }
    }
Example #31
0
        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;
                }
            }
        }
 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;
         }
     }
 }
Example #33
0
        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;
            }
        }
Example #34
0
        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);
                    }
                }
            }
        }
Example #35
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;
             }
         }
     }
 }
Example #36
0
 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;
     }
 }
Example #37
0
 void lvw_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
 {
     var builder = new ContextMenuBuilder(null);
     builder.New("Edit loan").Handler(() => { EditSelectedLoan(); }).End();
     lvw.ContextMenu = builder.ContextMenu;
 }
Example #38
0
        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;
            }
        }
Example #39
0
        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;
                }
            }
        }
Example #41
0
 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;
     }
 }
Example #42
0
        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;
        }
Example #43
0
        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;
        }
Example #44
0
        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;
        }
Example #45
0
        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;
        }
Example #46
0
        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;
            }
        }
Example #48
0
 private void AddMaterialItems(ContextMenuBuilder builder, params string[] colAliases)
 {
     foreach (string col in colAliases) {
         if (Data.ContainsColumn(col)) {
             if (builder.ContextMenu.HasItems) {
                 builder.Separator();
             }
         }
     }
 }
Example #49
0
        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;
            }
        }
Example #50
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;
            }
        }
Example #51
0
        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;
        }
Example #52
0
        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;
        }
Example #53
0
        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;
        }