DeliveryAdminWindow: Force user to input gerebelt gewogen input
All checks were successful
Test / Run tests (push) Successful in 2m2s

This commit is contained in:
2024-07-26 19:47:47 +02:00
parent f09753ccc2
commit 935b31f6e3
5 changed files with 39 additions and 23 deletions

View File

@ -109,7 +109,7 @@ namespace Elwig.Windows {
private void OnClosing(object? sender, CancelEventArgs evt) {
if ((IsCreating || IsEditing) && HasChanged) {
var r = System.Windows.MessageBox.Show("Soll das Fenster wirklich geschlossen werden?", "Schließen bestätigen",
var r = MessageBox.Show("Soll das Fenster wirklich geschlossen werden?", "Schließen bestätigen",
MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r != MessageBoxResult.Yes) {
evt.Cancel = true;
@ -166,7 +166,7 @@ namespace Elwig.Windows {
ControlUtils.SetInputInvalid(input);
} else if (input is ListBox lb && lb.SelectedItem == null && lb.ItemsSource != null && lb.ItemsSource.Cast<object>().Any()) {
ControlUtils.SetInputInvalid(input);
} else if (input is CheckBox ckb && ckb.IsChecked != true) {
} else if (input is CheckBox ckb && ((ckb.IsThreeState && ckb.IsChecked == null) || (!ckb.IsThreeState && ckb.IsChecked != true))) {
ControlUtils.SetInputInvalid(input);
Valid[input] = false;
} else if (input is RadioButton rb && rb.IsChecked != true) {
@ -402,20 +402,24 @@ namespace Elwig.Windows {
protected bool InputLostFocus(TextBox input, ValidationResult res, string? msg = null) {
if (DoShowWarningWindows && !res.IsValid && !IsClosing && (IsEditing || IsCreating))
System.Windows.MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
return res.IsValid;
}
protected void CheckBox_Changed(object sender, RoutedEventArgs evt) {
var input = (CheckBox)sender;
if (SenderIsRequired(input) && input.IsChecked != true) {
if (SenderIsRequired(input) && ((input.IsThreeState && input.IsChecked == null) || (!input.IsThreeState && input.IsChecked != true))) {
ValidateInput(input, false);
ControlUtils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
ControlUtils.SetInputChanged(input);
} else if (InputIsNotDefault(input)) {
ControlUtils.SetInputNotDefault(input);
} else {
ControlUtils.ClearInputState(input);
ValidateInput(input, true);
if (InputHasChanged(input)) {
ControlUtils.SetInputChanged(input);
} else if (InputIsNotDefault(input)) {
ControlUtils.SetInputNotDefault(input);
} else {
ControlUtils.ClearInputState(input);
}
}
UpdateButtons();
}
@ -423,13 +427,17 @@ namespace Elwig.Windows {
protected void RadioButton_Changed(object sender, RoutedEventArgs evt) {
var input = (RadioButton)sender;
if (SenderIsRequired(input) && input.IsChecked != true) {
ValidateInput(input, false);
ControlUtils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
ControlUtils.SetInputChanged(input);
} else if (InputIsNotDefault(input)) {
ControlUtils.SetInputNotDefault(input);
} else {
ControlUtils.ClearInputState(input);
ValidateInput(input, true);
if (InputHasChanged(input)) {
ControlUtils.SetInputChanged(input);
} else if (InputIsNotDefault(input)) {
ControlUtils.SetInputNotDefault(input);
} else {
ControlUtils.ClearInputState(input);
}
}
UpdateButtons();
}