Example #1
0
 public TaxonMenuFactory(TaxonViewModel taxon, TaxonExplorer explorer, MessageFormatterFunc formatter)
 {
     this.Taxon         = taxon;
     this.Explorer      = explorer;
     this.FormatterFunc = formatter;
     _builder           = new MenuItemBuilder(formatter);
 }
Example #2
0
 public TaxonMenuFactory(TaxonViewModel taxon, TaxonExplorer explorer, MessageFormatterFunc formatter)
 {
     this.Taxon = taxon;
     this.Explorer = explorer;
     this.FormatterFunc = formatter;
     _builder = new MenuItemBuilder(formatter);
 }
        private void ShowPhraseContextMenu()
        {
            PhraseViewModel phrase = lvwPhrases.SelectedItem as PhraseViewModel;

            if (phrase == null)
            {
                return;
            }

            ContextMenu menu = new ContextMenu();

            MenuItemBuilder builder = new MenuItemBuilder();

            menu.Items.Add(builder.New("Delete").Handler(() => {
                DeletePhrase(phrase);
            }).MenuItem);

            menu.Items.Add(builder.New("Rename").Handler(() => {
                RenamePhrase(phrase);
            }).MenuItem);

            menu.Items.Add(new Separator());

            menu.Items.Add(builder.New("Add new phrase value").Handler(() => {
                AddNewPhraseValue();
            }).MenuItem);

            lvwPhrases.ContextMenu = menu;
        }
        /// <summary>
        /// 获取标签生成器
        /// </summary>
        protected override TagBuilder GetTagBuilder()
        {
            var builder = new MenuItemBuilder();

            Config(builder);
            return(builder);
        }
        public MenuItemBuilderTests()
        {
            var viewContext = TestHelper.CreateViewContext();

            item    = new MenuItem();
            builder = new MenuItemBuilder(item, viewContext);
        }
        public void MenuBuilder_AddPortion_PortionAdded()
        {
            var menuItem = MenuItemBuilder.Create("Hamburger")
                           .AddPortion("Adet", 5)
                           .Build();

            Assert.AreEqual(1, menuItem.Portions.Count);
        }
Example #7
0
        private static MenuItem CreateFavoriteMenuItems(MaterialExplorer explorer, SiteExplorerNodeViewModel node)
        {
            MenuItemBuilder builder = new MenuItemBuilder();
            MenuItem        add     = builder.New("Add to favorites").MenuItem;

            add.Items.Add(builder.New("User specific").Handler(() => { explorer.Favorites.AddToFavorites(node, false); }).MenuItem);
            add.Items.Add(builder.New("Global").Handler(() => { explorer.Favorites.AddToFavorites(node, true); }).MenuItem);
            return(add);
        }
        public void CanAddOrders()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            Assert.AreEqual(2, ticket.Orders.Count);
        }
        public void MenuItemBuilder_UpdateProductTag_ProductTagAssigned()
        {
            var menuItem = MenuItemBuilder.Create("Tost")
                           .AddPortion("Küçük", 2)
                           .WithProductTag("NoSale")
                           .Build();

            Assert.AreEqual("NoSale", menuItem.Tag);
        }
        public void MenuItemBuilder_AddGroupCode_GroupCodeAssigned()
        {
            var menuItem = MenuItemBuilder.Create("Hamburger")
                           .AddPortion("Küçük", 5)
                           .WithGroupCode("İçecekler")
                           .Build();

            Assert.AreEqual("İçecekler", menuItem.GroupCode);
        }
        public void MenuBuilder_AddMultiplePortions_PortionCountCorrect()
        {
            var menuItem = MenuItemBuilder.Create("Hamburger")
                           .AddPortion("Küçük", 5)
                           .AddPortion("Büyük", 8)
                           .Build();

            Assert.AreEqual(2, menuItem.Portions.Count);
        }
Example #12
0
        public void TicketBuilder_CreatesOrder_OrderAdded()
        {
            var context = TicketBuilderTestContext.GetDefaultContext();
            var ticket  = TicketBuilder.Create(context.TicketType, context.Department)
                          .AddOrder().ForMenuItem(MenuItemBuilder.Create("Hamburger").AddPortion("Adet", 10).Build()).Do()
                          .Build();

            Assert.AreEqual(10, ticket.GetSum());
        }
        public void MergeOrders_DifferentOrderStates_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            ticket.Orders[0].SetStateValue("Status", 1, "New", 1, "", 0);
            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(2, ticket.Orders.Count);
        }
        public void CanUpdateQuantityOfMergedOrders()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            ticket.MergeOrdersAndUpdateOrderNumbers(1);

            Assert.AreEqual(2, ticket.Orders[0].Quantity);
        }
Example #15
0
        public static MenuItem CreateTemplateItems(MaterialExplorer explorer)
        {
            MenuItemBuilder builder = new MenuItemBuilder();
            MenuItem        tmp     = builder.New("Create Template").MenuItem;

            tmp.Items.Add(builder.New("_Site").Handler(() => { explorer.AddSiteTemplate(); }).MenuItem);
            tmp.Items.Add(builder.New("Site _Visit").Handler(() => { explorer.AddSiteVisitTemplate(); }).MenuItem);
            tmp.Items.Add(builder.New("_Material").Handler(() => { explorer.AddMaterialTemplate(); }).MenuItem);

            return(tmp);
        }
        public void MergeOrders_DifferentOrderQuantites_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).WithQuantity(2).Do()
                         .AddOrder().ForMenuItem(kola).WithQuantity(1).Do()
                         .Build();

            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(2, ticket.Orders.Count);
        }
        public void MergeOrders_OneOrderIsGift_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            ticket.Orders[0].CalculatePrice = false;
            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(2, ticket.Orders.Count);
        }
Example #18
0
        public void HtmlAttribute_SetsItemInnertext()
        {
            actual     = string.Empty;
            returnHtml = string.Empty;
            MenuItemBuilder target   = new MenuItemBuilder();
            string          expected = target.Text = "Level1";

            returnHtml = Utility.ControlHtmlBuilder <MenuItem, MenuItemBuilder>(target);
            actual     = Utility.GetSection(returnHtml, "li/a");
            Assert.AreEqual(expected, actual);
        }
        public void MergeOrders_OneOrderPortionDifferent_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).AddPortion("Büyük", 6).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            ticket.Orders[0].UpdatePortion(kola.Portions[1], "", null);
            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(2, ticket.Orders.Count);
            Assert.AreEqual(11, ticket.GetSum());
        }
        public void OrderMerge_CanCompareOrdersWithDifferentPrice_ReturnsFalse()
        {
            var kola   = MenuItemBuilder.Create("Kola").WithId(1).AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).WithPrice(3).Do()
                         .AddOrder().ForMenuItem(kola).Do()
                         .Build();

            var equals = OrderMerger.CanMergeOrders(ticket.Orders[0], ticket.Orders[1]);

            Assert.False(equals);
        }
        public void CanMergeMultipleOrders()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var pizza  = MenuItemBuilder.Create("Pizza").AddPortion("Adet", 10).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .AddOrder().ForMenuItem(pizza).Do(2)
                         .Build();

            ticket.MergeOrdersAndUpdateOrderNumbers(1);

            Assert.AreEqual(2, ticket.Orders.Count);
        }
Example #22
0
        public void HtmlAttribute_SetsCompleteItem()
        {
            actual = string.Empty;
            MenuItemBuilder target = new MenuItemBuilder();

            target.Text = "Level1";
            target.ChildItems(child => child.Add(childItem => childItem.Text = "Level1-1"));
            string expected = "<li><a href=\"#\">Level1</a><ul><li><a href=\"#\">Level1-1</a></li></ul></li>";

            returnHtml = Utility.ControlHtmlBuilder <MenuItem, MenuItemBuilder>(target);
            actual     = returnHtml.ToString().StringReplace();
            Assert.AreEqual(expected, actual);
        }
Example #23
0
        public void HtmlAttribute_SetsMenuItemHref()
        {
            actual     = string.Empty;
            returnHtml = string.Empty;
            MenuItemBuilder target = new MenuItemBuilder();

            target.Text = "Level1";
            string expected = "#";

            returnHtml = Utility.ControlHtmlBuilder <MenuItem, MenuItemBuilder>(target);
            actual     = Utility.GetAttribute(returnHtml, "href", "li/a");
            Assert.AreEqual(expected, actual);
        }
        public void OrderMerge_CanCompareOrdersWithOneOfThemGift_ReturnsFalse()
        {
            var kola   = MenuItemBuilder.Create("Kola").WithId(1).AddPortion("Adet", 5).AddPortion("Büyük", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do()
                         .AddOrder().ForMenuItem(kola).Do()
                         .Build();

            ticket.Orders[0].CalculatePrice = false;
            var equals = OrderMerger.CanMergeOrders(ticket.Orders[0], ticket.Orders[1]);

            Assert.False(equals);
        }
        public void OrderBuilder_CreateMenuItemWithDoublePortions_PriceCorrect()
        {
            var testContext = OrderBuilderTestContext.CreateDefault();
            var tost        = MenuItemBuilder.Create("Tost").AddPortion("Küçük", 4.5m).AddPortion("Büyük", 8).Build();
            var order       = OrderBuilder.Create()
                              .ForMenuItem(tost)
                              .WithPortion(tost.Portions[1])
                              .WithDepartment(testContext.Department)
                              .WithAccountTransactionType(testContext.AccountTransactionType)
                              .Build();

            Assert.AreEqual(8m, order.Price);
        }
        public void MergeMultipleOrders_OneOrderLocked_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var pizza  = MenuItemBuilder.Create("Pizza").AddPortion("Adet", 10).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .AddOrder().ForMenuItem(pizza).Do(2)
                         .Build();

            ticket.Orders[0].Locked = true;
            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(3, ticket.Orders.Count);
            Assert.AreEqual(30, ticket.GetSum());
        }
Example #27
0
        public void TicketBuilder_AddsOrderWithMultipleMenuItems_OrdersAdded2()
        {
            var context = TicketBuilderTestContext.GetDefaultContext();

            var hamburger = MenuItemBuilder.Create("Hamburger").AddPortion("Adet", 10).Build();
            var tost      = MenuItemBuilder.Create("Tost").AddPortion("Adet", 4).Build();

            var ticket = TicketBuilder.Create(context.TicketType, context.Department)
                         .AddOrderFor(hamburger).Do()
                         .AddOrderFor(tost).WithQuantity(2).Do()
                         .Build();

            Assert.AreEqual(10 + (4 * 2), ticket.GetSum());
        }
        public void OrderMerge_CanCompareOrdersWithDifferentOrderStates_ReturnsFalse()
        {
            var kola   = MenuItemBuilder.Create("Kola").WithId(1).AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do()
                         .AddOrder().ForMenuItem(kola).Do()
                         .Build();

            ticket.Orders[0].SetStateValue("Status", 1, "New", 1, "", 0);
            ticket.Orders[1].SetStateValue("Status", 1, "Submitted", 1, "", 0);
            var equals = OrderMerger.CanMergeOrders(ticket.Orders[0], ticket.Orders[1]);

            Assert.False(equals);
        }
Example #29
0
        public void HtmlAttribute_SetsItemChildrenInnertext()
        {
            actual     = string.Empty;
            returnHtml = string.Empty;
            MenuItemBuilder target = new MenuItemBuilder();

            target.Text = "Level1";
            string expected = "Level1-1";

            target.ChildItems(child => child.Add(childItem => childItem.Text = "Level1-1"));
            returnHtml = Utility.ControlHtmlBuilder <MenuItem, MenuItemBuilder>(target);
            actual     = Utility.GetSection(returnHtml, "li/ul/li/a");
            Assert.AreEqual(expected, actual);
        }
Example #30
0
        private static MenuItem CreateReportMenuItems(SiteExplorerNodeViewModel node, MaterialExplorer explorer)
        {
            var builder = new MenuItemBuilder();

            MenuItem reports = builder.New("Reports").MenuItem;
            var      list    = explorer.Owner.GetReportsForNode(node);

            foreach (IBioLinkReport report in list)
            {
                IBioLinkReport reportToExecute = report;
                reports.Items.Add(builder.New(report.Name).Handler(() => { PluginManager.Instance.RunReport(explorer.Owner, reportToExecute); }).MenuItem);
            }

            return(reports);
        }
        public void MergeOrders_OrdersTagged_ShouldSkipMerge()
        {
            var kola   = MenuItemBuilder.Create("Kola").AddPortion("Adet", 5).Build();
            var ticket = TicketBuilder.Create(TicketType.Default, Department.Default)
                         .AddOrder().ForMenuItem(kola).Do(2)
                         .Build();

            ticket.Orders[0].ToggleOrderTag(new OrderTagGroup {
                Name = "Service"
            }, new OrderTag {
                Name = "Pause"
            }, 0, "");
            ticket.MergeOrdersAndUpdateOrderNumbers(1);
            Assert.AreEqual(2, ticket.Orders.Count);
        }
Example #32
0
        public static MenuItem CreateTemplateItems(MaterialExplorer explorer)
        {
            MenuItemBuilder builder = new MenuItemBuilder();
            MenuItem tmp = builder.New("Create Template").MenuItem;
            tmp.Items.Add(builder.New("_Site").Handler(() => { explorer.AddSiteTemplate(); }).MenuItem);
            tmp.Items.Add(builder.New("Site _Visit").Handler(() => { explorer.AddSiteVisitTemplate(); }).MenuItem);
            tmp.Items.Add(builder.New("_Material").Handler(() => { explorer.AddMaterialTemplate(); }).MenuItem);

            return tmp;
        }
Example #33
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 #34
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);
        }
Example #35
0
 private static MenuItem CreateFavoriteMenuItems(MaterialExplorer explorer, SiteExplorerNodeViewModel node)
 {
     MenuItemBuilder builder = new MenuItemBuilder();
     MenuItem add = builder.New("Add to favorites").MenuItem;
     add.Items.Add(builder.New("User specific").Handler(() => { explorer.Favorites.AddToFavorites(node, false); }).MenuItem);
     add.Items.Add(builder.New("Global").Handler(() => { explorer.Favorites.AddToFavorites(node, true); }).MenuItem);
     return add;
 }
Example #36
0
        private static MenuItem CreateReportMenuItems(SiteExplorerNodeViewModel node, MaterialExplorer explorer)
        {
            var builder = new MenuItemBuilder();

            MenuItem reports = builder.New("Reports").MenuItem;
            var list = explorer.Owner.GetReportsForNode(node);
            foreach (IBioLinkReport report in list) {
                IBioLinkReport reportToExecute = report;
                reports.Items.Add(builder.New(report.Name).Handler(() => { PluginManager.Instance.RunReport(explorer.Owner, reportToExecute); }).MenuItem);
            }

            return reports;
        }
Example #37
0
        public void ShowContextMenu()
        {
            var item = thumbList.SelectedItem as MultimediaLinkViewModel;
            if (item != null) {
                ContextMenu menu = new ContextMenu();
                MenuItemBuilder builder = new MenuItemBuilder();

                string filename = _tempFileManager.GetContentFileName(item.MultimediaID, item.Extension);

                thumbList.ContextMenu = menu;

                var verbMenuItems = SystemUtils.GetVerbsAsMenuItems(filename);
                foreach (MenuItem verbItem in verbMenuItems) {
                    menu.Items.Add(verbItem);
                }

                menu.Items.Add(new Separator());
                menu.Items.Add(builder.New("Add multimedia").Handler(() => { AddMultimedia(); }).Enabled(!IsReadOnly).MenuItem);
                menu.Items.Add(new Separator());
                menu.Items.Add(builder.New("Delete").Handler(() => { DeleteSelectedMultimedia(); }).Enabled(!IsReadOnly).MenuItem);
                menu.Items.Add(new Separator());
                menu.Items.Add(builder.New("Show items linked to this multimedia...").Handler(() => { ShowLinkedItems(); }).MenuItem);
                menu.Items.Add(new Separator());
                menu.Items.Add(builder.New("Edit Details...").Handler(() => { ShowProperties(); }).Enabled(!IsReadOnly).MenuItem);
            }
        }
Example #38
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;
            }
        }
Example #39
0
        private static MenuItem CreateAddMenu(SiteExplorerNodeViewModel viewModel, MaterialExplorer explorer)
        {
            var addMenu = new MenuItem();
            addMenu.Header = "Add";

            var user = PluginManager.Instance.User;
            var service = new MaterialService(user);

            var builder = new MenuItemBuilder();

            switch (NodeType(viewModel)) {
                case SiteExplorerNodeType.Region:
                    addMenu.Items.Add(builder.New("New Region").Handler(() => { explorer.AddRegion(viewModel); }).MenuItem);
                    addMenu.Items.Add(builder.New("New Site Group").Handler(() => { explorer.AddSiteGroup(viewModel); }).MenuItem);
                    var addSite = builder.New("_Site").MenuItem;
                    addSite.Items.Add(builder.New("_Blank").Handler(() => { explorer.AddSite(viewModel); }).MenuItem);
                    var lastSiteTemplateId = Config.GetUser(user, "SiteExplorer.LastSiteTemplate", -1);
                    if (lastSiteTemplateId > 0) {
                        var siteTemplate = service.GetSite(lastSiteTemplateId);
                        if (siteTemplate != null) {
                            addSite.Items.Add(builder.New("As '" + siteTemplate.SiteName + "'").Handler(() => {
                                explorer.AddSite(viewModel, lastSiteTemplateId);
                            }).MenuItem);
                        }
                    }

                    addSite.Items.Add(builder.New("From _Template").Handler(() => {
                        int? templateId = explorer.ChooseTemplate(SiteExplorerNodeType.Site);
                        if (templateId.HasValue) {
                            explorer.AddSite(viewModel, templateId.Value);
                            Config.SetUser(PluginManager.Instance.User, "SiteExplorer.LastSiteTemplate", templateId.Value);
                        }
                    }).MenuItem);
                    addMenu.Items.Add(addSite);
                    break;
                case SiteExplorerNodeType.SiteGroup:
                    addMenu.Items.Add(builder.New("New Site Group").Handler(() => { explorer.AddSiteGroup(viewModel); }).MenuItem);
                    addSite = builder.New("_Site").MenuItem;
                    addSite.Items.Add(builder.New("_Blank").Handler(() => { explorer.AddSite(viewModel); }).MenuItem);

                    lastSiteTemplateId = Config.GetUser(user, "SiteExplorer.LastSiteTemplate", -1);
                    if (lastSiteTemplateId > 0) {
                        var siteTemplate = service.GetSite(lastSiteTemplateId);
                        if (siteTemplate != null) {
                            addSite.Items.Add(builder.New("As '" + siteTemplate.SiteName + "'").Handler(() => {
                                explorer.AddSite(viewModel, lastSiteTemplateId);
                            }).MenuItem);
                        }
                    }

                    addSite.Items.Add(builder.New("From _Template").Handler(() => {
                        int? templateId = explorer.ChooseTemplate(SiteExplorerNodeType.Site);
                        if (templateId.HasValue) {
                            explorer.AddSite(viewModel, templateId.Value);
                            Config.SetUser(PluginManager.Instance.User, "SiteExplorer.LastSiteTemplate", templateId.Value);
                        }
                    }).MenuItem);
                    addMenu.Items.Add(addSite);
                    break;
                case SiteExplorerNodeType.Site:
                    addMenu.Items.Add(builder.New("New Trap").Handler(() => { explorer.AddTrap(viewModel); }).MenuItem);

                    var addVisit = builder.New("Site _Visit").MenuItem;
                    addVisit.Items.Add(builder.New("_Blank").Handler(() => { explorer.AddSiteVisit(viewModel); }).MenuItem);

                    var lastSiteVisitTemplateId = Config.GetUser(user, "SiteExplorer.LastSiteVisitTemplate", -1);
                    if (lastSiteVisitTemplateId > 0) {
                        var siteVisitTemplate = service.GetSiteVisit(lastSiteVisitTemplateId);
                        if (siteVisitTemplate != null) {
                            addVisit.Items.Add(builder.New("As '" + siteVisitTemplate.SiteVisitName + "'").Handler(() => {
                                explorer.AddSiteVisit(viewModel, lastSiteVisitTemplateId);
                            }).MenuItem);
                        }
                    }

                    addVisit.Items.Add(builder.New("From _Template").Handler(() => {
                        int? templateId = explorer.ChooseTemplate(SiteExplorerNodeType.SiteVisit);
                        if (templateId.HasValue) {
                            explorer.AddSiteVisit(viewModel, templateId.Value);
                            Config.SetUser(user, "SiteExplorer.LastSiteVisitTemplate", templateId.Value);
                        }
                    }).MenuItem);
                    addMenu.Items.Add(addVisit);

                    break;
                case SiteExplorerNodeType.SiteVisit:
                    var addMaterial = builder.New("_Material").MenuItem;
                    addMaterial.Items.Add(builder.New("_Blank").Handler(() => { explorer.AddMaterial(viewModel); }).MenuItem);

                    var lastMaterialTemplateId = Config.GetUser(user, "SiteExplorer.LastMaterialTemplate", -1);
                    if (lastMaterialTemplateId > 0) {
                        var materialTemplate = service.GetMaterial(lastMaterialTemplateId);
                        if (materialTemplate != null) {
                            addMaterial.Items.Add(builder.New("As '" + materialTemplate.MaterialName + "'").Handler(() => {
                                explorer.AddMaterial(viewModel, lastMaterialTemplateId);
                            }).MenuItem);
                        }
                    }

                    addMaterial.Items.Add(builder.New("From _Template").Handler(() => {
                        int? templateId = explorer.ChooseTemplate(SiteExplorerNodeType.Material);
                        if (templateId.HasValue) {
                            explorer.AddMaterial(viewModel, templateId.Value);
                            Config.SetUser(user, "SiteExplorer.LastMaterialTemplate", templateId);
                        }
                    }).MenuItem);
                    addMenu.Items.Add(addMaterial);
                    break;
                default:
                    break;
            }

            return addMenu;
        }
Example #40
0
        private void ShowCategoryContextMenu()
        {
            PhraseCategoryViewModel category = CurrentCategory;
            if (category == null) {
                return;
            }

            ContextMenu menu = new ContextMenu();

            MenuItemBuilder builder = new MenuItemBuilder();
            menu.Items.Add(builder.New("Delete Category").Handler(() => { DeleteCategory(category); }).MenuItem);
            menu.Items.Add(builder.New("Add New Category").Handler(() => { AddPhraseCategory(); }).MenuItem);
            lvwCategories.ContextMenu = menu;
        }
Example #41
0
        private void ShowPhraseContextMenu()
        {
            PhraseViewModel phrase = lvwPhrases.SelectedItem as PhraseViewModel;

            if (phrase == null) {
                return;
            }

            ContextMenu menu = new ContextMenu();

            MenuItemBuilder builder = new MenuItemBuilder();
            menu.Items.Add(builder.New("Delete").Handler(() => {
                DeletePhrase(phrase);
            }).MenuItem);

            menu.Items.Add(builder.New("Rename").Handler(() => {
                RenamePhrase(phrase);
            }).MenuItem);

            menu.Items.Add(new Separator());

            menu.Items.Add(builder.New("Add new phrase value").Handler(() => {
                AddNewPhraseValue();
            }).MenuItem);

            lvwPhrases.ContextMenu = menu;
        }