ProjectsPanel.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Configuration;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. using InABox.Wpf;
  7. using PRSDesktop.Panels.Jobs;
  8. namespace PRSDesktop;
  9. public class ProjectsPanelSettings : BaseObject, IUserConfigurationSettings, IMasterDetailSettings
  10. {
  11. [NullEditor] public DynamicSplitPanelView ViewType { get; set; } = DynamicSplitPanelView.Combined;
  12. [NullEditor]
  13. public double AnchorWidth { get; set; } = 300;
  14. [NullEditor]
  15. public Guid MasterID { get; set; }
  16. }
  17. public class ProjectsPanel : MasterDetailPanel<Job,ProjectsGrid,ProjectsPanelSettings>
  18. {
  19. protected override string MasterCaption => "Project List";
  20. protected override string DetailCaption => "Project Details";
  21. protected override string MasterColumnsTag => "Projects";
  22. protected override void CreatePages()
  23. {
  24. CreatePage<JobDetailPanel<JobDetails>>("Details");
  25. CreatePage<JobDetailPanel<JobScopePanel>>(Security.CanView<JobScope>, "Scopes");
  26. CreatePage<JobDetailPanel<JobDocumentSetPanel>>(Security.CanView<JobDocumentSet>, "Documents");
  27. CreatePage<JobDetailPanel<JobStagesPanel>>(Security.CanView<JobStage>, "Stages");
  28. CreatePage<JobDetailGrid<JobITPGrid, JobITP>>(Security.CanView<JobITP>, "ITPs");
  29. CreatePage<JobDetailGrid<JobProductMappingsGrid, JobProductMapping>>(Security.CanView<JobProductMapping>, "Product Mappings");
  30. CreatePage<JobDetailGrid<JobProductStylesGrid, JobStyle>>(Security.CanView<JobStyle>, "Product Styles");
  31. CreatePage<JobDetailPanel<JobBillOfMaterialsPanel>>(Security.CanView<JobBillOfMaterials>, "BOM");
  32. CreatePage<JobDetailPanel<JobRequisitionPanel>>(Security.CanView<JobRequisition>, "Requisitions");
  33. CreatePage<JobDetailPanel<JobStockGrid>>(Security.CanView<StockHolding>, "Stock Holdings");
  34. CreatePage<JobDetailPanel<JobPickingListPanel>>(Security.CanView<Requisition>, "Picking Lists");
  35. CreatePage<JobDetailGrid<JobOrderGrid, PurchaseOrderItem>>(Security.CanView<PurchaseOrderItem>, "Orders");
  36. CreatePage<JobDetailPanel<JobDesignPanel>>(Security.CanView<Setout>, "Designs");
  37. CreatePage<JobDetailGrid<ManufacturingGrid, ManufacturingPacket>>(Security.CanView<ManufacturingPacket>, "Manufacturing");
  38. CreatePage<JobDetailGrid<ReadyToGoGrid, DeliveryItem>>(Security.CanView<DeliveryItem>, "Dispatch");
  39. CreatePage<JobDetailPanel<DeliveryPanel>>(Security.CanView<Delivery>, "Deliveries");
  40. CreatePage<JobDetailGrid<DeliveredOnSiteGrid, DeliveryItem>>(Security.CanView<DeliveryItem>, "OnSite");
  41. CreatePage<JobDetailPanel<TaskPanel>>(Security.CanView<Kanban>, "Tasks");
  42. CreatePage<JobDetailGrid<JobEquipmentGrid, JobEquipment>>(Security.CanView<Equipment>, "EquipmentTab");
  43. CreatePage<JobDetailPanel<JobEmployeePanel>>(Security.CanView<Employee>, "Employees");
  44. CreatePage<JobDetailGrid<JobTrackerGrid, JobTracker>>(Security.CanView<GPSTracker>, "Trackers");
  45. CreatePage<JobDetailPanel<JobAssignmentPanel>>(Security.CanView<Assignment>, "Assignments");
  46. CreatePage<JobDetailGrid<JobTimesheetGrid, TimeSheet>>(Security.CanView<TimeSheet>, "Timesheets");
  47. CreatePage<JobDetailGrid<JobFormGrid, JobForm>>(Security.CanView<JobForm>, "Forms");
  48. CreatePage<JobDetailPanel<InvoicePanel>>(Security.CanView<Invoice>, "Invoices");
  49. CreatePage<JobDetailGrid<JobSpreadsheetGrid, JobSpreadsheet>>(Security.CanView<JobSpreadsheet>, "Spreadsheets");
  50. CreatePage<JobDetailPanel<JobSummaryPanel>>(Security.CanView<JobMaterial>, "Summary");
  51. }
  52. protected override void AfterLoadSettings(ProjectsPanelSettings settings)
  53. {
  54. }
  55. protected override void BeforeSaveSettings(ProjectsPanelSettings settings)
  56. {
  57. }
  58. public override void CreateToolbarButtons(IPanelHost host)
  59. {
  60. ProjectSetupActions.JobStatuses(host);
  61. ProjectSetupActions.DocumentMilestones(host);
  62. ProjectSetupActions.JobScopeStatuses(host);
  63. ProjectSetupActions.DrawingTemplates(host);
  64. host.CreateSetupSeparator();
  65. ProjectSetupActions.JobSpreadsheetTemplates(host);
  66. host.CreateSetupSeparator();
  67. ProjectSetupActions.SetoutGroups(host);
  68. if (SelectedPage is IMasterDetailPanelPage { Panel: not null } subpanel)
  69. subpanel.Panel.CreateToolbarButtons(host);
  70. // host.CreateSetupAction(new PanelAction()
  71. // {
  72. // Caption = "Job Settings",
  73. // Image = PRSDesktop.Resources.specifications,
  74. // OnExecute = action =>
  75. // {
  76. // if (DynamicGridUtils.Edit(Settings))
  77. // SaveSettings();
  78. // }
  79. // });
  80. }
  81. }