diff --git a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml
index 837f6a4..8e7132a 100644
--- a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml
+++ b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml
@@ -44,9 +44,9 @@
-
+
-
+
@@ -61,8 +61,8 @@
-
-
+
+
diff --git a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
index 7cad474..3617b03 100644
--- a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
+++ b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
@@ -14,6 +14,12 @@ namespace BreCalClient
///
public partial class EditTimesAgencyIncomingControl : Window, IEditTimesControl
{
+ #region Fields
+
+ bool _editing = false;
+
+ #endregion
+
#region Construction
public EditTimesAgencyIncomingControl()
@@ -55,10 +61,10 @@ namespace BreCalClient
allowBSMD = p.IsFlagSet(ParticipantFlag.ALLOW_BSMD);
}
- bool enableControls = (this.Times.ParticipantId == App.Participant.Id) ||
+ _editing = (this.Times.ParticipantId == App.Participant.Id) ||
(App.Participant.IsTypeFlagSet(ParticipantType.BSMD) && allowBSMD);
- this.EnableControls(enableControls);
+ this.EnableControls();
}
@@ -240,37 +246,50 @@ namespace BreCalClient
}
}
- private void EnableControls(bool isEnabled)
+ private void EnableControls()
{
- this.datePickerETA.IsEnabled = isEnabled;
- this.comboBoxArrivalBerth.IsEnabled = isEnabled;
- this.comboBoxPierside.IsEnabled = isEnabled;
- this.textBoxBerthRemarks.IsEnabled = isEnabled;
- this.doubleUpDownDraft.IsEnabled = isEnabled;
- this.datePickerTidalWindowFrom.IsEnabled = isEnabled;
- this.datePickerTidalWindowTo.IsEnabled = isEnabled;
- this.checkBoxCanceled.IsEnabled = isEnabled;
+ this.datePickerETA.IsEnabled = _editing;
+ this.comboBoxArrivalBerth.IsEnabled = _editing;
+ this.comboBoxPierside.IsEnabled = _editing;
+ this.textBoxBerthRemarks.IsEnabled = _editing;
+ this.doubleUpDownDraft.IsEnabled = _editing;
+ this.datePickerTidalWindowFrom.IsEnabled = _editing;
+ this.datePickerTidalWindowTo.IsEnabled = _editing;
+ this.checkBoxCanceled.IsEnabled = _editing;
- this.checkBoxAnchored.IsEnabled = isEnabled;
+ this.checkBoxAnchored.IsEnabled = _editing;
- this.comboBoxTug.IsEnabled = isEnabled;
- this.integerUpDownRecommendedTugs.IsEnabled = isEnabled;
+ this.comboBoxTug.IsEnabled = _editing;
+ this.integerUpDownRecommendedTugs.IsEnabled = _editing;
- this.comboBoxPilot.IsEnabled = isEnabled;
- this.comboBoxMooring.IsEnabled = isEnabled;
- this.checkBoxMooredLock.IsEnabled = isEnabled;
- this.comboBoxTerminal.IsEnabled = isEnabled;
- this.checkBoxBunkering.IsEnabled = isEnabled;
- this.checkBoxReplenishingTerminal.IsEnabled = isEnabled;
- this.checkBoxReplenishingLock.IsEnabled = isEnabled;
- this.textBoxRemarks.IsEnabled = isEnabled;
+ this.comboBoxPilot.IsEnabled = _editing;
+ this.comboBoxMooring.IsEnabled = _editing;
+ this.checkBoxMooredLock.IsEnabled = _editing;
+ this.comboBoxTerminal.IsEnabled = _editing;
+ this.checkBoxBunkering.IsEnabled = _editing;
+ this.checkBoxReplenishingTerminal.IsEnabled = _editing;
+ this.checkBoxReplenishingLock.IsEnabled = _editing;
+ this.textBoxRemarks.IsEnabled = _editing;
- this.buttonOK.IsEnabled = isEnabled;
+ CheckOKButton();
+ }
+
+ private bool RequiredFieldsSet()
+ {
+ bool areSet = this.datePickerETA.Value.HasValue &&
+ this.doubleUpDownDraft.Value.HasValue &&
+ this.comboBoxArrivalBerth.SelectedIndex >= 0;
+ return areSet;
+ }
+
+ private void CheckOKButton()
+ {
+ this.buttonOK.IsEnabled = _editing && RequiredFieldsSet();
}
#endregion
- #region context menu handlers
+ #region event handlers
private void contextMenuItemArrivalBerth_Click(object sender, RoutedEventArgs e)
{
@@ -305,6 +324,21 @@ namespace BreCalClient
private void contextMenuItemClearPierside_Click(object sender, RoutedEventArgs e)
{
this.comboBoxPierside.SelectedIndex = -1;
+ }
+
+ private void doubleUpDownDraft_ValueChanged(object sender, RoutedPropertyChangedEventArgs