Procházet zdrojové kódy

DirectEdit swap modes

Kenric Nugteren před 1 rokem
rodič
revize
4107ce53ee

+ 1 - 0
prs.desktop/PRSDesktop.csproj

@@ -30,6 +30,7 @@
     
     <ItemGroup>
         <None Remove="Resources\001-box.png" />
+        <None Remove="Resources\alter.png" />
         <None Remove="Resources\pdficon.png" />
         <Resource Include="Resources\001-box.png">
             <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

+ 27 - 18
prs.desktop/Panels/DataEntry/DataEntryPanel.xaml.cs

@@ -31,6 +31,23 @@ namespace PRSDesktop
         private Entity? _entity;
 
         private Button? _process;
+
+        private bool _isChanged;
+        private bool IsChanged
+        {
+            get => _isChanged;
+            set
+            {
+                if(_isChanged != value)
+                {
+                    _isChanged = value;
+                    Editor.HideButtons = !value;// (_entity?.IsChanged() != true) && (_originalID == _entityID);
+                    if (_process != null)
+                        _process.IsEnabled = value;// ((_entity?.ID ?? Guid.Empty) != Guid.Empty) || (_entity?.IsChanged() != false);
+                    _documents._dataEntryGrid.IsEnabled = !value;// (_entity?.IsChanged() != true) && (_originalID == _entityID);
+                }
+            }
+        }
         
         public void Select(Type? type, Guid id)
         {
@@ -67,6 +84,8 @@ namespace PRSDesktop
         public void Setup()
         {
             _documents.Setup();
+
+            IsChanged = false;
         }
         
         public void Refresh()
@@ -133,9 +152,9 @@ namespace PRSDesktop
 
         public void Shutdown(CancelEventArgs? cancel)
         {
-            if (_entity?.IsChanged() == true)
+            if (cancel != null && _isChanged)
                 CheckSaved(cancel);
-            if (cancel.Cancel == false) 
+            if (cancel?.Cancel != true) 
                 _documents.Shutdown(cancel);
         }
 
@@ -181,8 +200,7 @@ namespace PRSDesktop
         {
 
             DetailBorder.Child = null;
-            
-            CheckChanged();
+            IsChanged = false;
             
             //if (_popup is UIElement element)
             //    DetailHeader.Children.Remove(element);
@@ -202,9 +220,9 @@ namespace PRSDesktop
             Editor.SetValue(Grid.ColumnProperty, 0);
             Editor.SetValue(Grid.ColumnSpanProperty, 4);
 
-            Editor.OnAfterEditorValueChanged += (sender, column) =>
+            Editor.OnAfterEditorValueChanged += (sender, args) =>
             {
-                CheckChanged();
+                IsChanged = IsChanged || (_entity?.IsChanged() == true || _originalID != _entityID);
                 return null;
             };
 
@@ -214,7 +232,7 @@ namespace PRSDesktop
                 _entityID = _originalID;
                 Select(_selectedType,_entityID);
             };
-            Editor.OnChanged += (sender, args) => CheckChanged();
+            Editor.OnChanged += (sender, args) => IsChanged = true;
             Editor.OnFormCustomiseEditor += (sender, items, column, editor) =>
             {
                 if ((editor is BaseCodeEditor be) && editor.Editable.EditorVisible())
@@ -292,6 +310,7 @@ namespace PRSDesktop
             if (!cancel.Cancel)
             {
                 _originalID = _entityID;
+                IsChanged = false;
                 var row = _documents._dataEntryGrid.SelectedRows.FirstOrDefault();
                 if (row != null)
                 {
@@ -311,15 +330,6 @@ namespace PRSDesktop
                     
                 }
             }
-            CheckChanged();
-        }
-
-        private void CheckChanged()
-        {
-            Editor.HideButtons = (_entity?.IsChanged() != true) && (_originalID == _entityID);
-            if (_process != null)
-                _process.IsEnabled = ((_entity?.ID ?? Guid.Empty) != Guid.Empty) || (_entity?.IsChanged() != false);
-            _documents._dataEntryGrid.IsEnabled = (_entity?.IsChanged() != true) && (_originalID == _entityID);
         }
 
         private void PopulateEditor()
@@ -355,8 +365,7 @@ namespace PRSDesktop
             };
             _process.Click += (sender, args) => DoSave(true);
             Editor.AddButton(_process);
-            CheckChanged();
-            
+            IsChanged = false;
         }
         
     }

+ 1 - 1
prs.desktop/Panels/Products/Reservation Management/JobRequisitionPurchasing.xaml.cs

@@ -106,7 +106,7 @@ namespace PRSDesktop
             
             EditorChanged = false;
 
-            Editor.OnAfterEditorValueChanged += (sender, column) =>
+            Editor.OnAfterEditorValueChanged += (sender, args) =>
             {
                 EditorChanged = true;
                 Editor.HideButtons = false;

+ 9 - 5
prs.desktop/Panels/Suppliers/PurchaseOrders/SupplierPurchaseOrderItemOneToMany.cs

@@ -87,8 +87,12 @@ namespace PRSDesktop
             base.DoReconfigure(options);
             if (!ReadOnly && Security.CanEdit<PurchaseOrderItem>())
             {
-                options.Add(DynamicGridOption.DirectEdit)
-                    .Add(DynamicGridOption.DragTarget);
+                options.Add(DynamicGridOption.DirectEdit);
+                options.Add(DynamicGridOption.DragTarget);
+            }
+            if (!IsDirectEditMode(options))
+            {
+                options.Add(DynamicGridOption.FilterRows);
             }
         }
 
@@ -337,10 +341,10 @@ namespace PRSDesktop
             base.SelectItems(rows);
         }
 
-        protected override void OnAfterEditorValueChanged(DynamicEditorGrid grid, PurchaseOrderItem[] items, string columnnname, Dictionary<string, object?> changes)
+        protected override void OnAfterEditorValueChanged(DynamicEditorGrid grid, PurchaseOrderItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
         {
-            base.OnAfterEditorValueChanged(grid, items, columnnname, changes);
-            if (columnnname.Equals("Product.ID") || columnnname.Equals("Job.ID") || columnnname.StartsWith("Dimensions."))
+            base.OnAfterEditorValueChanged(grid, items, args, changes);
+            if (args.ColumnName.Equals("Product.ID") || args.ColumnName.Equals("Job.ID") || args.ColumnName.StartsWith("Dimensions."))
             {
                 PurchaseOrder.UpdateCosts(
                     items, 

+ 1 - 0
prs.desktop/Resources.Designer.cs

@@ -1,6 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.

+ 1 - 1
prs.desktop/Resources.resx

@@ -774,6 +774,6 @@
     <value>Resources\emailreport.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="post" type="System.Resources.ResXFileRef, System.Windows.Forms">
-      <value>Resources\post.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+    <value>Resources\post.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>