Просмотр исходного кода

Projects/ Designs and Maunfacturing/Designs can now have separate filter settings

frogsoftware 1 неделя назад
Родитель
Сommit
1c64e42848

+ 2 - 1
prs.desktop/MainWindow.xaml.cs

@@ -63,6 +63,7 @@ using InABox.Formatters;
 using PRSDesktop.Forms.Issues;
 using Brushes = System.Windows.Media.Brushes;
 using System.Windows.Media.Imaging;
+using PRSDesktop.Panels.Staging;
 using Button = System.Windows.Controls.Button;
 using Visibility = System.Windows.Visibility;
 using SharpVectors.Converters;
@@ -928,7 +929,7 @@ public partial class MainWindow : IPanelHostControl
     private Fluent.RibbonTabItem? SetupManufacturingTab() =>
         CreateTab<ViewDesktopManufacturingTab>("Manufacturing", x => x
             .NewGroup(x => x
-                .Add<StagingPanel>("Design Management", PRSDesktop.Resources.design,
+                .Add<DesignManagementPanel>("Design Management", PRSDesktop.Resources.design,
                     Security.CanView<Job>() && Security.IsAllowed<ViewDesktopDesignManagementScreen>()))
             .NewGroup(x => x
                 .Add<ManufacturingPanel>("Manufacturing Status", PRSDesktop.Resources.factory,

+ 1 - 1
prs.desktop/Panels/Jobs/Designs/JobDesignPanel.xaml

@@ -7,5 +7,5 @@
              xmlns:dynamicGrid="clr-namespace:InABox.DynamicGrid;assembly=InABox.Wpf"
              mc:Ignorable="d"
              d:DesignHeight="450" d:DesignWidth="800">
-    <local:StagingPanel x:Name="UnapprovedDesigns" ColumnsTag="JobDesigns" />
+    <local:StagingPanel x:Name="UnapprovedDesigns" UserSettingsTag="JobDesigns" />
 </UserControl>

+ 10 - 0
prs.desktop/Panels/Staging/DesignManagementPanel.xaml

@@ -0,0 +1,10 @@
+<UserControl x:Class="PRSDesktop.DesignManagementPanel"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:prsDesktop="clr-namespace:PRSDesktop"
+             mc:Ignorable="d"
+             d:DesignHeight="300" d:DesignWidth="300">
+    <prsDesktop:StagingPanel x:Name="Designs" UserSettingsTag="DesignManagement" />
+</UserControl>

+ 65 - 0
prs.desktop/Panels/Staging/DesignManagementPanel.xaml.cs

@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Windows.Controls;
+using Comal.Classes;
+using InABox.Configuration;
+using InABox.Core;
+using InABox.DynamicGrid;
+using InABox.Wpf;
+
+namespace PRSDesktop
+{
+
+    /// <summary>
+    ///     Interaction logic for JobDesigns.xaml
+    /// </summary>
+    public partial class DesignManagementPanel : UserControl, IPanel<Setout>
+    {
+        public DesignManagementPanel()
+        {
+            InitializeComponent();
+            
+        }
+
+        public bool IsReady { get; set; }
+
+        public event DataModelUpdateEvent? OnUpdateDataModel;
+
+        public void CreateToolbarButtons(IPanelHost host)
+        {
+            StagingPanel.SetoutsConfigurationSettings(host, () => new GlobalConfiguration<StagingPanellSettings>().Load());
+        }
+
+        public string SectionName => "Job Designs";
+        
+        public DataModel DataModel(Selection selection)
+        {
+            return Designs.DataModel(selection);
+        }
+
+        public void Refresh()
+        {
+            Designs.Refresh();
+        }
+
+        public Dictionary<string, object[]> Selected()
+        {
+            return new Dictionary<string, object[]>();
+        }
+
+        public void Setup()
+        {
+            Designs.Setup();
+        }
+
+        public void Shutdown(CancelEventArgs? cancel)
+        {
+        }
+
+        public void Heartbeat(TimeSpan time)
+        {
+        }
+    }
+}

+ 32 - 4
prs.desktop/Panels/Staging/Setouts/StagingSetoutGrid.cs

@@ -176,6 +176,18 @@ public class StagingSetoutGrid : DynamicDataGrid<Setout>
         base.Reload(criteria, columns, ref sort, token, action);
     }
 
+    protected override DynamicGridColumns LoadColumns()
+    {
+        return base.LoadColumns();
+    }
+
+    public override DynamicGridColumns GenerateColumns()
+    {
+        var result = new DynamicGridColumns();
+        result.ExtractColumns(typeof(Setout));
+        return result;
+    }
+
     public override Setout CreateItem()
     {
         var result = base.CreateItem();
@@ -737,16 +749,32 @@ public class StagingSetoutGrid : DynamicDataGrid<Setout>
 
         var logikalTask = Task.Run(() => new GlobalConfiguration<LogikalSettings>().Load());
         var v6Task = Task.Run(() => new GlobalConfiguration<V6Settings>().Load());
-        var settingsTask = Task.Run(() => new UserConfiguration<StagingSetoutGridSettings>().Load());
+        var settingsTask = Task.Run(() => new UserConfiguration<StagingSetoutGridSettings>(_userSettingsTag).Load());
 
         _settings = settingsTask.Result;
         _v6Settings = v6Task.Result;
         _logikalSettings = logikalTask.Result;
 
-        FilterComponent.SetSettings(_settings.Filters, false);
-        FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
+        //FilterComponent.SetSettings(_settings.Filters, false);
+        //FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
     }
 
+    private string _userSettingsTag = "";
+    public string UserSettingsTag
+    {
+        get => _userSettingsTag;
+        set
+        {
+            _userSettingsTag = value;
+            FilterComponent.OnFiltersSelected -= FilterComponent_OnFilterSelected;
+            _settings = new UserConfiguration<StagingSetoutGridSettings>(_userSettingsTag).Load();
+            FilterComponent.SetSettings(_settings.Filters, false);
+            FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
+
+        }
+    }
+    
+
     protected override void DoReconfigure(DynamicGridOptions options)
     {
         base.DoReconfigure(options);
@@ -1518,7 +1546,7 @@ public class StagingSetoutGrid : DynamicDataGrid<Setout>
     private void FilterComponent_OnFilterSelected(DynamicGridSelectedFilterSettings settings)
     {
         _settings.Filters = settings;
-        new UserConfiguration<StagingSetoutGridSettings>().Save(_settings);
+        new UserConfiguration<StagingSetoutGridSettings>(_userSettingsTag).Save(_settings);
     }
     
     protected override Dictionary<string, object?> EditorValueChanged(IDynamicEditorForm editor, Setout[] items, string name, object value)

+ 1 - 1
prs.desktop/Panels/Staging/StagingPanel.xaml

@@ -30,7 +30,7 @@
                 </Grid.RowDefinitions>
                 <local:StagingSetoutGrid 
                     Grid.Row="0" 
-                    x:Name="stagingSetoutGrid" 
+                    x:Name="stagingSetoutGrid"
                     OnCustomiseSetouts="stagingSetoutGrid_OnCustomiseSetouts" 
                     OnParseComponentFile="stagingSetoutGrid_OnParseComponentFile"
                     OnDoubleClick="StagingSetoutGrid_OnOnDoubleClick"

+ 3 - 3
prs.desktop/Panels/Staging/StagingPanel.xaml.cs

@@ -49,10 +49,10 @@ public partial class StagingPanel : UserControl, IPanel<Setout>
 
     private StagingPanellSettings _settings = new StagingPanellSettings();
 
-    public string ColumnsTag
+    public string UserSettingsTag
     {
-        get => stagingSetoutGrid.ColumnsTag;
-        set => stagingSetoutGrid.ColumnsTag = value;
+        get => stagingSetoutGrid.UserSettingsTag;
+        set => stagingSetoutGrid.UserSettingsTag = value;
     }
 
     private Job? _job;