Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Factories/PipingMapDataFeaturesFactory.cs
===================================================================
diff -u -r1250f75d43f878e4ad35f226cea3c68f556964c2 -rd2db1044e78377af2673cbdd7d2f60bc20b1c066
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Factories/PipingMapDataFeaturesFactory.cs (.../PipingMapDataFeaturesFactory.cs) (revision 1250f75d43f878e4ad35f226cea3c68f556964c2)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Factories/PipingMapDataFeaturesFactory.cs (.../PipingMapDataFeaturesFactory.cs) (revision d2db1044e78377af2673cbdd7d2f60bc20b1c066)
@@ -26,6 +26,7 @@
using Core.Components.Gis.Features;
using Riskeer.Common.Forms.Factories;
using Riskeer.Common.Forms.PresentationObjects;
+using Riskeer.Piping.Data.Probabilistic;
using Riskeer.Piping.Data.SemiProbabilistic;
using Riskeer.Piping.Data.SoilProfile;
using Riskeer.Piping.Primitives;
@@ -100,7 +101,7 @@
/// A collection of features or an empty collection when is null or empty.
public static IEnumerable CreateCalculationFeatures(IEnumerable calculations)
{
- bool hasCalculations = calculations != null && calculations.Any();
+ bool hasCalculations = calculations != null && calculations.OfType().Any();
if (!hasCalculations)
{
@@ -121,6 +122,34 @@
return RiskeerMapDataFeaturesFactory.CreateCalculationFeatures(calculationData);
}
+ ///
+ /// Create calculation features based on the provided .
+ ///
+ /// The collection of to create the calculation features for.
+ /// A collection of features or an empty collection when is null or empty.
+ public static IEnumerable CreateCalculationFeatures(IEnumerable calculations)
+ {
+ bool hasCalculations = calculations != null && calculations.OfType().Any();
+
+ if (!hasCalculations)
+ {
+ return new MapFeature[0];
+ }
+
+ IEnumerable calculationsWithLocationAndHydraulicBoundaryLocation = calculations.Where(
+ c => c.InputParameters.SurfaceLine != null
+ && c.InputParameters.HydraulicBoundaryLocation != null);
+
+ MapCalculationData[] calculationData =
+ calculationsWithLocationAndHydraulicBoundaryLocation.Select(
+ calculation => new MapCalculationData(
+ calculation.Name,
+ calculation.InputParameters.SurfaceLine.ReferenceLineIntersectionWorldPoint,
+ calculation.InputParameters.HydraulicBoundaryLocation)).ToArray();
+
+ return RiskeerMapDataFeaturesFactory.CreateCalculationFeatures(calculationData);
+ }
+
private static IEnumerable GetWorldPoints(PipingSurfaceLine surfaceLine)
{
return surfaceLine.Points.Select(p => new Point2D(p.X, p.Y)).ToArray();
Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismView.cs
===================================================================
diff -u -rd9610fdd57cae01feec12d69ea4413d202d131f4 -rd2db1044e78377af2673cbdd7d2f60bc20b1c066
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision d9610fdd57cae01feec12d69ea4413d202d131f4)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision d2db1044e78377af2673cbdd7d2f60bc20b1c066)
@@ -21,6 +21,7 @@
using System;
using System.Collections.Generic;
+using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using Core.Common.Base;
@@ -33,6 +34,7 @@
using Riskeer.Common.Forms.Factories;
using Riskeer.Common.Forms.Helpers;
using Riskeer.Piping.Data;
+using Riskeer.Piping.Data.Probabilistic;
using Riskeer.Piping.Data.SemiProbabilistic;
using Riskeer.Piping.Data.SoilProfile;
using Riskeer.Piping.Forms.Factories;
@@ -52,6 +54,7 @@
private MapLineData surfaceLinesMapData;
private MapPointData hydraulicBoundaryLocationsMapData;
private MapLineData semiProbabilisticCalculationsMapData;
+ private MapLineData probabilisticCalculationsMapData;
private MapLineData sectionsMapData;
private MapPointData sectionsStartPointMapData;
@@ -77,9 +80,11 @@
private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver;
private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver;
private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver;
- private RecursiveObserver semiProbabilisticCalculationInputObserver;
+ private RecursiveObserver semiProbabilisticCalculationInputObserver;
+ private RecursiveObserver probabilisticCalculationInputObserver;
private RecursiveObserver calculationGroupObserver;
private RecursiveObserver semiProbabilisticCalculationObserver;
+ private RecursiveObserver probabilisticCalculationObserver;
private RecursiveObserver surfaceLineObserver;
private RecursiveObserver, PipingFailureMechanismSectionResult> sectionResultObserver;
@@ -149,8 +154,10 @@
hydraulicBoundaryLocationsObserver.Dispose();
stochasticSoilModelsObserver.Dispose();
semiProbabilisticCalculationInputObserver.Dispose();
+ probabilisticCalculationInputObserver.Dispose();
calculationGroupObserver.Dispose();
semiProbabilisticCalculationObserver.Dispose();
+ probabilisticCalculationObserver.Dispose();
surfaceLinesObserver.Dispose();
surfaceLineObserver.Dispose();
sectionResultObserver.Dispose();
@@ -170,7 +177,8 @@
hydraulicBoundaryLocationsMapData = RiskeerMapDataFactory.CreateHydraulicBoundaryLocationsMapData();
stochasticSoilModelsMapData = RiskeerMapDataFactory.CreateStochasticSoilModelsMapData();
surfaceLinesMapData = RiskeerMapDataFactory.CreateSurfaceLinesMapData();
- semiProbabilisticCalculationsMapData = RiskeerMapDataFactory.CreateCalculationsMapData();
+ semiProbabilisticCalculationsMapData = RiskeerMapDataFactory.CreateCalculationsMapData("Semi-probabilistische berekeningen", Color.MediumPurple);
+ probabilisticCalculationsMapData = RiskeerMapDataFactory.CreateCalculationsMapData("Probabilistische berekeningen", Color.Pink);
MapDataCollection sectionsMapDataCollection = RiskeerMapDataFactory.CreateSectionsMapDataCollection();
sectionsMapData = RiskeerMapDataFactory.CreateFailureMechanismSectionsMapData();
@@ -200,6 +208,7 @@
mapDataCollection.Add(hydraulicBoundaryLocationsMapData);
mapDataCollection.Add(semiProbabilisticCalculationsMapData);
+ mapDataCollection.Add(probabilisticCalculationsMapData);
}
private void CreateObservers()
@@ -246,11 +255,16 @@
waveHeightCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver(
AssessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData);
- semiProbabilisticCalculationInputObserver = new RecursiveObserver(
+ semiProbabilisticCalculationInputObserver = new RecursiveObserver(
UpdateSemiProbabilisticCalculationsMapData, pcg => pcg.Children.Concat