Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CalculatableView.cs
===================================================================
diff -u -r888f6cdc81e8fb6d6a5b9baadf6395f209008836 -rc6609aa18c44e976105aa8f434616576aeb7f677
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CalculatableView.cs (.../CalculatableView.cs) (revision 888f6cdc81e8fb6d6a5b9baadf6395f209008836)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/CalculatableView.cs (.../CalculatableView.cs) (revision c6609aa18c44e976105aa8f434616576aeb7f677)
@@ -132,6 +132,20 @@
.Select(r => r.CalculatableObject);
}
+ ///
+ /// Validates the calculatable objects.
+ ///
+ /// A validation message in case no calculations can be performed, null otherwise.
+ protected virtual string ValidateCalculatableObjects()
+ {
+ if (!GetCalculatableRows().Any(r => r.ShouldCalculate))
+ {
+ return Resources.CalculatableViews_No_calculations_selected;
+ }
+
+ return null;
+ }
+
private void LocalizeControls()
{
CalculateForSelectedButton.Text = Resources.CalculatableView_CalculateForSelectedButton_Text;
@@ -142,7 +156,17 @@
private void UpdateCalculateForSelectedButton()
{
- CalculateForSelectedButton.Enabled = GetCalculatableRows().Any(r => r.ShouldCalculate);
+ var validationText = ValidateCalculatableObjects();
+ if (!string.IsNullOrEmpty(validationText))
+ {
+ CalculateForSelectedButton.Enabled = false;
+ CalculateForSelectedButtonErrorProvider.SetError(CalculateForSelectedButton, validationText);
+ }
+ else
+ {
+ CalculateForSelectedButton.Enabled = true;
+ CalculateForSelectedButtonErrorProvider.Clear();
+ }
}
private void InitializeEventHandlers()