AdministrationWindow: Fix default value handling
This commit is contained in:
@ -203,5 +203,21 @@ namespace Elwig.Helpers {
|
|||||||
public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, IEnumerable<object>? items, Func<object?, object?> getId) {
|
public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, IEnumerable<object>? items, Func<object?, object?> getId) {
|
||||||
SelectCheckComboBoxItems(ccb, getId, items?.Select(i => getId(i)));
|
SelectCheckComboBoxItems(ccb, getId, items?.Select(i => getId(i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static object? GetInputValue(Control input) {
|
||||||
|
if (input is TextBox tb) {
|
||||||
|
return tb.Text;
|
||||||
|
} else if (input is ComboBox sb) {
|
||||||
|
return sb.SelectedItem;
|
||||||
|
} else if (input is Xceed.Wpf.Toolkit.CheckComboBox ccb) {
|
||||||
|
return ccb.SelectedItems.Cast<object>().ToArray();
|
||||||
|
} else if (input is CheckBox cb) {
|
||||||
|
return cb.IsChecked;
|
||||||
|
} else if (input is RadioButton rb) {
|
||||||
|
return rb.IsChecked;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -220,6 +220,10 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void SetDefaultValue(Control input) {
|
||||||
|
SetDefaultValue(input, ControlUtils.GetInputValue(input));
|
||||||
|
}
|
||||||
|
|
||||||
protected void UnsetDefaultValue(Control input) {
|
protected void UnsetDefaultValue(Control input) {
|
||||||
DefaultValues.Remove(input);
|
DefaultValues.Remove(input);
|
||||||
if (!InputHasChanged(input)) {
|
if (!InputHasChanged(input)) {
|
||||||
@ -257,9 +261,9 @@ namespace Elwig.Windows {
|
|||||||
} else if (input is CheckComboBox ccb) {
|
} else if (input is CheckComboBox ccb) {
|
||||||
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)OriginalValues[ccb]) ?? Array.Empty<object>());
|
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)OriginalValues[ccb]) ?? Array.Empty<object>());
|
||||||
} else if (input is CheckBox cb) {
|
} else if (input is CheckBox cb) {
|
||||||
return (OriginalValues[cb] != null) != (cb.IsChecked ?? false);
|
return OriginalValues[cb] != (object?)cb.IsChecked;
|
||||||
} else if (input is RadioButton rb) {
|
} else if (input is RadioButton rb) {
|
||||||
return (OriginalValues[rb] != null) != (rb.IsChecked ?? false);
|
return OriginalValues[rb] != (object?)rb.IsChecked;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -275,9 +279,9 @@ namespace Elwig.Windows {
|
|||||||
} else if (input is CheckComboBox ccb) {
|
} else if (input is CheckComboBox ccb) {
|
||||||
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)DefaultValues[ccb]) ?? Array.Empty<object>());
|
return !ccb.SelectedItems.Cast<object>().ToArray().SequenceEqual(((object[]?)DefaultValues[ccb]) ?? Array.Empty<object>());
|
||||||
} else if (input is CheckBox cb) {
|
} else if (input is CheckBox cb) {
|
||||||
return (DefaultValues[cb] != null) != (cb.IsChecked ?? false);
|
return DefaultValues[cb] != (object?)cb.IsChecked;
|
||||||
} else if (input is RadioButton rb) {
|
} else if (input is RadioButton rb) {
|
||||||
return (DefaultValues[rb] != null) != (rb.IsChecked ?? false);
|
return DefaultValues[rb] != (object?)rb.IsChecked;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,7 @@ namespace Elwig.Windows {
|
|||||||
EditAreaCommitmentButton.IsEnabled = false;
|
EditAreaCommitmentButton.IsEnabled = false;
|
||||||
DeleteAreaCommitmentButton.IsEnabled = false;
|
DeleteAreaCommitmentButton.IsEnabled = false;
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
ClearInputs(validate);
|
ClearInputs(validate);
|
||||||
ClearInputStates();
|
ClearInputStates();
|
||||||
}
|
}
|
||||||
@ -66,6 +67,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void FillInputs(AreaCom a) {
|
private void FillInputs(AreaCom a) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
FbNrInput.Text = a.FbNr.ToString();
|
FbNrInput.Text = a.FbNr.ToString();
|
||||||
MgNrInput.Text = a.MgNr.ToString();
|
MgNrInput.Text = a.MgNr.ToString();
|
||||||
@ -84,9 +86,14 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void InitInputs() {
|
private async void InitInputs() {
|
||||||
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
FbNrInput.Text = (await Context.NextFbNr()).ToString();
|
FbNrInput.Text = (await Context.NextFbNr()).ToString();
|
||||||
MgNrInput.Text = Member.MgNr.ToString();
|
MgNrInput.Text = Member.MgNr.ToString();
|
||||||
FinishInputFilling();
|
|
||||||
|
SetDefaultValue(FbNrInput);
|
||||||
|
ValidateRequiredInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task RenewContext() {
|
protected override async Task RenewContext() {
|
||||||
|
@ -131,17 +131,21 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void InitialInputs() {
|
private void InitialInputs() {
|
||||||
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
HandPickedInput.IsChecked = null;
|
HandPickedInput.IsChecked = null;
|
||||||
SetDefaultValue(HandPickedInput, null);
|
|
||||||
if (App.Client.IsMatzen) {
|
if (App.Client.IsMatzen) {
|
||||||
GerebeltGewogenInput.IsChecked = true;
|
GerebeltGewogenInput.IsChecked = true;
|
||||||
GerebeltGewogenInput.IsEnabled = false;
|
GerebeltGewogenInput.IsEnabled = false;
|
||||||
|
SetDefaultValue(GerebeltGewogenInput);
|
||||||
} else {
|
} else {
|
||||||
GerebeltGewogenInput.IsChecked = false;
|
GerebeltGewogenInput.IsChecked = false;
|
||||||
UnsetDefaultValue(GerebeltGewogenInput);
|
|
||||||
GerebeltGewogenInput.IsEnabled = true;
|
GerebeltGewogenInput.IsEnabled = true;
|
||||||
|
UnsetDefaultValue(GerebeltGewogenInput);
|
||||||
}
|
}
|
||||||
ClearOriginalValues();
|
|
||||||
|
SetDefaultValue(HandPickedInput);
|
||||||
ValidateRequiredInputs();
|
ValidateRequiredInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -426,6 +430,7 @@ namespace Elwig.Windows {
|
|||||||
FillInputs(d);
|
FillInputs(d);
|
||||||
} else {
|
} else {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
ClearInputs(validate);
|
ClearInputs(validate);
|
||||||
ClearInputStates();
|
ClearInputStates();
|
||||||
}
|
}
|
||||||
@ -434,6 +439,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void FillInputs(Delivery d) {
|
private void FillInputs(Delivery d) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
MgNrInput.Text = d.MgNr.ToString();
|
MgNrInput.Text = d.MgNr.ToString();
|
||||||
ControlUtils.SelectComboBoxItem(BranchInput, i => (i as Branch)?.ZwstId, d.ZwstId);
|
ControlUtils.SelectComboBoxItem(BranchInput, i => (i as Branch)?.ZwstId, d.ZwstId);
|
||||||
@ -456,6 +462,7 @@ namespace Elwig.Windows {
|
|||||||
private void FillInputs(DeliveryPart p) {
|
private void FillInputs(DeliveryPart p) {
|
||||||
FillInputs(p.Delivery);
|
FillInputs(p.Delivery);
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
SortIdInput.Text = p?.SortId ?? "";
|
SortIdInput.Text = p?.SortId ?? "";
|
||||||
ControlUtils.SelectCheckComboBoxItems(AttributesInput, p?.Attributes, i => (i as WineAttr)?.AttrId);
|
ControlUtils.SelectCheckComboBoxItems(AttributesInput, p?.Attributes, i => (i as WineAttr)?.AttrId);
|
||||||
|
@ -106,6 +106,7 @@ namespace Elwig.Windows {
|
|||||||
AreaCommitmentButton.IsEnabled = false;
|
AreaCommitmentButton.IsEnabled = false;
|
||||||
DeliveryButton.IsEnabled = false;
|
DeliveryButton.IsEnabled = false;
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
ClearInputs(validate);
|
ClearInputs(validate);
|
||||||
ClearInputStates();
|
ClearInputStates();
|
||||||
}
|
}
|
||||||
@ -113,13 +114,20 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void InitInputs() {
|
private async void InitInputs() {
|
||||||
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
MgNrInput.Text = (await Context.NextMgNr()).ToString();
|
MgNrInput.Text = (await Context.NextMgNr()).ToString();
|
||||||
EntryDateInput.Text = DateTime.Now.ToString("dd.MM.yyyy");
|
EntryDateInput.Text = DateTime.Now.ToString("dd.MM.yyyy");
|
||||||
if (Context.Branches.Count() == 1)
|
if (Context.Branches.Count() == 1)
|
||||||
BranchInput.SelectedItem = Context.Branches.First();
|
BranchInput.SelectedItem = Context.Branches.First();
|
||||||
ActiveInput.IsChecked = true;
|
ActiveInput.IsChecked = true;
|
||||||
ContactPostalInput.IsChecked = true;
|
ContactPostalInput.IsChecked = true;
|
||||||
FinishInputFilling();
|
|
||||||
|
SetDefaultValue(MgNrInput);
|
||||||
|
SetDefaultValue(EntryDateInput);
|
||||||
|
SetDefaultValue(ActiveInput);
|
||||||
|
ValidateRequiredInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task RenewContext() {
|
protected override async Task RenewContext() {
|
||||||
@ -439,6 +447,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void FillInputs(Member m) {
|
private void FillInputs(Member m) {
|
||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
|
ClearDefaultValues();
|
||||||
|
|
||||||
MgNrInput.Text = m.MgNr.ToString();
|
MgNrInput.Text = m.MgNr.ToString();
|
||||||
PredecessorMgNrInput.Text = m.PredecessorMgNr.ToString();
|
PredecessorMgNrInput.Text = m.PredecessorMgNr.ToString();
|
||||||
|
Reference in New Issue
Block a user