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