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); }
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; }