From a905f0921da1fe5697e4c6a376e3795004767be5 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Mon, 8 Apr 2024 11:26:36 +0200 Subject: [PATCH] Prevent adding of empty records by checking if required fields have been set --- src/BreCalClient/EditTimesControl.xaml | 4 ++-- src/BreCalClient/EditTimesControl.xaml.cs | 22 ++++++++++++++++--- .../EditTimesTerminalControl.xaml | 4 ++-- .../EditTimesTerminalControl.xaml.cs | 18 ++++++++++++++- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/src/BreCalClient/EditTimesControl.xaml b/src/BreCalClient/EditTimesControl.xaml index e933d2e..5558e6c 100644 --- a/src/BreCalClient/EditTimesControl.xaml +++ b/src/BreCalClient/EditTimesControl.xaml @@ -45,7 +45,7 @@ - + @@ -77,7 +77,7 @@ - + diff --git a/src/BreCalClient/EditTimesControl.xaml.cs b/src/BreCalClient/EditTimesControl.xaml.cs index da0be5e..5d4ee10 100644 --- a/src/BreCalClient/EditTimesControl.xaml.cs +++ b/src/BreCalClient/EditTimesControl.xaml.cs @@ -62,6 +62,16 @@ namespace BreCalClient SetLockButton(newValue); } + private void datePickerETABerth_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + CheckOKButton(); + } + + private void datePickerETDBerth_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + CheckOKButton(); + } + #endregion #region private methods @@ -172,8 +182,8 @@ namespace BreCalClient break; } - - this.buttonOK.IsEnabled = true; + CheckOKButton(); + } private void SetLockButton(bool newValue) @@ -192,6 +202,12 @@ namespace BreCalClient } } + private void CheckOKButton() + { + this.buttonOK.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) ? + this.datePickerETABerth.Value.HasValue : this.datePickerETDBerth.Value.HasValue; + } + #endregion #region clear value event handler @@ -237,6 +253,6 @@ namespace BreCalClient } #endregion - + } } diff --git a/src/BreCalClient/EditTimesTerminalControl.xaml b/src/BreCalClient/EditTimesTerminalControl.xaml index a253626..2716ade 100644 --- a/src/BreCalClient/EditTimesTerminalControl.xaml +++ b/src/BreCalClient/EditTimesTerminalControl.xaml @@ -38,7 +38,7 @@ - + @@ -69,7 +69,7 @@ - + diff --git a/src/BreCalClient/EditTimesTerminalControl.xaml.cs b/src/BreCalClient/EditTimesTerminalControl.xaml.cs index e705818..7bc4949 100644 --- a/src/BreCalClient/EditTimesTerminalControl.xaml.cs +++ b/src/BreCalClient/EditTimesTerminalControl.xaml.cs @@ -76,6 +76,16 @@ namespace BreCalClient this.comboBoxPierside.SelectedIndex = -1; } + private void datePickerOperationStart_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + this.CheckOKButton(); + } + + private void datePickerOperationEnd_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + this.CheckOKButton(); + } + #endregion #region private methods @@ -136,7 +146,13 @@ namespace BreCalClient this.comboBoxPierside.IsEnabled = ShipcallModel.Shipcall?.Type == ShipcallType.Arrival; this.textBoxBerthRemarks.IsEnabled = ShipcallModel.Shipcall?.Type == ShipcallType.Arrival; this.textBoxRemarks.IsEnabled = true; - this.buttonOK.IsEnabled = true; + this.CheckOKButton(); + } + + private void CheckOKButton() + { + this.buttonOK.IsEnabled = (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) ? this.datePickerOperationStart.Value.HasValue : + this.datePickerOperationEnd.Value.HasValue; } #endregion