Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs
===================================================================
diff -u -rc9f9c04e4fc62406231afd07d63cd7da11673ec6 -rf760a191fb5e4826ef1b7a5ab4e04bee993c1215
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision c9f9c04e4fc62406231afd07d63cd7da11673ec6)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision f760a191fb5e4826ef1b7a5ab4e04bee993c1215)
@@ -23,19 +23,27 @@
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
+using System.IO;
using System.Linq;
using System.Windows.Forms;
using Core.Common.Base.Data;
+using Core.Common.Base.Service;
using Core.Common.Controls.TreeView;
using Core.Common.Gui.ContextMenu;
using Core.Common.Gui.Forms;
+using Core.Common.Gui.Forms.ProgressDialog;
using Core.Common.Gui.Plugin;
using Core.Common.IO.Exceptions;
using log4net;
+using MathNet.Numerics.Distributions;
using Ringtoets.Common.Data;
using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Forms.PresentationObjects;
using Ringtoets.Common.Placeholder;
+using Ringtoets.HydraRing.Calculation;
+using Ringtoets.HydraRing.Calculation.Data;
+using Ringtoets.HydraRing.Calculation.Hydraulics;
+using Ringtoets.HydraRing.Data;
using Ringtoets.Integration.Data.Placeholders;
using Ringtoets.Integration.Forms.PresentationObjects;
using Ringtoets.Integration.Forms.PropertyClasses;
@@ -49,6 +57,7 @@
using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
using UtilsResources = Core.Common.Utils.Properties.Resources;
using BaseResources = Core.Common.Base.Properties.Resources;
+using PropertyInfo = Core.Common.Gui.Plugin.PropertyInfo;
namespace Ringtoets.Integration.Plugin
{
@@ -68,7 +77,7 @@
}
///
- /// Returns all instances provided for data of .
+ /// Returns all instances provided for data of .
///
public override IEnumerable GetPropertyInfos()
{
@@ -95,7 +104,7 @@
yield return new ViewInfo
{
GetViewName = (v, o) => RingtoetsFormsResources.TrajectMap_DisplayName,
- Image = RingtoetsFormsResources.Map,
+ Image = RingtoetsFormsResources.Map
};
}
@@ -438,8 +447,16 @@
RingtoetsFormsResources.DesignWaterLevel_Calculate,
RingtoetsFormsResources.DesignWaterLevel_Calculate_ToolTip,
RingtoetsFormsResources.FailureMechanismIcon,
- null);
+ (sender, args) =>
+ {
+ var beta = -Normal.InvCDF(0.0, 1.0, 1.0 / nodeData.Parent.FailureMechanismContribution.Norm);
+ var hlcdDirectory = Path.GetDirectoryName(nodeData.Parent.HydraulicBoundaryDatabase.FilePath);
+ var activities = nodeData.Parent.HydraulicBoundaryDatabase.Locations.Select(hbl => new AssessmentLevelActivity(hlcdDirectory, "", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, (int) hbl.Id, beta));
+ ActivityProgressDialogRunner.Run(Gui.MainWindow, activities);
+ }
+ );
+
if (nodeData.Parent.HydraulicBoundaryDatabase == null)
{
designWaterLevelItem.Enabled = false;
@@ -570,5 +587,52 @@
}
#endregion
+
+ # region Nested types
+
+ private class AssessmentLevelActivity : Activity
+ {
+ private readonly string hlcdDirectory;
+ private readonly string ringId;
+ private readonly HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType;
+ private readonly HydraRingUncertaintiesType uncertaintiesType;
+ private readonly int hydraulicBoundaryLocationId;
+ private readonly double beta;
+
+ public AssessmentLevelActivity(string hlcdDirectory, string ringId, HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType, HydraRingUncertaintiesType uncertaintiesType, int hydraulicBoundaryLocationId, double beta)
+ {
+ this.hlcdDirectory = hlcdDirectory;
+ this.ringId = ringId;
+ this.timeIntegrationSchemeType = timeIntegrationSchemeType;
+ this.uncertaintiesType = uncertaintiesType;
+ this.hydraulicBoundaryLocationId = hydraulicBoundaryLocationId;
+ this.beta = beta;
+ }
+
+ protected override void OnRun()
+ {
+ HydraRingCalculator.PerformFailureMechanismCalculation(hlcdDirectory, ringId, timeIntegrationSchemeType, uncertaintiesType, new AssessmentLevelCalculation(hydraulicBoundaryLocationId, beta));
+ }
+
+ protected override void OnCancel()
+ {
+ // Unable to cancel a running kernel, so nothing can be done.
+ }
+
+ protected override void OnFinish()
+ {
+
+ }
+
+ public override string Name
+ {
+ get
+ {
+ return "Toetspeilen berekenen...";
+ }
+ }
+ }
+
+ # endregion
}
}
\ No newline at end of file