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

Split up DynamicGrid and a new BaseDynamicGrid, in order to make a CoreTableGrid.

Kenric Nugteren 6 месяцев назад
Родитель
Сommit
1147cd642f

+ 2 - 2
inabox.wpf/DynamicGrid/ColumnFilter/DateTreeDynamicGridColumnFilter.cs

@@ -19,7 +19,7 @@ public class DateTreeDynamicGridColumnFilter : IDynamicGridColumnFilter
 {
     public event Action<IDynamicGridColumnFilter>? FilterChanged;
 
-    public IDynamicGrid Grid { get; set; }
+    public IBaseDynamicGrid Grid { get; set; }
     public DynamicColumnBase Column { get; set; }
 
     private DateTime[] _dates = [];
@@ -141,7 +141,7 @@ public class DateTreeDynamicGridColumnFilter : IDynamicGridColumnFilter
         }
     }
 
-    public DateTreeDynamicGridColumnFilter(IDynamicGrid grid, DynamicColumnBase column)
+    public DateTreeDynamicGridColumnFilter(IBaseDynamicGrid grid, DynamicColumnBase column)
     {
         Grid = grid;
         Column = column;

+ 1 - 1
inabox.wpf/DynamicGrid/ColumnFilter/IDynamicGridColumnFilter.cs

@@ -20,7 +20,7 @@ public interface IDynamicGridColumnFilter
 
     bool IsFiltered();
 
-    IEnumerable<CoreRow> GetRowsToFilter(IDynamicGrid grid)
+    IEnumerable<CoreRow> GetRowsToFilter(IBaseDynamicGrid grid)
     {
         IEnumerable<CoreRow> rows = grid.Data.Rows;
         foreach(var column in grid.ColumnList)

+ 2 - 2
inabox.wpf/DynamicGrid/ColumnFilter/StandardDynamicGridColumnFilter.cs

@@ -17,9 +17,9 @@ using System.Windows.Media;
 
 namespace InABox.DynamicGrid;
 
-public class StandardDynamicGridColumnFilter(IDynamicGrid grid, DynamicColumnBase column) : CheckBoxDynamicGridColumnFilter
+public class StandardDynamicGridColumnFilter(IBaseDynamicGrid grid, DynamicColumnBase column) : CheckBoxDynamicGridColumnFilter
 {
-    public IDynamicGrid Grid { get; set; } = grid;
+    public IBaseDynamicGrid Grid { get; set; } = grid;
     public DynamicColumnBase Column { get; set; } = column;
 
     protected override FilterItem[] GetData()

+ 1 - 1
inabox.wpf/DynamicGrid/Controls/MasterList.xaml.cs

@@ -104,7 +104,7 @@ namespace InABox.DynamicGrid
                 CoreTable lookups = null;
                 var col = grid.MasterColumns.First(x => x.ColumnName.Equals(GroupBy)).Editor as ILookupEditor;
                 if (col != null)
-                    lookups = col.Values(Type, GroupBy);
+                    lookups = col.Values(GroupBy);
                 //grid.ConfigureColumns(grid.MasterColumns, true);
                 //grid.AddHiddenColumn(GroupBy);
 

+ 1 - 2
inabox.wpf/DynamicGrid/DynamicGridColumn/DynamicGridColumnNameColumn.cs

@@ -10,8 +10,7 @@ using System.Windows;
 
 namespace InABox.DynamicGrid;
 
-public class DynamicGridColumnNameColumn<TEntity> : DynamicGridEditorColumn<TEntity, DynamicColumnNameEditor, GridTextColumn, TreeGridTextColumn>
-    where TEntity : BaseObject, new()
+public class DynamicGridColumnNameColumn : DynamicGridEditorColumn<DynamicColumnNameEditor, GridTextColumn, TreeGridTextColumn>
 {
     protected override void Configure(GridTextColumn column, DynamicColumnNameEditor editor)
     {

+ 2 - 2
inabox.wpf/DynamicGrid/DynamicGridStyle.cs

@@ -305,11 +305,11 @@ public class DynamicGridCellStyleParameters
 public class DynamicGridGridCellStyleConverter<T> : IValueConverter
 {
 
-    private readonly IDynamicGrid _grid;
+    private readonly IBaseDynamicGrid _grid;
     
     private readonly Func<CoreRow, DynamicColumnBase, T> _converter;
     
-    public DynamicGridGridCellStyleConverter(IDynamicGrid grid, Func<CoreRow, DynamicColumnBase, T> converter)
+    public DynamicGridGridCellStyleConverter(IBaseDynamicGrid grid, Func<CoreRow, DynamicColumnBase, T> converter)
     {
         _grid = grid ?? throw new ArgumentNullException(nameof(grid));
         _converter = converter ?? throw new ArgumentNullException(nameof(converter));

Разница между файлами не показана из-за своего большого размера
+ 699 - 357
inabox.wpf/DynamicGrid/Grids/DynamicGrid.cs


+ 24 - 21
inabox.wpf/DynamicGrid/Grids/IDynamicGrid.cs

@@ -20,13 +20,12 @@ public enum DynamicGridButtonPosition
 }
 
 
-public interface IDynamicGrid
+public interface IBaseDynamicGrid
 {
     bool IsReady { get; }
 
     Thickness Margin { get; set; }
 
-    DynamicGridColumns MasterColumns { get; }
     DynamicGridColumns VisibleColumns { get; }
     DynamicActionColumns ActionColumns { get; }
 
@@ -51,13 +50,7 @@ public interface IDynamicGrid
 
     void DoChanged();
 
-    void InitialiseEditorForm(IDynamicEditorForm editor, object[] items, Func<Type, CoreTable>? pageDataHandler = null, bool preloadPages = false);
-    bool EditItems(object[] items, Func<Type, CoreTable?>? PageDataHandler = null, bool PreloadPages = false);
-
-    //bool DirectEdit(CoreTable data);
-
     event OnFilterRecord OnFilterRecord;
-    event OnCreateItem OnCreateItem;
 
     event OnDoubleClick? OnDoubleClick;
 
@@ -87,26 +80,13 @@ public interface IDynamicGrid
 
     void UpdateButton(Button button, BitmapImage? image, string? text, string? tooltip = null);
 
-    event OnDefineFilter OnDefineFilter;
-
     event OnPrintData OnPrintData;
 
     event BeforeRefreshEventHandler BeforeRefresh;
     
     event AfterRefreshEventHandler AfterRefresh;
-    
-    event EntitySaveEvent? OnAfterSave;
-    event EntitySaveEvent? OnBeforeSave;
 
     int DesiredWidth();
-    
-    event GenerateColumnsEvent? OnGenerateColumns;
-    event SaveColumnsEvent? OnSaveColumns;
-    event GetAvailableColumnsEvent? GetAvailableColumns;
-
-    DynamicGridColumns ExtractColumns(IColumns columns);
-
-    void AddHiddenColumn(string column);
 
     void UpdateRow<TType>(CoreRow row, string column, TType value, bool refresh = true);
 
@@ -119,6 +99,29 @@ public interface IDynamicGrid
     IDynamicGridColumnFilter? GetColumnFilter(DynamicColumnBase column);
 }
 
+public interface IDynamicGrid : IBaseDynamicGrid
+{
+    event OnCreateItem OnCreateItem;
+    
+    event EntitySaveEvent? OnAfterSave;
+    event EntitySaveEvent? OnBeforeSave;
+    
+    event GenerateColumnsEvent? OnGenerateColumns;
+    event SaveColumnsEvent? OnSaveColumns;
+    event GetAvailableColumnsEvent? GetAvailableColumns;
+
+    event OnDefineFilter OnDefineFilter;
+
+    DynamicGridColumns MasterColumns { get; }
+
+    void AddHiddenColumn(string column);
+
+    void InitialiseEditorForm(IDynamicEditorForm editor, object[] items, Func<Type, CoreTable>? pageDataHandler = null, bool preloadPages = false);
+    bool EditItems(object[] items, Func<Type, CoreTable?>? PageDataHandler = null, bool PreloadPages = false);
+
+    DynamicGridColumns ExtractColumns(IColumns columns);
+}
+
 public interface IDynamicGrid<T> : IDynamicGrid
     where T : BaseObject, new()
 {

+ 2 - 2
inabox.wpf/DynamicGrid/UIComponent/DynamicGridGridUIComponent.cs

@@ -1268,8 +1268,6 @@ public class DynamicGridGridUIComponent : IDynamicGridUIComponent, IDynamicGridG
             
             DataGrid.Columns.Add(newColumn);
             ColumnList.Add(column);
-            foreach (var extra in newcol.ExtraColumns)
-                Parent.AddHiddenColumn(extra);
         }
     }
 
@@ -1708,6 +1706,8 @@ public class DynamicGridGridUIComponent<T> : DynamicGridGridUIComponent, IDynami
                 typed.GetEntity = () => _editingObject?.Object;
                 typed.EntityChanged += DoEntityChanged;
             }
+            foreach (var extra in newColumn.ExtraColumns)
+                Parent.AddHiddenColumn(extra);
             return true;
         }
         else

+ 1 - 1
inabox.wpf/DynamicGrid/UIComponent/IDynamicGridUIComponent.cs

@@ -12,7 +12,7 @@ using System.Windows.Input;
 
 namespace InABox.DynamicGrid;
 
-public interface IDynamicGridUIComponentParent : IDynamicGrid
+public interface IDynamicGridUIComponentParent : IBaseDynamicGrid
 {
     bool IsRefreshing { get; }
 

Некоторые файлы не были показаны из-за большого количества измененных файлов