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