Browse Source

Added action column to deleted entity grid so that even if there are no columns, you can see that items are there.

Kenric Nugteren 1 năm trước cách đây
mục cha
commit
c6c899dcf8

+ 21 - 6
prs.server/Forms/Deletions/DeletedEntityGrid.cs

@@ -2,6 +2,7 @@
 using InABox.Core;
 using InABox.Database;
 using InABox.DynamicGrid;
+using InABox.WPF;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -22,6 +23,7 @@ namespace PRSServer.Forms
             Table = table;
 
             HiddenColumns.Add(x => x.ID);
+            ActionColumns.Add(new DynamicImageColumn(Properties.Resources.view.AsBitmapImage(), ViewClick));
         }
 
         protected override void Init()
@@ -75,21 +77,34 @@ namespace PRSServer.Forms
             return Table.Rows[row.Index].ToObject<T>();
         }
 
-        protected override void DoEdit()
+        private bool ViewClick(CoreRow? row)
         {
-            if (!SelectedRows.Any())
-                return;
+            if(row is null) return false;
 
-            var item = LoadItem(SelectedRows.First());
+            ViewItem(LoadItem(row));
+            return false;
+        }
 
-            var editor = new DynamicEditorForm(typeof(T));
-            editor.ReadOnly = true;
+        private void ViewItem(T item)
+        {
+            var editor = new DynamicEditorForm(typeof(T))
+            {
+                ReadOnly = true
+            };
             editor.OnCustomiseColumns += Editor_OnCustomiseColumns;
             editor.OnDefineLookups += sender => DefineLookups(sender, Array.Empty<T>());
             editor.Items = new BaseObject[] { item };
             editor.ShowDialog();
         }
 
+        protected override void DoEdit()
+        {
+            if (!SelectedRows.Any())
+                return;
+
+            ViewItem(LoadItem(SelectedRows.First()));
+        }
+
         private void Editor_OnCustomiseColumns(object sender, DynamicGridColumns columns)
         {
             columns.Clear();

+ 1 - 1
prs.server/Forms/Deletions/DeletionsGrid.cs

@@ -114,7 +114,7 @@ namespace PRSServer.Forms
             if(result == MessageBoxResult.Yes)
             {
                 DeleteItems(rows);
-                SelectedRows = new CoreRow[] { };
+                SelectedRows = Array.Empty<CoreRow>();
                 DoChanged();
                 Refresh(false, true);
                 SelectItems(null);

+ 2 - 6
prs.server/Forms/ServerGrid.cs

@@ -1106,12 +1106,8 @@ namespace PRSServer
                 if (row == null)
                     throw new Exception("No Row Selected!");
 
-                var server = LoadItem(row);
-                if (server == null)
-                    throw new Exception("Unable to load Server!");
-
-                var properties = server.Properties as DatabaseServerProperties;
-                if (properties == null)
+                var server = LoadItem(row) ?? throw new Exception("Unable to load Server!");
+                if (server.Properties is not DatabaseServerProperties properties)
                     throw new Exception("Unable to Load Properties!");
 
                 if (!DbFactory.IsProviderSet || DbFactory.Provider is not SQLiteProvider sql || sql.URL != properties.FileName)