Index: Ringtoets.sln =================================================================== diff -u -r8e2e40eeaf74a81592349e4ba75a14f45c9917e2 -r0585edaba71d05905dd6196ded7356dbd5155214 --- Ringtoets.sln (.../Ringtoets.sln) (revision 8e2e40eeaf74a81592349e4ba75a14f45c9917e2) +++ Ringtoets.sln (.../Ringtoets.sln) (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -308,7 +308,7 @@ {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.Integration.Forms", "Ringtoets\Integration\src\Ringtoets.Integration.Forms\Riskeer.Integration.Forms.csproj", "{AD0CDC89-0A00-4068-AEEC-9838863C2FE8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.Integration.Forms", "Ringtoets\Integration\src\Riskeer.Integration.Forms\Riskeer.Integration.Forms.csproj", "{AD0CDC89-0A00-4068-AEEC-9838863C2FE8}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Commands/AddAssessmentSectionCommand.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Commands/AssessmentSectionFromFileCommandHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Commands/IAssessmentSectionFromFileCommandHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Controls/AssessmentSectionAssemblyCategoryGroupControl.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Editors/HlcdFileNameEditor.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/CombinedSectionAssemblyMapDataFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/GrassCoverSlipOffInwardsAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/GrassCoverSlipOffOutwardsAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/MacroStabilityOutwardsAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/MicrostabilityAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/PipingStructureAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/StrengthStabilityLengthwiseConstructionAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/TechnicalInnovationAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Factories/WaterPressureAsphaltCoverAssemblyMapDataFeaturesFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/AssessmentSectionMergeFilePathProvider.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/FailureMechanismMergeDataRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Merge/IAssessmentSectionMergeFilePathProvider.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Observers/AssessmentSectionResultObserver.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/AssemblyResultCategoriesContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/AssemblyResultPerSectionContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/AssemblyResultPerSectionMapContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/AssemblyResultTotalContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/AssemblyResultsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/HydraulicBoundaryDatabaseContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/MacroStabilityOutwardsAssemblyCategoriesContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismSectionsContext.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/AssemblyResultCategoriesProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/AssessmentSectionCompositionProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/AssessmentSectionProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/BackgroundDataProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/CalculationContextProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/CalculationGroupContextProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoriesProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoryProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoriesProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoryProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/IAssessmentSectionCompositionChangeHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/IHydraulicLocationConfigurationDatabaseImportHandler.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/NormProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/ReferenceLineProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/RingtoetsProjectProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/StandAlone/MacroStabilityOutwardsFailureMechanismProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/StandAlone/PipingStructureFailureMechanismProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/StandAlone/StandAloneFailureMechanismProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Resources/AddFolder-stand32.png =================================================================== diff -u -rb2266eb2fad7d6ea2a1f272ef7542e4fb87280d3 -r0585edaba71d05905dd6196ded7356dbd5155214 Binary files differ Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Resources/folder-stand.png =================================================================== diff -u -raa5c3620f316831e71797c558a13a0b73a8109df -r0585edaba71d05905dd6196ded7356dbd5155214 Binary files differ Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Resources/folder-stand32.png =================================================================== diff -u -r22d01e841d2ecdf9249422f7436625eb7fc5ea17 -r0585edaba71d05905dd6196ded7356dbd5155214 Binary files differ Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Resources/map.png =================================================================== diff -u -racbd08302b69fc06e5cade26def0dea4d35e3b92 -r0585edaba71d05905dd6196ded7356dbd5155214 Binary files differ Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/RingtoetsSettingsHelper.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Riskeer.Integration.Forms.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyCategoriesTable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyCategoryRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultCategoriesView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultCategoriesView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultCategoriesView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionMapView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultPerSectionView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssemblyResultTotalView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/AssessmentSectionView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/CombinedFailureMechanismSectionAssemblyResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyCategoryGroupResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismAssemblyResultRowBase.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionItemRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffInwardsSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffOutwardsSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/PipingStructureSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/StrengthStabilityLengthwiseConstructionSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/TechnicalInnovationSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultRows/WaterPressureAsphaltCoverSectionResultRow.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffInwardsResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffOutwardsResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/MacroStabilityOutwardsResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/PipingStructureResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/StrengthStabilityLengthwiseConstructionResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/TechnicalInnovationResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/SectionResultViews/WaterPressureAsphaltCoverResultView.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0585edaba71d05905dd6196ded7356dbd5155214 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/packages.config'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AddAssessmentSectionCommand.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AddAssessmentSectionCommand.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AddAssessmentSectionCommand.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,62 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.Commands; + +namespace Riskeer.Integration.Forms.Commands +{ + /// + /// This class describes commands which are used to execute in the GUI. + /// + public class AddAssessmentSectionCommand : ICommand + { + private readonly IAssessmentSectionFromFileCommandHandler assessmentSectionFromFileCommandHandler; + + /// + /// Creates a new instance of . + /// + /// The to execute. + /// Throw when is null. + public AddAssessmentSectionCommand(IAssessmentSectionFromFileCommandHandler assessmentSectionFromFileCommandHandler) + { + if (assessmentSectionFromFileCommandHandler == null) + { + throw new ArgumentNullException(nameof(assessmentSectionFromFileCommandHandler)); + } + + this.assessmentSectionFromFileCommandHandler = assessmentSectionFromFileCommandHandler; + } + + public bool Checked + { + get + { + return true; + } + } + + public void Execute() + { + assessmentSectionFromFileCommandHandler.AddAssessmentSectionFromFile(); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AssessmentSectionFromFileCommandHandler.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AssessmentSectionFromFileCommandHandler.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/AssessmentSectionFromFileCommandHandler.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,371 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Base.Data; +using Core.Common.Base.IO; +using Core.Common.Gui; +using Core.Common.Gui.Forms.ViewHost; +using log4net; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.IO; +using Ringtoets.Common.IO.Exceptions; +using Ringtoets.Common.IO.ReferenceLines; +using Riskeer.Integration.Data; +using Riskeer.Integration.Forms.Properties; +using Riskeer.Integration.Forms.Dialogs; +using IntegrationResources = Riskeer.Integration.Data.Properties.Resources; +using BaseResources = Core.Common.Base.Properties.Resources; + +namespace Riskeer.Integration.Forms.Commands +{ + /// + /// This class is responsible for adding an from a predefined location. + /// + public class AssessmentSectionFromFileCommandHandler : IAssessmentSectionFromFileCommandHandler + { + private static readonly ILog log = LogManager.GetLogger(typeof(AssessmentSectionFromFileCommandHandler)); + private readonly string shapeFileDirectory = RingtoetsSettingsHelper.GetCommonDocumentsRingtoetsShapeFileDirectory(); + + private readonly IWin32Window dialogParent; + private readonly IProjectOwner projectOwner; + private readonly IDocumentViewController viewController; + private IEnumerable settings; + private IEnumerable referenceLineMetas = new List(); + + /// + /// Initializes a new instance of the class. + /// + /// The parent of the dialog. + /// The class owning the application project. + /// The document view controller. + /// Thrown when any parameter is null. + public AssessmentSectionFromFileCommandHandler(IWin32Window dialogParent, IProjectOwner projectOwner, IDocumentViewController viewController) + { + if (dialogParent == null) + { + throw new ArgumentNullException(nameof(dialogParent)); + } + + if (projectOwner == null) + { + throw new ArgumentNullException(nameof(projectOwner)); + } + + if (viewController == null) + { + throw new ArgumentNullException(nameof(viewController)); + } + + this.dialogParent = dialogParent; + this.projectOwner = projectOwner; + this.viewController = viewController; + } + + public void AddAssessmentSectionFromFile() + { + if (!TryReadSourceFiles()) + { + return; + } + + AssessmentSection assessmentSection = GetAssessmentSectionFromDialog(); + var ringtoetsProject = projectOwner.Project as RingtoetsProject; + if (assessmentSection == null || ringtoetsProject == null) + { + return; + } + + SetAssessmentSectionToProject(ringtoetsProject, assessmentSection); + } + + #region Dialog + + private AssessmentSection GetAssessmentSectionFromDialog() + { + using (ReferenceLineMetaSelectionDialog dialog = CreateReferenceLineMetaSelectionDialogWithItems()) + { + if (dialog.ShowDialog() != DialogResult.OK) + { + return null; + } + + ReferenceLineMeta selectedItem = dialog.SelectedReferenceLineMeta; + + return selectedItem == null + ? null + : TryCreateAssessmentSection(selectedItem, + dialog.SelectedLowerLimitNorm, + dialog.SelectedSignalingNorm, + dialog.SelectedNormativeNorm); + } + } + + private ReferenceLineMetaSelectionDialog CreateReferenceLineMetaSelectionDialogWithItems() + { + return new ReferenceLineMetaSelectionDialog(dialogParent, referenceLineMetas); + } + + #endregion + + #region Set AssessmentSection to Project + + private static void SetFailureMechanismsValueN(AssessmentSection assessmentSection, int n) + { + var roundedN = (RoundedDouble) n; + assessmentSection.GrassCoverErosionInwards.GeneralInput.N = roundedN; + assessmentSection.GrassCoverErosionOutwards.GeneralInput.N = roundedN; + assessmentSection.HeightStructures.GeneralInput.N = roundedN; + } + + private void SetAssessmentSectionToProject(RingtoetsProject ringtoetsProject, AssessmentSection assessmentSection) + { + assessmentSection.Name = GetUniqueForAssessmentSectionName(ringtoetsProject.AssessmentSections, assessmentSection.Name); + ringtoetsProject.AssessmentSections.Add(assessmentSection); + ringtoetsProject.NotifyObservers(); + + viewController.OpenViewForData(assessmentSection); + } + + private static string GetUniqueForAssessmentSectionName(IEnumerable assessmentSections, string baseName) + { + return NamingHelper.GetUniqueName(assessmentSections, baseName, a => a.Name); + } + + #endregion + + #region Create AssessmentSection + + /// + /// Creates a new instance of with + /// set to . + /// + /// The lower limit norm of the assessment section. + /// The signaling norm which of the assessment section. + /// The newly created . + /// Thrown when: + /// + /// is not in the interval [0.000001, 0.1] or is ; + /// is not in the interval [0.000001, 0.1] or is ; + /// The is larger than . + /// + /// + private static AssessmentSection CreateDikeAssessmentSection(double lowerLimitNorm, double signalingNorm) + { + return new AssessmentSection(AssessmentSectionComposition.Dike, lowerLimitNorm, signalingNorm); + } + + /// + /// Creates a new instance of with + /// set to . + /// + /// The lower limit norm of the assessment section. + /// The signaling norm which of the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The newly created . + /// Thrown when: + /// + /// is not in the interval [0.000001, 0.1] or is ; + /// is not in the interval [0.000001, 0.1] or is ; + /// The is larger than . + /// + /// + private static AssessmentSection CreateDikeAssessmentSection(double lowerLimitNorm, double signalingNorm, int n) + { + AssessmentSection assessmentSection = CreateDikeAssessmentSection(lowerLimitNorm, signalingNorm); + SetFailureMechanismsValueN(assessmentSection, n); + return assessmentSection; + } + + /// + /// Creates a new instance of with + /// set to . + /// + /// The lower limit norm of the assessment section. + /// The signaling norm which of the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The newly created . + /// Thrown when: + /// + /// is not in the interval [0.000001, 0.1] or is ; + /// is not in the interval [0.000001, 0.1] or is ; + /// The is larger than . + /// + /// + private static AssessmentSection CreateDuneAssessmentSection(double lowerLimitNorm, double signalingNorm, int n) + { + var duneAssessmentSection = new AssessmentSection(AssessmentSectionComposition.Dune, + lowerLimitNorm, + signalingNorm); + SetFailureMechanismsValueN(duneAssessmentSection, n); + return duneAssessmentSection; + } + + /// + /// Creates a new instance of . + /// + /// The selected . + /// The lower limit norm of the assessment section. + /// The signaling norm which of the assessment section. + /// The norm type of the assessment section. + /// The newly created . + /// Thrown when: + /// + /// is not in the interval [0.000001, 0.1] or is ; + /// is not in the interval [0.000001, 0.1] or is ; + /// The is larger than . + /// + /// + private AssessmentSection CreateAssessmentSection(ReferenceLineMeta selectedItem, + double lowerLimitNorm, + double signalingNorm, + NormType normativeNorm) + { + AssessmentSection assessmentSection; + AssessmentSectionSettings settingOfSelectedAssessmentSection = settings.FirstOrDefault(s => s.AssessmentSectionId == selectedItem.AssessmentSectionId); + if (settingOfSelectedAssessmentSection == null) + { + log.Warn(Resources.AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_No_settings_found_for_AssessmentSection); + assessmentSection = CreateDikeAssessmentSection(lowerLimitNorm, signalingNorm); + } + else + { + assessmentSection = settingOfSelectedAssessmentSection.IsDune + ? CreateDuneAssessmentSection(lowerLimitNorm, + signalingNorm, + settingOfSelectedAssessmentSection.N) + : CreateDikeAssessmentSection(lowerLimitNorm, + signalingNorm, + settingOfSelectedAssessmentSection.N); + } + + assessmentSection.Name = string.Format(IntegrationResources.AssessmentSection_Id_0, selectedItem.AssessmentSectionId); + assessmentSection.Id = selectedItem.AssessmentSectionId; + + if (!selectedItem.ReferenceLine.Points.Any()) + { + log.Warn(Resources.AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_Importing_ReferenceLineFailed); + } + else + { + assessmentSection.ReferenceLine.SetGeometry(selectedItem.ReferenceLine.Points); + } + + assessmentSection.FailureMechanismContribution.NormativeNorm = normativeNorm; + + return assessmentSection; + } + + private AssessmentSection TryCreateAssessmentSection(ReferenceLineMeta selectedItem, + double lowerLimitNorm, + double signalingNorm, + NormType normativeNorm) + { + try + { + return CreateAssessmentSection(selectedItem, + lowerLimitNorm, + signalingNorm, + normativeNorm); + } + catch (ArgumentOutOfRangeException exception) + { + var normValidityRange = new Range(1.0 / 1000000, 1.0 / 10); + string message = string.Format(Resources.AssessmentSectionFromFileCommandHandler_Unable_to_create_assessmentSection_with_LowerLimitNorm_0_and_SignalingNorm_1_Norms_should_be_in_Range_2_, + ProbabilityFormattingHelper.Format(lowerLimitNorm), + ProbabilityFormattingHelper.Format(signalingNorm), + normValidityRange.ToString(FormattableConstants.ShowAtLeastOneDecimal, CultureInfo.CurrentCulture)); + + log.Error(message, exception); + } + + return null; + } + + #endregion + + #region Validators + + private bool TryReadSourceFiles() + { + ReadAssessmentSectionSettings(); + + try + { + ReadReferenceLineMetas(); + } + catch (CriticalFileValidationException exception) + { + MessageBox.Show(exception.Message, BaseResources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); + log.Error(exception.Message, exception.InnerException); + return false; + } + catch (CriticalFileReadException exception) + { + log.Error(exception.Message, exception.InnerException); + return false; + } + + return true; + } + + /// + /// Reads all objects from the shape file located at . + /// + /// Thrown when: + /// + /// points to an invalid directory. + /// The path does not contain any shape files. + /// Thrown when the shape file does not contain poly lines. + /// + /// Thrown when: + /// + /// The shape file does not contain the required attributes. + /// The assessment section ids in the shape file are not unique or are missing. + /// No could be read from the shape file. + /// + private void ReadReferenceLineMetas() + { + var importer = new ReferenceLineMetaImporter(shapeFileDirectory); + referenceLineMetas = importer.GetReferenceLineMetas(); + + if (!referenceLineMetas.Any()) + { + throw new CriticalFileValidationException(Resources.AssessmentSectionFromFileCommandHandler_ValidateReferenceLineMetas_No_referenceLines_in_file); + } + } + + private void ReadAssessmentSectionSettings() + { + var reader = new AssessmentSectionSettingsReader(); + settings = reader.ReadSettings(); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/IAssessmentSectionFromFileCommandHandler.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/IAssessmentSectionFromFileCommandHandler.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Commands/IAssessmentSectionFromFileCommandHandler.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,38 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base.Data; +using Ringtoets.Common.Data.AssessmentSection; + +namespace Riskeer.Integration.Forms.Commands +{ + /// + /// Interface for handling commands related to adding to a . + /// + public interface IAssessmentSectionFromFileCommandHandler + { + /// + /// Displays available objects to the user and asks to select one. + /// The selected , if any, will be added to the . + /// + void AddAssessmentSectionFromFile(); + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Controls/AssessmentSectionAssemblyCategoryGroupControl.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Controls/AssessmentSectionAssemblyCategoryGroupControl.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Controls/AssessmentSectionAssemblyCategoryGroupControl.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Core.Common.Util; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Controls +{ + /// + /// Control to display a . + /// + public class AssessmentSectionAssemblyCategoryGroupControl : AssemblyResultControl + { + /// + /// Sets the value of on the control. + /// + /// The to set on the control. + /// Thrown when + /// has an invalid value for . + /// Thrown when + /// is not supported. + public void SetAssemblyResult(AssessmentSectionAssemblyCategoryGroup result) + { + GroupLabel.Text = new EnumDisplayWrapper(result).DisplayName; + GroupLabel.BackColor = AssemblyCategoryGroupColorHelper.GetAssessmentSectionAssemblyCategoryGroupColor(result); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,135 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.Integration.Forms.Dialogs +{ + partial class BackgroundMapDataSelectionDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BackgroundMapDataSelectionDialog)); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.mapLayerLabel = new System.Windows.Forms.Label(); + this.mapLayerComboBox = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.cancelButton = new System.Windows.Forms.Button(); + this.selectButton = new System.Windows.Forms.Button(); + this.propertiesGroupBox = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1"); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.propertiesGroupBox, 0, 1); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + // + // flowLayoutPanel2 + // + resources.ApplyResources(this.flowLayoutPanel2, "flowLayoutPanel2"); + this.flowLayoutPanel2.Controls.Add(this.mapLayerLabel); + this.flowLayoutPanel2.Controls.Add(this.mapLayerComboBox); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + // + // mapLayerLabel + // + resources.ApplyResources(this.mapLayerLabel, "mapLayerLabel"); + this.mapLayerLabel.Name = "mapLayerLabel"; + // + // mapLayerComboBox + // + this.mapLayerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.mapLayerComboBox.FormattingEnabled = true; + resources.ApplyResources(this.mapLayerComboBox, "mapLayerComboBox"); + this.mapLayerComboBox.Name = "mapLayerComboBox"; + this.mapLayerComboBox.Sorted = true; + this.mapLayerComboBox.SelectedIndexChanged += new System.EventHandler(this.MapLayerComboBox_OnSelectedIndexChanged); + // + // flowLayoutPanel1 + // + resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1"); + this.flowLayoutPanel1.Controls.Add(this.cancelButton); + this.flowLayoutPanel1.Controls.Add(this.selectButton); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.cancelButton, "cancelButton"); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.UseVisualStyleBackColor = true; + // + // selectButton + // + resources.ApplyResources(this.selectButton, "selectButton"); + this.selectButton.Name = "selectButton"; + this.selectButton.UseVisualStyleBackColor = true; + this.selectButton.Click += new System.EventHandler(this.OnSelectButtonClick); + // + // propertiesGroupBox + // + resources.ApplyResources(this.propertiesGroupBox, "propertiesGroupBox"); + this.propertiesGroupBox.Name = "propertiesGroupBox"; + this.propertiesGroupBox.TabStop = false; + // + // BackgroundMapDataSelectionDialog + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "BackgroundMapDataSelectionDialog"; + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.flowLayoutPanel2.ResumeLayout(false); + this.flowLayoutPanel2.PerformLayout(); + this.flowLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button selectButton; + private System.Windows.Forms.GroupBox propertiesGroupBox; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.Label mapLayerLabel; + private System.Windows.Forms.ComboBox mapLayerComboBox; + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,177 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Controls.Dialogs; +using Core.Components.BruTile.Forms; +using Core.Components.Gis.Data; +using Core.Components.Gis.Forms.Views; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Dialogs +{ + /// + /// A dialog which allows the user to make a selection from a given set of background layers. Upon + /// closing of the dialog, the selected background layer can be obtained. + /// + public partial class BackgroundMapDataSelectionDialog : DialogBase + { + private readonly HashSet mapDatas; + private BackgroundMapDataSelectionControl currentBackgroundMapDataSelectionControl; + private bool mapLayerComboBoxUpdating; + + /// + /// Creates a new instance of . + /// + /// The parent of the dialog. + /// The active map data or null if none is active. + /// Thrown when is null. + public BackgroundMapDataSelectionDialog(IWin32Window dialogParent, ImageBasedMapData mapData) + : base(dialogParent, RingtoetsCommonFormsResources.SelectionDialogIcon, 500, 350) + { + mapDatas = new HashSet + { + new WellKnownMapDataControl(mapData as WellKnownTileSourceMapData), + new WmtsLocationControl(mapData as WmtsMapData, new BruTileWmtsCapabilityFactory()) + }; + + InitializeComponent(); + InitializeButtons(); + + BackgroundMapDataSelectionControl controlToSelect = GetBackgroundMapDataControlToSelect(mapData); + PreSelectComboBox(controlToSelect); + } + + /// + /// Gets the selected or null if none selected. + /// + public ImageBasedMapData SelectedMapData { get; private set; } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private BackgroundMapDataSelectionControl GetBackgroundMapDataControlToSelect(ImageBasedMapData mapData) + { + if (mapData is WellKnownTileSourceMapData) + { + return mapDatas.OfType().Single(); + } + + if (mapData is WmtsMapData) + { + return mapDatas.OfType().Single(); + } + + return mapDatas.First(); + } + + private void UpdatePropertiesGroupBox(BackgroundMapDataSelectionControl newBackgroundMapDataSelectionControl) + { + if (currentBackgroundMapDataSelectionControl != null) + { + currentBackgroundMapDataSelectionControl.SelectedMapDataChanged -= OnSelectedMapDataSelectionChanged; + } + + propertiesGroupBox.Controls.Clear(); + propertiesGroupBox.Controls.Add(newBackgroundMapDataSelectionControl); + newBackgroundMapDataSelectionControl.Dock = DockStyle.Fill; + newBackgroundMapDataSelectionControl.SelectedMapDataChanged += OnSelectedMapDataSelectionChanged; + + currentBackgroundMapDataSelectionControl = newBackgroundMapDataSelectionControl; + UpdateSelectButton(); + } + + #region ComboBox + + private void PreSelectComboBox(BackgroundMapDataSelectionControl controlToSelect) + { + mapLayerComboBox.BeginUpdate(); + + mapLayerComboBoxUpdating = true; + mapLayerComboBox.DataSource = mapDatas.ToArray(); + mapLayerComboBox.DisplayMember = nameof(BackgroundMapDataSelectionControl.DisplayName); + mapLayerComboBox.SelectedItem = null; + mapLayerComboBoxUpdating = false; + + mapLayerComboBox.EndUpdate(); + + mapLayerComboBox.SelectedItem = controlToSelect; + currentBackgroundMapDataSelectionControl = controlToSelect; + } + + #endregion + + #region Buttons + + private void InitializeButtons() + { + UpdateSelectButton(); + } + + private void UpdateSelectButton() + { + selectButton.Enabled = currentBackgroundMapDataSelectionControl?.SelectedMapData != null; + } + + protected override Button GetCancelButton() + { + return cancelButton; + } + + #endregion + + #region Event handlers + + private void OnSelectButtonClick(object sender, EventArgs e) + { + SelectedMapData = currentBackgroundMapDataSelectionControl.SelectedMapData; + DialogResult = DialogResult.OK; + Close(); + } + + private void OnSelectedMapDataSelectionChanged(object sender, EventArgs e) + { + UpdateSelectButton(); + } + + private void MapLayerComboBox_OnSelectedIndexChanged(object sender, EventArgs eventArgs) + { + if (mapLayerComboBoxUpdating || mapLayerComboBox.SelectedIndex == -1) + { + return; + } + + UpdatePropertiesGroupBox((BackgroundMapDataSelectionControl) mapLayerComboBox.SelectedItem); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/BackgroundMapDataSelectionDialog.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 1 + + + True + + + True + + + + 3, 6 + + + + 3, 6, 3, 0 + + + 78, 13 + + + 0 + + + Type kaartlaag + + + mapLayerLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel2 + + + 0 + + + 87, 3 + + + 255, 21 + + + 0 + + + mapLayerComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel2 + + + 1 + + + Top + + + 3, 3 + + + 728, 27 + + + 0 + + + flowLayoutPanel2 + + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 0 + + + True + + + 650, 3 + + + 75, 23 + + + 1 + + + Annuleren + + + cancelButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel1 + + + 0 + + + 569, 3 + + + 75, 23 + + + 2 + + + Selecteren + + + selectButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel1 + + + 1 + + + Bottom + + + 3, 480 + + + Yes + + + 728, 29 + + + 0 + + + flowLayoutPanel1 + + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 + + + Fill + + + 3, 36 + + + 728, 438 + + + 1 + + + Eigenschappen + + + propertiesGroupBox + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + Fill + + + 0, 0 + + + 3 + + + 734, 512 + + + 0 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="flowLayoutPanel2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="flowLayoutPanel1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="propertiesGroupBox" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,Percent,100,AutoSize,0,Absolute,20,Absolute,20" /></TableLayoutSettings> + + + True + + + 6, 13 + + + 734, 512 + + + Selecteer achtergrondkaart + + + BackgroundMapDataSelectionDialog + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,160 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.Integration.Forms.Dialogs +{ + partial class ReferenceLineMetaSelectionDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ReferenceLineMetaSelectionDialog)); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.Cancel = new System.Windows.Forms.Button(); + this.Ok = new System.Windows.Forms.Button(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.LowLimitValueRadioButton = new System.Windows.Forms.RadioButton(); + this.SignallingValueRadioButton = new System.Windows.Forms.RadioButton(); + this.ReferenceLineMetaDataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl(); + this.SelectAssessmentSectionLabel = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // flowLayoutPanel1 + // + resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1"); + this.flowLayoutPanel1.Controls.Add(this.Cancel); + this.flowLayoutPanel1.Controls.Add(this.Ok); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + // + // Cancel + // + this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.Cancel, "Cancel"); + this.Cancel.Name = "Cancel"; + this.Cancel.UseVisualStyleBackColor = true; + this.Cancel.Click += new System.EventHandler(this.CancelButtonOnClick); + // + // Ok + // + this.Ok.DialogResult = System.Windows.Forms.DialogResult.OK; + resources.ApplyResources(this.Ok, "Ok"); + this.Ok.Name = "Ok"; + this.Ok.UseVisualStyleBackColor = true; + this.Ok.Click += new System.EventHandler(this.OkButtonOnClick); + // + // tableLayoutPanel1 + // + resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1"); + this.tableLayoutPanel1.Controls.Add(this.SelectAssessmentSectionLabel, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.ReferenceLineMetaDataGridViewControl, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + // + // LowLimitValueRadioButton + // + resources.ApplyResources(this.LowLimitValueRadioButton, "LowLimitValueRadioButton"); + this.LowLimitValueRadioButton.Name = "LowLimitValueRadioButton"; + this.LowLimitValueRadioButton.UseVisualStyleBackColor = true; + // + // SignallingValueRadioButton + // + resources.ApplyResources(this.SignallingValueRadioButton, "SignallingValueRadioButton"); + this.SignallingValueRadioButton.Checked = true; + this.SignallingValueRadioButton.Name = "SignallingValueRadioButton"; + this.SignallingValueRadioButton.TabStop = true; + this.SignallingValueRadioButton.UseVisualStyleBackColor = true; + // + // ReferenceLineMetaDataGridViewControl + // + resources.ApplyResources(this.ReferenceLineMetaDataGridViewControl, "ReferenceLineMetaDataGridViewControl"); + this.ReferenceLineMetaDataGridViewControl.MultiSelect = false; + this.ReferenceLineMetaDataGridViewControl.Name = "ReferenceLineMetaDataGridViewControl"; + this.ReferenceLineMetaDataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + // + // SelectAssessmentSectionLabel + // + resources.ApplyResources(this.SelectAssessmentSectionLabel, "SelectAssessmentSectionLabel"); + this.SelectAssessmentSectionLabel.Name = "SelectAssessmentSectionLabel"; + // + // groupBox1 + // + resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Controls.Add(this.SignallingValueRadioButton); + this.groupBox1.Controls.Add(this.LowLimitValueRadioButton); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.TabStop = false; + // + // ReferenceLineMetaSelectionDialog + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "ReferenceLineMetaSelectionDialog"; + this.flowLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Button Ok; + private System.Windows.Forms.Button Cancel; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private Core.Common.Controls.DataGrid.DataGridViewControl ReferenceLineMetaDataGridViewControl; + private System.Windows.Forms.RadioButton LowLimitValueRadioButton; + private System.Windows.Forms.RadioButton SignallingValueRadioButton; + private System.Windows.Forms.Label SelectAssessmentSectionLabel; + private System.Windows.Forms.GroupBox groupBox1; + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,241 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using Core.Common.Controls.DataGrid; +using Core.Common.Controls.Dialogs; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Dialogs +{ + /// + /// A dialog which allows the user to make a selection from a given set of . Upon + /// closing of the dialog, the selected can be obtained. + /// + public partial class ReferenceLineMetaSelectionDialog : DialogBase + { + /// + /// Creates a new instance of . + /// + /// The parent of the dialog. + /// A list of the user can select. + /// Thrown when or + /// is null. + public ReferenceLineMetaSelectionDialog(IWin32Window dialogParent, IEnumerable referenceLineMetas) + : base(dialogParent, RingtoetsCommonFormsResources.SelectionDialogIcon, 372, 350) + { + if (referenceLineMetas == null) + { + throw new ArgumentNullException(nameof(referenceLineMetas)); + } + + InitializeComponent(); + InitializeReferenceLineMetaDataGridViewControl(referenceLineMetas); + } + + /// + /// Gets the from the selected row in the . + /// + public ReferenceLineMeta SelectedReferenceLineMeta { get; private set; } + + /// + /// Gets the lower limit norm value from the selected row in the . + /// + public double SelectedLowerLimitNorm { get; private set; } + + /// + /// Gets the signaling norm value from the selected row in the . + /// + public double SelectedSignalingNorm { get; private set; } + + /// + /// Gets the norm type from the selected in the dialog. + /// + public NormType SelectedNormativeNorm { get; private set; } + + protected override Button GetCancelButton() + { + return Cancel; + } + + private void InitializeReferenceLineMetaDataGridViewControl(IEnumerable referenceLineMetas) + { + ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("AssessmentSectionId", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_AssessmentSectionId); + ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("SignalingValue", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_SignalingValue); + ReferenceLineMetaDataGridViewControl.AddTextBoxColumn("LowerLimitValue", Resources.ReferenceLineMetaSelectionDialog_ColumnHeader_LowerLimitValue); + + IOrderedEnumerable dataSource = referenceLineMetas.Select(rlm => new ReferenceLineMetaSelectionRow(rlm)).OrderBy(row => row.AssessmentSectionId, new AssessmentSectionIdComparer()); + ReferenceLineMetaDataGridViewControl.SetDataSource(dataSource.ToArray()); + } + + private void OkButtonOnClick(object sender, EventArgs e) + { + SetSelectionProperties(); + Close(); + } + + private void SetSelectionProperties() + { + ReferenceLineMetaSelectionRow referenceLineMetaSelectionRow = GetSelectedReferenceLineMetaSelectionRow(); + if (referenceLineMetaSelectionRow != null) + { + SelectedReferenceLineMeta = referenceLineMetaSelectionRow.ReferenceLineMeta; + + SelectedNormativeNorm = SignallingValueRadioButton.Checked + ? NormType.Signaling + : NormType.LowerLimit; + + double lowerLimitNormValue = GetNormValue(referenceLineMetaSelectionRow.LowerLimitValueReturnPeriod); + + SelectedLowerLimitNorm = lowerLimitNormValue; + SelectedSignalingNorm = referenceLineMetaSelectionRow.SignalingReturnPeriod.HasValue + ? GetNormValue(referenceLineMetaSelectionRow.SignalingReturnPeriod.Value) + : lowerLimitNormValue; + } + } + + private static double GetNormValue(int returnPeriod) + { + return 1.0 / returnPeriod; + } + + private ReferenceLineMetaSelectionRow GetSelectedReferenceLineMetaSelectionRow() + { + DataGridViewRow selectedRow = ReferenceLineMetaDataGridViewControl.CurrentRow; + return (ReferenceLineMetaSelectionRow) selectedRow?.DataBoundItem; + } + + private void CancelButtonOnClick(object sender, EventArgs e) + { + Close(); + } + + private class AssessmentSectionIdComparer : IComparer + { + public int Compare(string x, string y) + { + int idX; + string suffixX; + int subX; + + int idY; + string suffixY; + int subY; + + SplitAssessmentSectionId(x, out idX, out suffixX, out subX); + SplitAssessmentSectionId(y, out idY, out suffixY, out subY); + + if (idX != idY) + { + return idX - idY; + } + + if (string.IsNullOrEmpty(suffixX) != string.IsNullOrEmpty(suffixY)) + { + return string.IsNullOrEmpty(suffixX) ? -1 : 1; + } + + if (!string.IsNullOrEmpty(suffixX) && suffixX != suffixY) + { + return string.Compare(suffixX, suffixY, StringComparison.Ordinal); + } + + return subX - subY; + } + + private static void SplitAssessmentSectionId(string str, out int id, out string suffix, out int sub) + { + if (string.IsNullOrEmpty(str)) + { + id = 0; + sub = 0; + suffix = string.Empty; + return; + } + + string[] parts = str.Split('-'); + string[] firstPart = Regex.Split(parts.First(), "([A-Za-z])"); + if (firstPart.Length > 1) + { + int.TryParse(firstPart[0], out id); + suffix = firstPart[1]; + } + else + { + int.TryParse(parts[0], out id); + suffix = string.Empty; + } + + if (parts.Length == 2) + { + int.TryParse(parts[1], out sub); + } + else + { + sub = 0; + } + } + } + + private class ReferenceLineMetaSelectionRow + { + public ReferenceLineMetaSelectionRow(ReferenceLineMeta referenceLineMeta) + { + AssessmentSectionId = referenceLineMeta.AssessmentSectionId; + ReferenceLineMeta = referenceLineMeta; + + SignalingValue = GetNormValue(referenceLineMeta.SignalingValue); + if (SignalingValue != string.Empty) + { + SignalingReturnPeriod = referenceLineMeta.SignalingValue; + } + + LowerLimitValue = GetNormValue(referenceLineMeta.LowerLimitValue); + if (LowerLimitValue != string.Empty) + { + LowerLimitValueReturnPeriod = referenceLineMeta.LowerLimitValue; + } + } + + public string AssessmentSectionId { get; } + public string SignalingValue { get; } + public int? SignalingReturnPeriod { get; } + public string LowerLimitValue { get; } + public int LowerLimitValueReturnPeriod { get; } + public ReferenceLineMeta ReferenceLineMeta { get; } + + private static string GetNormValue(int? returnPeriod) + { + return returnPeriod.HasValue && returnPeriod > 0 + ? ProbabilityFormattingHelper.FormatFromReturnPeriod(returnPeriod.Value) + : string.Empty; + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Dialogs/ReferenceLineMetaSelectionDialog.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + True + + + + 200, 3 + + + 75, 23 + + + 1 + + + Annuleren + + + Cancel + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel1 + + + 0 + + + 119, 3 + + + 75, 23 + + + 0 + + + Toevoegen + + + Ok + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanel1 + + + 1 + + + + Bottom + + + 3, 259 + + + Yes + + + 278, 29 + + + 0 + + + flowLayoutPanel1 + + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 3 + + + 1 + + + True + + + 3, 15 + + + 3, 15, 3, 3 + + + 108, 13 + + + 0 + + + Selecteer een traject: + + + SelectAssessmentSectionLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 0 + + + Top, Bottom, Left, Right + + + 3, 34 + + + 278, 135 + + + 2 + + + ReferenceLineMetaDataGridViewControl + + + Core.Common.Controls.DataGrid.DataGridViewControl, Core.Common.Controls, Culture=neutral, PublicKeyToken=null + + + tableLayoutPanel1 + + + 1 + + + Top, Bottom, Left, Right + + + True + + + 6, 19 + + + 117, 17 + + + 2 + + + Signaleringswaarde + + + SignallingValueRadioButton + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + True + + + 6, 42 + + + 80, 17 + + + 3 + + + Ondergrens + + + LowLimitValueRadioButton + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + 3, 187 + + + 3, 15, 3, 3 + + + 278, 66 + + + 4 + + + Kies de norm van het dijktraject: + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + Fill + + + 0, 0 + + + 3 + + + 284, 291 + + + 2 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="SelectAssessmentSectionLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="ReferenceLineMetaDataGridViewControl" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="groupBox1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="flowLayoutPanel1" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="AutoSize,0,Percent,100,AutoSize,0,AutoSize,0" /></TableLayoutSettings> + + + True + + + 6, 13 + + + 284, 291 + + + 240, 130 + + + Stel een traject samen + + + ReferenceLineMetaSelectionDialog + + + Core.Common.Controls.Dialogs.DialogBase, Core.Common.Controls, Culture=neutral, PublicKeyToken=null + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Editors/HlcdFileNameEditor.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Editors/HlcdFileNameEditor.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Editors/HlcdFileNameEditor.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,39 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Windows.Forms; +using System.Windows.Forms.Design; +using Riskeer.Integration.Forms.Properties; + +namespace Riskeer.Integration.Forms.Editors +{ + /// + /// This class provides a dialog to select a hydraulic location configuration database. + /// + public class HlcdFileNameEditor : FileNameEditor + { + protected override void InitializeDialog(OpenFileDialog openFileDialog) + { + base.InitializeDialog(openFileDialog); + openFileDialog.Filter = Resources.HlcdFileNameEditor_InitializeDialog_FileFilter; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/AssessmentSectionAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,88 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Common.Base.Geometry; +using Core.Common.Util; +using Core.Components.Gis.Features; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Factories; +using Riskeer.AssemblyTool.Forms; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Assembly; +using Riskeer.Integration.Forms.Properties; +using Riskeer.Integration.Util; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results + /// in an . + /// + public static class AssessmentSectionAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the combined failure mechanism section assembly. + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedFailureMechanismSectionAssemblyFeatures(AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + IEnumerable assemblyResults; + try + { + assemblyResults = + AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(assessmentSection, true); + } + catch (AssemblyException ) + { + return new MapFeature[0]; + } + + var mapFeatures = new List(); + foreach (CombinedFailureMechanismSectionAssemblyResult assemblyResult in assemblyResults) + { + IEnumerable geometry = FailureMechanismSectionHelper.GetFailureMechanismSectionGeometry(assessmentSection.ReferenceLine, + assemblyResult.SectionStart, + assemblyResult.SectionEnd); + MapFeature mapFeature = RingtoetsMapDataFeaturesFactory.CreateSingleLineMapFeature(geometry); + + mapFeature.MetaData[RingtoetsCommonFormsResources.AssemblyCategory_Group_DisplayName] = + new EnumDisplayWrapper( + DisplayFailureMechanismSectionAssemblyCategoryGroupConverter.Convert(assemblyResult.TotalResult)).DisplayName; + mapFeature.MetaData[Resources.SectionNumber_DisplayName] = assemblyResult.SectionNumber; + + mapFeatures.Add(mapFeature); + } + + return mapFeatures; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/CombinedSectionAssemblyMapDataFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/CombinedSectionAssemblyMapDataFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/CombinedSectionAssemblyMapDataFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,53 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Components.Gis.Data; +using Core.Components.Gis.Style; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Forms.Properties; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating for combined section assembly results. + /// + public static class CombinedSectionAssemblyMapDataFactory + { + /// + /// Creates a with default styling for a combined section assembly. + /// + /// The created . + public static MapLineData CreateCombinedSectionAssemblyResultMapData() + { + return new MapLineData(Resources.AssemblyResultPerSection_DisplayName, + new LineStyle + { + Width = 6, + DashStyle = LineDashStyle.Solid + }, + MapThemeFactory.CreateDisplayFailureMechanismAssemblyCategoryGroupMapTheme()) + { + ShowLabels = true, + SelectedMetaDataAttribute = Resources.SectionNumber_DisplayName + }; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffInwardsAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffInwardsAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffInwardsAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,113 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class GrassCoverSlipOffInwardsAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(GrassCoverSlipOffInwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the detailed assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateDetailedAssemblyFeatures(GrassCoverSlipOffInwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(GrassCoverSlipOffInwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(GrassCoverSlipOffInwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffOutwardsAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffOutwardsAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/GrassCoverSlipOffOutwardsAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,113 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class GrassCoverSlipOffOutwardsAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(GrassCoverSlipOffOutwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the detailed assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateDetailedAssemblyFeatures(GrassCoverSlipOffOutwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(GrassCoverSlipOffOutwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(GrassCoverSlipOffOutwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MacroStabilityOutwardsAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MacroStabilityOutwardsAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MacroStabilityOutwardsAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,140 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class MacroStabilityOutwardsAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(MacroStabilityOutwardsFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the detailed assembly results in . + /// + /// The to create the features for. + /// The the belongs to. + /// A collection of . + /// Thrown when any parameter is null. + public static IEnumerable CreateDetailedAssemblyFeatures(MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + sectionResult => MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + sectionResult, + failureMechanism, + assessmentSection)); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// The the belongs to. + /// A collection of . + /// Thrown when any parameter is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + sectionResult => MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(sectionResult, + failureMechanism, + assessmentSection)); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// The the belongs to. + /// A collection of . + /// Thrown when any parameter is null. + public static IEnumerable CreateCombinedAssemblyFeatures(MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + sectionResult => MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, + failureMechanism, + assessmentSection)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MicrostabilityAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MicrostabilityAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/MicrostabilityAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,113 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class MicrostabilityAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(MicrostabilityFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + MicrostabilityFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the detailed assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateDetailedAssemblyFeatures(MicrostabilityFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + MicrostabilityFailureMechanismAssemblyFactory.AssembleDetailedAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(MicrostabilityFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + MicrostabilityFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(MicrostabilityFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + MicrostabilityFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/PipingStructureAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/PipingStructureAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/PipingStructureAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,113 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class PipingStructureAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(PipingStructureFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + PipingStructureFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the detailed assembly results in . + /// + /// The to create the features for. + /// A collection of . + ///Thrown when + /// is null. + public static IEnumerable CreateDetailedAssemblyFeatures(PipingStructureFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + PipingStructureFailureMechanismAssemblyFactory.AssembleDetailedAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(PipingStructureFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + PipingStructureFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(PipingStructureFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + PipingStructureFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/StrengthStabilityLengthwiseConstructionAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/StrengthStabilityLengthwiseConstructionAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/StrengthStabilityLengthwiseConstructionAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,94 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class StrengthStabilityLengthwiseConstructionAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/TechnicalInnovationAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/TechnicalInnovationAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/TechnicalInnovationAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,94 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class TechnicalInnovationAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(TechnicalInnovationFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + TechnicalInnovationFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(TechnicalInnovationFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + TechnicalInnovationFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(TechnicalInnovationFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + TechnicalInnovationFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/WaterPressureAsphaltCoverAssemblyMapDataFeaturesFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/WaterPressureAsphaltCoverAssemblyMapDataFeaturesFactory.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Factories/WaterPressureAsphaltCoverAssemblyMapDataFeaturesFactory.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,94 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Components.Gis.Features; +using Ringtoets.Common.Forms.Factories; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Factories +{ + /// + /// Factory for creating collections of for assembly results in a . + /// + public static class WaterPressureAsphaltCoverAssemblyMapDataFeaturesFactory + { + /// + /// Creates features for the simple assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateSimpleAssemblyFeatures(WaterPressureAsphaltCoverFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleSimpleAssessment); + } + + /// + /// Creates features for the tailor made assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateTailorMadeAssemblyFeatures(WaterPressureAsphaltCoverFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment); + } + + /// + /// Creates features for the combined assembly results in . + /// + /// The to create the features for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable CreateCombinedAssemblyFeatures(WaterPressureAsphaltCoverFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + return AssemblyMapDataFeaturesFactory.CreateAssemblyCategoryGroupFeatures( + failureMechanism, + WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleCombinedAssessment); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,177 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Windows.Forms; + +namespace Riskeer.Integration.Forms.Merge +{ + partial class AssessmentSectionMergeDataProviderDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AssessmentSectionMergeDataProviderDialog)); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.infoIcon = new System.Windows.Forms.PictureBox(); + this.tableLayoutPanelForForm = new System.Windows.Forms.TableLayoutPanel(); + this.assessmentSectionSelectLabel = new System.Windows.Forms.Label(); + this.assessmentSectionComboBox = new System.Windows.Forms.ComboBox(); + this.tableLayoutPanelForLabel = new System.Windows.Forms.TableLayoutPanel(); + this.failureMechanismSelectLabel = new System.Windows.Forms.Label(); + this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl(); + this.flowLayoutPanelButtons = new System.Windows.Forms.FlowLayoutPanel(); + this.cancelButton = new System.Windows.Forms.Button(); + this.importButton = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.infoIcon)).BeginInit(); + this.tableLayoutPanelForForm.SuspendLayout(); + this.tableLayoutPanelForLabel.SuspendLayout(); + this.flowLayoutPanelButtons.SuspendLayout(); + this.SuspendLayout(); + // + // toolTip + // + this.toolTip.AutoPopDelay = 5000; + this.toolTip.InitialDelay = 100; + this.toolTip.ReshowDelay = 100; + // + // infoIcon + // + resources.ApplyResources(this.infoIcon, "infoIcon"); + this.infoIcon.Name = "infoIcon"; + this.infoIcon.TabStop = false; + // + // tableLayoutPanelForForm + // + resources.ApplyResources(this.tableLayoutPanelForForm, "tableLayoutPanelForForm"); + this.tableLayoutPanelForForm.Controls.Add(this.assessmentSectionSelectLabel, 0, 0); + this.tableLayoutPanelForForm.Controls.Add(this.assessmentSectionComboBox, 0, 1); + this.tableLayoutPanelForForm.Controls.Add(this.tableLayoutPanelForLabel, 0, 2); + this.tableLayoutPanelForForm.Controls.Add(this.dataGridViewControl, 0, 3); + this.tableLayoutPanelForForm.Controls.Add(this.flowLayoutPanelButtons, 0, 4); + this.tableLayoutPanelForForm.Name = "tableLayoutPanelForForm"; + // + // assessmentSectionSelectLabel + // + resources.ApplyResources(this.assessmentSectionSelectLabel, "assessmentSectionSelectLabel"); + this.assessmentSectionSelectLabel.Name = "assessmentSectionSelectLabel"; + // + // assessmentSectionComboBox + // + resources.ApplyResources(this.assessmentSectionComboBox, "assessmentSectionComboBox"); + this.assessmentSectionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.assessmentSectionComboBox.Name = "assessmentSectionComboBox"; + // + // tableLayoutPanelForLabel + // + resources.ApplyResources(this.tableLayoutPanelForLabel, "tableLayoutPanelForLabel"); + this.tableLayoutPanelForLabel.Controls.Add(this.infoIcon, 1, 0); + this.tableLayoutPanelForLabel.Controls.Add(this.failureMechanismSelectLabel, 0, 0); + this.tableLayoutPanelForLabel.Name = "tableLayoutPanelForLabel"; + // + // failureMechanismSelectLabel + // + resources.ApplyResources(this.failureMechanismSelectLabel, "failureMechanismSelectLabel"); + this.failureMechanismSelectLabel.Name = "failureMechanismSelectLabel"; + // + // dataGridViewControl + // + resources.ApplyResources(this.dataGridViewControl, "dataGridViewControl"); + this.dataGridViewControl.MultiSelect = true; + this.dataGridViewControl.Name = "dataGridViewControl"; + this.dataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // flowLayoutPanelButtons + // + resources.ApplyResources(this.flowLayoutPanelButtons, "flowLayoutPanelButtons"); + this.flowLayoutPanelButtons.Controls.Add(this.cancelButton); + this.flowLayoutPanelButtons.Controls.Add(this.importButton); + this.flowLayoutPanelButtons.Name = "flowLayoutPanelButtons"; + // + // cancelButton + // + resources.ApplyResources(this.cancelButton, "cancelButton"); + this.cancelButton.DialogResult = DialogResult.Cancel; + this.cancelButton.Name = "cancelButton"; + this.cancelButton.UseVisualStyleBackColor = true; + // + // importButton + // + resources.ApplyResources(this.importButton, "importButton"); + this.importButton.DialogResult = DialogResult.OK; + this.importButton.Name = "importButton"; + this.importButton.UseVisualStyleBackColor = true; + // + // AssessmentSectionMergeDataProviderDialog + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tableLayoutPanelForForm); + this.Name = "AssessmentSectionMergeDataProviderDialog"; + ((System.ComponentModel.ISupportInitialize)(this.infoIcon)).EndInit(); + this.tableLayoutPanelForForm.ResumeLayout(false); + this.tableLayoutPanelForForm.PerformLayout(); + this.tableLayoutPanelForLabel.ResumeLayout(false); + this.tableLayoutPanelForLabel.PerformLayout(); + this.flowLayoutPanelButtons.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelForForm; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelForLabel; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.PictureBox infoIcon; + private System.Windows.Forms.Label assessmentSectionSelectLabel; + private System.Windows.Forms.Label failureMechanismSelectLabel; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelButtons; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button importButton; + private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl; + private System.Windows.Forms.ComboBox assessmentSectionComboBox; + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,206 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Controls.Dialogs; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.DuneErosion.Data; +using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.HeightStructures.Data; +using Ringtoets.MacroStabilityInwards.Data; +using Ringtoets.Piping.Data; +using Ringtoets.StabilityPointStructures.Data; +using Ringtoets.StabilityStoneCover.Data; +using Ringtoets.WaveImpactAsphaltCover.Data; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Merge; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; + +namespace Riskeer.Integration.Forms.Merge +{ + /// + /// A dialog for providing the data to merge. + /// + public partial class AssessmentSectionMergeDataProviderDialog : DialogBase, IAssessmentSectionMergeDataProvider + { + private FailureMechanismMergeDataRow[] failureMechanismMergeDataRows; + + /// + /// Creates a new instance of . + /// + /// The parent of the dialog. + /// Thrown when + /// is null. + public AssessmentSectionMergeDataProviderDialog(IWin32Window dialogParent) + : base(dialogParent, RingtoetsCommonFormsResources.SelectionDialogIcon, 720, 590) + { + InitializeComponent(); + InitializeComboBox(); + InitializeTooltip(); + InitializeDataGridView(); + } + + public AssessmentSectionMergeData GetMergeData(IEnumerable assessmentSections) + { + if (assessmentSections == null) + { + throw new ArgumentNullException(nameof(assessmentSections)); + } + + if (!assessmentSections.Any()) + { + throw new ArgumentException($@"{nameof(assessmentSections)} must at least have one element.", nameof(assessmentSections)); + } + + SetComboBoxData(assessmentSections); + + if (ShowDialog() == DialogResult.OK) + { + var constructionProperties = new AssessmentSectionMergeData.ConstructionProperties + { + MergePiping = FailureMechanismIsSelectedToMerge(), + MergeGrassCoverErosionInwards = FailureMechanismIsSelectedToMerge(), + MergeMacroStabilityInwards = FailureMechanismIsSelectedToMerge(), + MergeMacroStabilityOutwards = FailureMechanismIsSelectedToMerge(), + MergeMicrostability = FailureMechanismIsSelectedToMerge(), + MergeStabilityStoneCover = FailureMechanismIsSelectedToMerge(), + MergeWaveImpactAsphaltCover = FailureMechanismIsSelectedToMerge(), + MergeWaterPressureAsphaltCover = FailureMechanismIsSelectedToMerge(), + MergeGrassCoverErosionOutwards = FailureMechanismIsSelectedToMerge(), + MergeGrassCoverSlipOffOutwards = FailureMechanismIsSelectedToMerge(), + MergeGrassCoverSlipOffInwards = FailureMechanismIsSelectedToMerge(), + MergeHeightStructures = FailureMechanismIsSelectedToMerge(), + MergeClosingStructures = FailureMechanismIsSelectedToMerge(), + MergePipingStructure = FailureMechanismIsSelectedToMerge(), + MergeStabilityPointStructures = FailureMechanismIsSelectedToMerge(), + MergeStrengthStabilityLengthwiseConstruction = FailureMechanismIsSelectedToMerge(), + MergeDuneErosion = FailureMechanismIsSelectedToMerge(), + MergeTechnicalInnovation = FailureMechanismIsSelectedToMerge() + }; + + return new AssessmentSectionMergeData((AssessmentSection) assessmentSectionComboBox.SelectedItem, + constructionProperties); + } + + return null; + } + + protected override Button GetCancelButton() + { + return cancelButton; + } + + private void InitializeComboBox() + { + assessmentSectionComboBox.SelectedIndexChanged += AssessmentSectionComboBoxOnSelectedIndexChanged; + } + + private void InitializeDataGridView() + { + dataGridViewControl.AddCheckBoxColumn(nameof(FailureMechanismMergeDataRow.IsSelected), + Resources.FailureMechanismMergeDataRow_IsSelected_DisplayName); + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismMergeDataRow.Name), + Resources.FailureMechanism_Name_DisplayName, + true); + dataGridViewControl.AddCheckBoxColumn(nameof(FailureMechanismMergeDataRow.IsRelevant), + Resources.FailureMechanism_IsRelevant_DisplayName, + true); + dataGridViewControl.AddCheckBoxColumn(nameof(FailureMechanismMergeDataRow.HasSections), + Resources.FailureMechanismMergeDataRow_HasSections_DisplayName, + true); + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismMergeDataRow.NumberOfCalculations), + Resources.FailureMechanismMergeDataRow_NumberOfCalculations_DisplayName, + true); + } + + private void InitializeTooltip() + { + infoIcon.BackgroundImage = CoreCommonGuiResources.information; + toolTip.SetToolTip(infoIcon, Resources.AssessmentSectionMergeDataProviderDialog_InfoToolTip); + } + + private bool FailureMechanismIsSelectedToMerge() + where TFailureMechanism : IFailureMechanism + { + return failureMechanismMergeDataRows.Any(row => row.FailureMechanism is TFailureMechanism && row.IsSelected); + } + + #region Event Handling + + private void AssessmentSectionComboBoxOnSelectedIndexChanged(object sender, EventArgs eventArgs) + { + if (assessmentSectionComboBox.SelectedIndex == -1) + { + return; + } + + SetDataGridViewData((AssessmentSection) assessmentSectionComboBox.SelectedItem); + } + + #endregion + + #region Data Setters + + private void SetComboBoxData(IEnumerable assessmentSections) + { + assessmentSectionComboBox.DataSource = null; + assessmentSectionComboBox.DataSource = assessmentSections.ToArray(); + assessmentSectionComboBox.DisplayMember = nameof(AssessmentSection.Name); + } + + private void SetDataGridViewData(AssessmentSection assessmentSection) + { + failureMechanismMergeDataRows = new[] + { + new FailureMechanismMergeDataRow(assessmentSection.Piping), + new FailureMechanismMergeDataRow(assessmentSection.GrassCoverErosionInwards), + new FailureMechanismMergeDataRow(assessmentSection.MacroStabilityInwards), + new FailureMechanismMergeDataRow(assessmentSection.MacroStabilityOutwards), + new FailureMechanismMergeDataRow(assessmentSection.Microstability), + new FailureMechanismMergeDataRow(assessmentSection.StabilityStoneCover), + new FailureMechanismMergeDataRow(assessmentSection.WaveImpactAsphaltCover), + new FailureMechanismMergeDataRow(assessmentSection.WaterPressureAsphaltCover), + new FailureMechanismMergeDataRow(assessmentSection.GrassCoverErosionOutwards), + new FailureMechanismMergeDataRow(assessmentSection.GrassCoverSlipOffOutwards), + new FailureMechanismMergeDataRow(assessmentSection.GrassCoverSlipOffInwards), + new FailureMechanismMergeDataRow(assessmentSection.HeightStructures), + new FailureMechanismMergeDataRow(assessmentSection.ClosingStructures), + new FailureMechanismMergeDataRow(assessmentSection.PipingStructure), + new FailureMechanismMergeDataRow(assessmentSection.StabilityPointStructures), + new FailureMechanismMergeDataRow(assessmentSection.StrengthStabilityLengthwiseConstruction), + new FailureMechanismMergeDataRow(assessmentSection.DuneErosion), + new FailureMechanismMergeDataRow(assessmentSection.TechnicalInnovation) + }; + + dataGridViewControl.SetDataSource(failureMechanismMergeDataRows); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeDataProviderDialog.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + Bottom, Right + + + Center + + + + 455, 8 + + + 7, 7, 7, 0 + + + 16, 16 + + + + 0 + + + infoIcon + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForLabel + + + 0 + + + True + + + 1 + + + Bottom + + + 3, 14 + + + 478, 16 + + + 0 + + + Selecteer traject: + + + BottomLeft + + + assessmentSectionSelectLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForForm + + + 0 + + + Fill + + + 3, 33 + + + 478, 21 + + + 0 + + + assessmentSectionComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForForm + + + 1 + + + 2 + + + True + + + Bottom + + + 3, 11 + + + 113, 13 + + + 0 + + + Selecteer toetssporen: + + + MiddleLeft + + + failureMechanismSelectLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForLabel + + + 1 + + + Fill + + + 3, 60 + + + 1 + + + 478, 24 + + + 1 + + + tableLayoutPanelForLabel + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForForm + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="infoIcon" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="failureMechanismSelectLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + Fill + + + 3, 90 + + + 478, 184 + + + 2 + + + dataGridViewControl + + + Core.Common.Controls.DataGrid.DataGridViewControl, Core.Common.Controls, Version=18.1.1.1, Culture=neutral, PublicKeyToken=null + + + tableLayoutPanelForForm + + + 3 + + + True + + + 400, 3 + + + 75, 23 + + + 0 + + + Annuleren + + + cancelButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanelButtons + + + 0 + + + 319, 3 + + + 75, 23 + + + 1 + + + Importeren + + + importButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + flowLayoutPanelButtons + + + 1 + + + Bottom + + + RightToLeft + + + 3, 280 + + + 478, 29 + + + 3 + + + flowLayoutPanelButtons + + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelForForm + + + 4 + + + Fill + + + 0, 0 + + + 5 + + + 484, 312 + + + 0 + + + tableLayoutPanelForForm + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="assessmentSectionSelectLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="assessmentSectionComboBox" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanelForLabel" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="dataGridViewControl" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="flowLayoutPanelButtons" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,30,AutoSize,0,Absolute,30,Percent,100,AutoSize,0" /></TableLayoutSettings> + + + True + + + 6, 13 + + + 484, 312 + + + 500, 350 + + + Selecteer trajectinformatie + + + toolTip + + + System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AssessmentSectionMergeDataProviderDialog + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeFilePathProvider.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeFilePathProvider.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/AssessmentSectionMergeFilePathProvider.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,56 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Gui; +using RingtoetsStorageCoreResources = Riskeer.Storage.Core.Properties.Resources; + +namespace Riskeer.Integration.Forms.Merge +{ + /// + /// Class for providing a file path of a project that might contain assessment sections that can be merged. + /// + public class AssessmentSectionMergeFilePathProvider : IAssessmentSectionMergeFilePathProvider + { + private readonly IInquiryHelper inquiryHelper; + + /// + /// Creates a new instance of . + /// + /// Object responsible for inquiring the required data. + /// Thrown when + /// is null. + public AssessmentSectionMergeFilePathProvider(IInquiryHelper inquiryHelper) + { + if (inquiryHelper == null) + { + throw new ArgumentNullException(nameof(inquiryHelper)); + } + + this.inquiryHelper = inquiryHelper; + } + + public string GetFilePath() + { + return inquiryHelper.GetSourceFileLocation(RingtoetsStorageCoreResources.Ringtoets_project_file_filter); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/FailureMechanismMergeDataRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/FailureMechanismMergeDataRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/FailureMechanismMergeDataRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,104 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Ringtoets.Common.Data.FailureMechanism; + +namespace Riskeer.Integration.Forms.Merge +{ + /// + /// Row representing the information of a to be + /// used for merging. + /// + internal class FailureMechanismMergeDataRow + { + /// + /// Creates a new instance of . + /// + /// The wrapped . + /// Thrown when + /// is null. + public FailureMechanismMergeDataRow(IFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + FailureMechanism = failureMechanism; + } + + /// + /// Gets the wrapped failure mechanism of the row. + /// + public IFailureMechanism FailureMechanism { get; } + + /// + /// Gets and sets whether the failure mechanism is selected to be merged. + /// + public bool IsSelected { get; set; } + + /// + /// Gets the name of the failure mechanism. + /// + public string Name + { + get + { + return FailureMechanism.Name; + } + } + + /// + /// Gets indicator whether the failure mechanism is marked relevant. + /// + public bool IsRelevant + { + get + { + return FailureMechanism.IsRelevant; + } + } + + /// + /// Gets indicator whether the failure mechanism has sections. + /// + public bool HasSections + { + get + { + return FailureMechanism.Sections.Any(); + } + } + + /// + /// Gets the amount of calculations that are contained by the failure mechanism. + /// + public int NumberOfCalculations + { + get + { + return FailureMechanism.Calculations.Count(); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeDataProvider.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,46 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Merge; + +namespace Riskeer.Integration.Forms.Merge +{ + /// + /// Interface for providing the data to merge. + /// + public interface IAssessmentSectionMergeDataProvider + { + /// + /// Gets the data to merge. + /// + /// The collection of assessment sections to get the merge + /// data from. + /// The selected merge data. + /// Thrown when + /// is null. + /// Thrown when + /// contains no elements. + AssessmentSectionMergeData GetMergeData(IEnumerable assessmentSections); + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeFilePathProvider.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeFilePathProvider.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Merge/IAssessmentSectionMergeFilePathProvider.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,35 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.Integration.Forms.Merge +{ + /// + /// Interface for providing a file path of a project that might contain assessment sections that can be merged. + /// + public interface IAssessmentSectionMergeFilePathProvider + { + /// + /// Gets the file path. + /// + /// A file path, or null if no file was chosen. + string GetFilePath(); + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Observers/AssessmentSectionResultObserver.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Observers/AssessmentSectionResultObserver.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Observers/AssessmentSectionResultObserver.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,232 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Forms.Observers; +using Ringtoets.DuneErosion.Data; +using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.HeightStructures.Data; +using Ringtoets.MacroStabilityInwards.Data; +using Ringtoets.Piping.Data; +using Ringtoets.StabilityPointStructures.Data; +using Ringtoets.StabilityStoneCover.Data; +using Ringtoets.WaveImpactAsphaltCover.Data; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Observers +{ + /// + /// Class that observes all objects in an related to + /// its section results. + /// + public class AssessmentSectionResultObserver : Observable, IDisposable + { + private readonly Observer assessmentSectionObserver; + private readonly Observer referenceLineObserver; + private readonly Observer closingStructuresObserver; + private readonly Observer duneErosionObserver; + private readonly Observer grassCoverErosionInwardsObserver; + private readonly Observer grassCoverErosionOutwardsObserver; + private readonly Observer heightStructuresObserver; + private readonly Observer macroStabilityInwardsObserver; + private readonly Observer pipingObserver; + private readonly Observer stabilityPointStructuresObserver; + private readonly Observer stabilityStoneCoverObserver; + private readonly Observer waveImpactAsphaltCoverObserver; + private readonly Observer grassCoverSlipOffInwardsObserver; + private readonly Observer grassCoverSlipOffOutwardsObserver; + private readonly Observer macroStabilityOutwardsObserver; + private readonly Observer microstabilityObserver; + private readonly Observer pipingStructureObserver; + private readonly Observer strengthStabilityLengthwiseConstructionObserver; + private readonly Observer technicalInnovationObserver; + private readonly Observer waterPressureAsphaltCoverObserver; + + /// + /// Creates a new instance of . + /// + /// The to observe. + /// Thrown when is null. + public AssessmentSectionResultObserver(AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + assessmentSectionObserver = new Observer(() => + { + ResubscribeFailureMechanismObservers(assessmentSection); + NotifyObservers(); + }) + { + Observable = assessmentSection + }; + + referenceLineObserver = new Observer(NotifyObservers) + { + Observable = assessmentSection.ReferenceLine + }; + + closingStructuresObserver = CreateCalculatableFailureMechanismObserver>(assessmentSection.ClosingStructures); + + duneErosionObserver = CreateFailureMechanismObserver(assessmentSection.DuneErosion); + + grassCoverErosionInwardsObserver = CreateCalculatableFailureMechanismObserver(assessmentSection.GrassCoverErosionInwards); + + grassCoverErosionOutwardsObserver = CreateFailureMechanismObserver(assessmentSection.GrassCoverErosionOutwards); + + heightStructuresObserver = CreateCalculatableFailureMechanismObserver>(assessmentSection.HeightStructures); + + macroStabilityInwardsObserver = CreateCalculatableFailureMechanismObserver(assessmentSection.MacroStabilityInwards); + + pipingObserver = CreateCalculatableFailureMechanismObserver(assessmentSection.Piping); + + stabilityPointStructuresObserver = CreateCalculatableFailureMechanismObserver>(assessmentSection.StabilityPointStructures); + + stabilityStoneCoverObserver = CreateFailureMechanismObserver(assessmentSection.StabilityStoneCover); + + waveImpactAsphaltCoverObserver = CreateFailureMechanismObserver(assessmentSection.WaveImpactAsphaltCover); + + grassCoverSlipOffInwardsObserver = CreateFailureMechanismObserver(assessmentSection.GrassCoverSlipOffInwards); + + grassCoverSlipOffOutwardsObserver = CreateFailureMechanismObserver(assessmentSection.GrassCoverSlipOffOutwards); + + macroStabilityOutwardsObserver = CreateFailureMechanismObserver(assessmentSection.MacroStabilityOutwards); + + microstabilityObserver = CreateFailureMechanismObserver(assessmentSection.Microstability); + + pipingStructureObserver = CreateFailureMechanismObserver(assessmentSection.PipingStructure); + + strengthStabilityLengthwiseConstructionObserver = CreateFailureMechanismObserver(assessmentSection.StrengthStabilityLengthwiseConstruction); + + technicalInnovationObserver = CreateFailureMechanismObserver(assessmentSection.TechnicalInnovation); + + waterPressureAsphaltCoverObserver = CreateFailureMechanismObserver(assessmentSection.WaterPressureAsphaltCover); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!disposing) + { + return; + } + + assessmentSectionObserver.Dispose(); + referenceLineObserver.Dispose(); + closingStructuresObserver.Dispose(); + duneErosionObserver.Dispose(); + grassCoverErosionInwardsObserver.Dispose(); + grassCoverErosionOutwardsObserver.Dispose(); + heightStructuresObserver.Dispose(); + macroStabilityInwardsObserver.Dispose(); + pipingObserver.Dispose(); + stabilityPointStructuresObserver.Dispose(); + stabilityStoneCoverObserver.Dispose(); + waveImpactAsphaltCoverObserver.Dispose(); + grassCoverSlipOffInwardsObserver.Dispose(); + grassCoverSlipOffOutwardsObserver.Dispose(); + macroStabilityOutwardsObserver.Dispose(); + microstabilityObserver.Dispose(); + pipingStructureObserver.Dispose(); + strengthStabilityLengthwiseConstructionObserver.Dispose(); + technicalInnovationObserver.Dispose(); + waterPressureAsphaltCoverObserver.Dispose(); + } + + private void ResubscribeFailureMechanismObservers(AssessmentSection assessmentSection) + { + closingStructuresObserver.Observable = assessmentSection.ClosingStructures; + duneErosionObserver.Observable = assessmentSection.DuneErosion; + grassCoverErosionInwardsObserver.Observable = assessmentSection.GrassCoverErosionInwards; + grassCoverErosionOutwardsObserver.Observable = assessmentSection.GrassCoverErosionOutwards; + heightStructuresObserver.Observable = assessmentSection.HeightStructures; + macroStabilityInwardsObserver.Observable = assessmentSection.MacroStabilityInwards; + pipingObserver.Observable = assessmentSection.Piping; + stabilityPointStructuresObserver.Observable = assessmentSection.StabilityPointStructures; + stabilityStoneCoverObserver.Observable = assessmentSection.StabilityStoneCover; + waveImpactAsphaltCoverObserver.Observable = assessmentSection.WaveImpactAsphaltCover; + grassCoverSlipOffInwardsObserver.Observable = assessmentSection.GrassCoverSlipOffInwards; + grassCoverSlipOffOutwardsObserver.Observable = assessmentSection.GrassCoverSlipOffOutwards; + macroStabilityOutwardsObserver.Observable = assessmentSection.MacroStabilityOutwards; + microstabilityObserver.Observable = assessmentSection.Microstability; + pipingStructureObserver.Observable = assessmentSection.PipingStructure; + strengthStabilityLengthwiseConstructionObserver.Observable = assessmentSection.StrengthStabilityLengthwiseConstruction; + technicalInnovationObserver.Observable = assessmentSection.TechnicalInnovation; + waterPressureAsphaltCoverObserver.Observable = assessmentSection.WaterPressureAsphaltCover; + } + + private Observer CreateCalculatableFailureMechanismObserver(TFailureMechanism failureMechanism) + where TFailureMechanism : IFailureMechanism, IHasSectionResults, ICalculatableFailureMechanism + where TSectionResult : FailureMechanismSectionResult + where TCalculation : ICalculation + { + return new Observer(NotifyObservers) + { + Observable = new CalculatableFailureMechanismResultObserver(failureMechanism) + }; + } + + private Observer CreateFailureMechanismObserver(TFailureMechanism failureMechanism) + where TFailureMechanism : IFailureMechanism, IHasSectionResults + where TSectionResult : FailureMechanismSectionResult + { + return new Observer(NotifyObservers) + { + Observable = new FailureMechanismResultObserver(failureMechanism) + }; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultCategoriesContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultCategoriesContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultCategoriesContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,59 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Common.Controls.PresentationObjects; +using Ringtoets.Common.Data.AssemblyTool; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Data.Exceptions; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for presenting the category boundaries used in the overall assembly results of an . + /// + public class AssemblyResultCategoriesContext : ObservableWrappedObjectContextBase + { + /// + /// Creates a new instance of . + /// + /// The assessment section to present the overall assembly results for. + /// Thrown when is null. + public AssemblyResultCategoriesContext(AssessmentSection assessmentSection) + : base(assessmentSection) + { + FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution; + + GetAssemblyCategoriesFunc = () => AssemblyToolCategoriesFactory.CreateFailureMechanismAssemblyCategories(failureMechanismContribution.SignalingNorm, + failureMechanismContribution.LowerLimitNorm, + assessmentSection.FailureProbabilityMarginFactor); + } + + /// + /// Gets the function to retrieve a collection of . + /// + /// Thrown when an error occurs while creating the categories. + public Func> GetAssemblyCategoriesFunc { get; } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,40 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.PresentationObjects; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for presenting the assembly results of an on a per section basis. + /// + public class AssemblyResultPerSectionContext : ObservableWrappedObjectContextBase + { + /// + /// Creates a new instance of . + /// + /// The assessment section to present the assembly results for on a per section basis. + /// Thrown when is null. + public AssemblyResultPerSectionContext(AssessmentSection assessmentSection) : base(assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionMapContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionMapContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultPerSectionMapContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,40 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for presenting the assembly results of an on a per section basis on a map. + /// + public class AssemblyResultPerSectionMapContext : AssemblyResultPerSectionContext + { + /// + /// Creates a new instance of . + /// + /// The assessment section to present the assembly results for on a per section basis on a map. + /// Thrown when is null. + public AssemblyResultPerSectionMapContext(AssessmentSection assessmentSection) + : base(assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultTotalContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultTotalContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultTotalContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,40 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.PresentationObjects; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for presenting the overall assembly results of an . + /// + public class AssemblyResultTotalContext : ObservableWrappedObjectContextBase + { + /// + /// Creates a new instance of . + /// + /// The assessment section to present the overall assembly results for. + /// Thrown when is null. + public AssemblyResultTotalContext(AssessmentSection assessmentSection) : base(assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/AssemblyResultsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,40 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.PresentationObjects; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for presenting all the assembly results of an + /// + public class AssemblyResultsContext : ObservableWrappedObjectContextBase + { + /// + /// Creates a new instance of . + /// + /// The assessment section to present all the assembly results for. + /// Thrown when is null. + public AssemblyResultsContext(AssessmentSection assessmentSection) : base(assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/HydraulicBoundaryDatabaseContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/HydraulicBoundaryDatabaseContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/HydraulicBoundaryDatabaseContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,57 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.PresentationObjects; +using Ringtoets.Common.Data.Hydraulics; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// Presentation object for all data required to configure an instance of . + /// + public class HydraulicBoundaryDatabaseContext : ObservableWrappedObjectContextBase + { + /// + /// Creates a new instance of . + /// + /// The that the belongs to. + /// The assessment section that the belongs to. + /// Thrown when any parameter is null. + public HydraulicBoundaryDatabaseContext(HydraulicBoundaryDatabase wrappedData, + AssessmentSection assessmentSection) + : base(wrappedData) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + AssessmentSection = assessmentSection; + } + + /// + /// Gets the assessment section that the context belongs to. + /// + public AssessmentSection AssessmentSection { get; } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/MacroStabilityOutwardsAssemblyCategoriesContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/MacroStabilityOutwardsAssemblyCategoriesContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/MacroStabilityOutwardsAssemblyCategoriesContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,58 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Ringtoets.Common.Data.AssemblyTool; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects +{ + /// + /// This class is a presentation object for failure mechanism category boundaries for a + /// instance. + /// + public class MacroStabilityOutwardsAssemblyCategoriesContext : FailureMechanismAssemblyCategoriesContextBase + { + /// + /// Creates a new instance of . + /// + /// The to wrap. + /// The assessment section the belongs to. + /// The function to get the 'N' parameter used to factor in the 'length effect'. + /// Thrown when any input parameter is null. + public MacroStabilityOutwardsAssemblyCategoriesContext(MacroStabilityOutwardsFailureMechanism wrappedData, + IAssessmentSection assessmentSection, + Func getNFunc) + : base(wrappedData, assessmentSection, getNFunc) + { + GetFailureMechanismSectionAssemblyCategoriesFunc = () => + AssemblyToolCategoriesFactory.CreateGeotechnicalFailureMechanismSectionAssemblyCategories(assessmentSection.FailureMechanismContribution.Norm, + wrappedData.Contribution, + getNFunc()); + } + + public override Func> GetFailureMechanismSectionAssemblyCategoriesFunc { get; } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class GrassCoverSlipOffInwardsFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public GrassCoverSlipOffInwardsFailureMechanismContext(GrassCoverSlipOffInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffInwardsFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class GrassCoverSlipOffInwardsFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public GrassCoverSlipOffInwardsFailureMechanismSectionsContext(GrassCoverSlipOffInwardsFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class GrassCoverSlipOffOutwardsFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public GrassCoverSlipOffOutwardsFailureMechanismContext(GrassCoverSlipOffOutwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/GrassCoverSlipOffOutwardsFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class GrassCoverSlipOffOutwardsFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public GrassCoverSlipOffOutwardsFailureMechanismSectionsContext(GrassCoverSlipOffOutwardsFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class MacroStabilityOutwardsFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public MacroStabilityOutwardsFailureMechanismContext(MacroStabilityOutwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MacroStabilityOutwardsFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class MacroStabilityOutwardsFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public MacroStabilityOutwardsFailureMechanismSectionsContext(MacroStabilityOutwardsFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class MicrostabilityFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public MicrostabilityFailureMechanismContext(MicrostabilityFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/MicrostabilityFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class MicrostabilityFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public MicrostabilityFailureMechanismSectionsContext(MicrostabilityFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class PipingStructureFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public PipingStructureFailureMechanismContext(PipingStructureFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/PipingStructureFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class PipingStructureFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public PipingStructureFailureMechanismSectionsContext(PipingStructureFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,44 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class StrengthStabilityLengthwiseConstructionFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public StrengthStabilityLengthwiseConstructionFailureMechanismContext(StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,44 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public StrengthStabilityLengthwiseConstructionFailureMechanismSectionsContext(StrengthStabilityLengthwiseConstructionFailureMechanism wrappedData, + IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class TechnicalInnovationFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public TechnicalInnovationFailureMechanismContext(TechnicalInnovationFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/TechnicalInnovationFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class TechnicalInnovationFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public TechnicalInnovationFailureMechanismSectionsContext(TechnicalInnovationFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for an instance of . + /// + public class WaterPressureAsphaltCoverFailureMechanismContext : FailureMechanismContext + { + /// + /// Initializes a new instance of the class. + /// + /// The failure mechanism. + /// The parent of . + /// Thrown when any input argument is null. + public WaterPressureAsphaltCoverFailureMechanismContext(WaterPressureAsphaltCoverFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + : base(failureMechanism, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismSectionsContext.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismSectionsContext.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PresentationObjects/StandAlone/WaterPressureAsphaltCoverFailureMechanismSectionsContext.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.PresentationObjects.StandAlone +{ + /// + /// This class is a presentation object for . + /// + public class WaterPressureAsphaltCoverFailureMechanismSectionsContext : FailureMechanismSectionsContext + { + /// + /// Initializes a new instance of the class. + /// + /// The to wrap. + /// The owning assessment section of . + /// Thrown when any input argument is null. + public WaterPressureAsphaltCoverFailureMechanismSectionsContext(WaterPressureAsphaltCoverFailureMechanism wrappedData, IAssessmentSection assessmentSection) + : base(wrappedData, assessmentSection) {} + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/AssemblyInfo.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,27 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyTitle("Riskeer.Integration.Forms")] +[assembly: AssemblyProduct("Riskeer.Integration.Forms")] +[assembly: InternalsVisibleTo("Ringtoets.Integration.Forms.Test")] \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,1090 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.Integration.Forms.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.Integration.Forms.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to T&raject toevoegen.... + /// + public static string AddAssessmentSection_DisplayName { + get { + return ResourceManager.GetString("AddAssessmentSection_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap AddAssessmentSectionFolder { + get { + object obj = ResourceManager.GetObject("AddAssessmentSectionFolder", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Categoriegrenzen voor de gecombineerde toetssporen 1 en 2. + /// + public static string AssemblyResultCategories_DisplayName { + get { + return ResourceManager.GetString("AssemblyResultCategories_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gecombineerd vakoordeel. + /// + public static string AssemblyResultPerSection_DisplayName { + get { + return ResourceManager.GetString("AssemblyResultPerSection_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assemblagekaart. + /// + public static string AssemblyResultPerSectionMapView_DisplayName { + get { + return ResourceManager.GetString("AssemblyResultPerSectionMapView_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toetsoordeel groepen 3 en 4. + /// + public static string AssemblyResultTotalView_FailureMechanismsWithoutProbabilityResultLabel_Text { + get { + return ResourceManager.GetString("AssemblyResultTotalView_FailureMechanismsWithoutProbabilityResultLabel_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toetsoordeel groepen 1 en 2. + /// + public static string AssemblyResultTotalView_FailureMechanismsWithProbabilityResultLabel_Text { + get { + return ResourceManager.GetString("AssemblyResultTotalView_FailureMechanismsWithProbabilityResultLabel_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Benaderde faalkans [1/jaar]. + /// + public static string AssemblyResultTotalView_Probability_DisplayName { + get { + return ResourceManager.GetString("AssemblyResultTotalView_Probability_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Veiligheidsoordeel. + /// + public static string AssemblyResultTotalView_TotalResultLabel_Text { + get { + return ResourceManager.GetString("AssemblyResultTotalView_TotalResultLabel_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toetsoordeel is verouderd. Druk op de "Toetsoordeel verversen" knop om opnieuw te berekenen.. + /// + public static string AssemblyResultView_RefreshAssemblyResultsButton_Warning_Result_is_outdated_Press_Refresh_button_to_recalculate { + get { + return ResourceManager.GetString("AssemblyResultView_RefreshAssemblyResultsButton_Warning_Result_is_outdated_Press_" + + "Refresh_button_to_recalculate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ID van het traject.. + /// + public static string AssessmentSection_Id_Description { + get { + return ResourceManager.GetString("AssessmentSection_Id_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ID. + /// + public static string AssessmentSection_Id_DisplayName { + get { + return ResourceManager.GetString("AssessmentSection_Id_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam van het traject.. + /// + public static string AssessmentSection_Name_Description { + get { + return ResourceManager.GetString("AssessmentSection_Name_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam. + /// + public static string AssessmentSection_Name_DisplayName { + get { + return ResourceManager.GetString("AssessmentSection_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selecteer het type traject, bepalend voor de faalkansbegroting.. + /// + public static string AssessmentSectionComposition_Composition_Description { + get { + return ResourceManager.GetString("AssessmentSectionComposition_Composition_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trajecttype. + /// + public static string AssessmentSectionComposition_Composition_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionComposition_Composition_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap AssessmentSectionFolder { + get { + object obj = ResourceManager.GetObject("AssessmentSectionFolder", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap AssessmentSectionFolderIcon { + get { + object obj = ResourceManager.GetObject("AssessmentSectionFolderIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Het importeren van de referentielijn is mislukt.. + /// + public static string AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_Importing_ReferenceLineFailed { + get { + return ResourceManager.GetString("AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_Importing_Referen" + + "ceLineFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er zijn geen instellingen gevonden voor het geselecteerde traject. Standaardinstellingen zullen gebruikt worden.. + /// + public static string AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_No_settings_found_for_AssessmentSection { + get { + return ResourceManager.GetString("AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_No_settings_found" + + "_for_AssessmentSection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Het traject kan niet aangemaakt worden met een ondergrens van {0} en een signaleringswaarde van {1}. De waarde van de ondergrens en signaleringswaarde moet in het bereik {2} liggen en de ondergrens moet gelijk zijn aan of groter zijn dan de signaleringswaarde.. + /// + public static string AssessmentSectionFromFileCommandHandler_Unable_to_create_assessmentSection_with_LowerLimitNorm_0_and_SignalingNorm_1_Norms_should_be_in_Range_2_ { + get { + return ResourceManager.GetString("AssessmentSectionFromFileCommandHandler_Unable_to_create_assessmentSection_with_L" + + "owerLimitNorm_0_and_SignalingNorm_1_Norms_should_be_in_Range_2_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er kunnen geen trajecten gelezen worden uit het shapebestand.. + /// + public static string AssessmentSectionFromFileCommandHandler_ValidateReferenceLineMetas_No_referenceLines_in_file { + get { + return ResourceManager.GetString("AssessmentSectionFromFileCommandHandler_ValidateReferenceLineMetas_No_referenceLi" + + "nes_in_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trajectkaart. + /// + public static string AssessmentSectionMap_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionMap_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hydraulische belastingen op trajectniveau worden altijd samengevoegd. + ///Daarbij gaan de huidige berekeningsresultaten voor belastingen op trajectniveau niet verloren.. + /// + public static string AssessmentSectionMergeDataProviderDialog_InfoToolTip { + get { + return ResourceManager.GetString("AssessmentSectionMergeDataProviderDialog_InfoToolTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Geeft aan of de geselecteerde achtergrond kaartlaag in alle kaarten van dit traject wordt weergegeven.. + /// + public static string BackgroundDataProperties_IsVisible_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_IsVisible_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Weergeven. + /// + public static string BackgroundDataProperties_IsVisible_DisplayName { + get { + return ResourceManager.GetString("BackgroundDataProperties_IsVisible_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Omschrijving van de achtergrond kaartlaag.. + /// + public static string BackgroundDataProperties_Name_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_Name_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Omschrijving. + /// + public static string BackgroundDataProperties_Name_DisplayName { + get { + return ResourceManager.GetString("BackgroundDataProperties_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Transparantie waarmee de achtergrond kaartlaag wordt weergegeven.. + /// + public static string BackgroundDataProperties_Transparency_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_Transparency_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Transparantie. + /// + public static string BackgroundDataProperties_Transparency_DisplayName { + get { + return ResourceManager.GetString("BackgroundDataProperties_Transparency_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WMTS. + /// + public static string BackgroundDataProperties_Wmts_Category { + get { + return ResourceManager.GetString("BackgroundDataProperties_Wmts_Category", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Het type afbeelding die door de geselecteerde kaartlaag aangeleverd wordt.. + /// + public static string BackgroundDataProperties_Wmts_PreferredFormat_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_Wmts_PreferredFormat_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De naam van de geselecteerde kaartlaag.. + /// + public static string BackgroundDataProperties_Wmts_SelectedCapabilityIdentifier_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_Wmts_SelectedCapabilityIdentifier_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Volledige URL naar de Web Map Tile Service (WMTS) die als achtergrond kaartlaag gebruikt wordt.. + /// + public static string BackgroundDataProperties_Wmts_Url_Description { + get { + return ResourceManager.GetString("BackgroundDataProperties_Wmts_Url_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to URL. + /// + public static string BackgroundDataProperties_Wmts_Url_DisplayName { + get { + return ResourceManager.GetString("BackgroundDataProperties_Wmts_Url_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam van de berekening.. + /// + public static string Calculation_Name_Description { + get { + return ResourceManager.GetString("Calculation_Name_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam. + /// + public static string Calculation_Name_DisplayName { + get { + return ResourceManager.GetString("Calculation_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam van de map met berekeningen.. + /// + public static string CalculationGroup_Name_Description { + get { + return ResourceManager.GetString("CalculationGroup_Name_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam. + /// + public static string CalculationGroup_Name_DisplayName { + get { + return ResourceManager.GetString("CalculationGroup_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Map met berekeningen. + /// + public static string CalculationGroupContextProperties_DisplayName { + get { + return ResourceManager.GetString("CalculationGroupContextProperties_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De uitvoer van alle afhankelijke berekeningen is verwijderd.. + /// + public static string Calculations_Cleared { + get { + return ResourceManager.GetString("Calculations_Cleared", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De categoriegrenzen voor de gecombineerde toetssporen in groep 1 en 2.. + /// + public static string CategoryBoundariesGroupOneAndTwo_Description { + get { + return ResourceManager.GetString("CategoryBoundariesGroupOneAndTwo_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Categoriegrenzen groep 1 en 2. + /// + public static string CategoryBoundariesGroupOneAndTwo_DisplayName { + get { + return ResourceManager.GetString("CategoryBoundariesGroupOneAndTwo_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to U heeft een ander hydraulische belastingendatabase bestand geselecteerd. Als gevolg hiervan moet de uitvoer van alle ervan afhankelijke berekeningen verwijderd worden. + /// + ///Weet u zeker dat u wilt doorgaan?. + /// + public static string Delete_Calculations_Text { + get { + return ResourceManager.GetString("Delete_Calculations_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Is relevant. + /// + public static string FailureMechanism_IsRelevant_DisplayName { + get { + return ResourceManager.GetString("FailureMechanism_IsRelevant_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toetsspoor. + /// + public static string FailureMechanism_Name_DisplayName { + get { + return ResourceManager.GetString("FailureMechanism_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Categoriegrenzen voor dit traject. + /// + public static string FailureMechanismAssemblyCategories_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategories_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De categoriegrenzen voor dit traject en toetsspoor.. + /// + public static string FailureMechanismAssemblyCategoriesProperties_FailureMechanismAssemblyCategories_Description { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoriesProperties_FailureMechanismAssemblyCategories_D" + + "escription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De categoriegrenzen per vak voor dit toetsspoor.. + /// + public static string FailureMechanismAssemblyCategoriesProperties_FailureMechanismSectionAssemblyCategories_Description { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoriesProperties_FailureMechanismSectionAssemblyCateg" + + "ories_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trajecttype: {0}. + /// + public static string FailureMechanismContributionView_AssessmentSectionCompositionLabelText_AssessmentSectionComposition_0_ { + get { + return ResourceManager.GetString("FailureMechanismContributionView_AssessmentSectionCompositionLabelText_Assessment" + + "SectionComposition_0_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toegestane bijdrage aan faalkans [%]. + /// + public static string FailureMechanismContributionView_GridColumn_Contribution { + get { + return ResourceManager.GetString("FailureMechanismContributionView_GridColumn_Contribution", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Faalkansruimte [1/jaar]. + /// + public static string FailureMechanismContributionView_GridColumn_ProbabilitySpace { + get { + return ResourceManager.GetString("FailureMechanismContributionView_GridColumn_ProbabilitySpace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to n.v.t. + /// + public static string FailureMechanismContributionView_ProbabilityPerYear_Not_applicable { + get { + return ResourceManager.GetString("FailureMechanismContributionView_ProbabilityPerYear_Not_applicable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Norm van het dijktraject: 1 / {0}. + /// + public static string FailureMechanismContributionView_ReturnPeriodLabelText_Norm_is_one_over_ReturnPeriod_0_ { + get { + return ResourceManager.GetString("FailureMechanismContributionView_ReturnPeriodLabelText_Norm_is_one_over_ReturnPer" + + "iod_0_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Heeft vakindeling. + /// + public static string FailureMechanismMergeDataRow_HasSections_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismMergeDataRow_HasSections_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selecteer. + /// + public static string FailureMechanismMergeDataRow_IsSelected_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismMergeDataRow_IsSelected_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Aantal berekeningen. + /// + public static string FailureMechanismMergeDataRow_NumberOfCalculations_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismMergeDataRow_NumberOfCalculations_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Overig ({0}). + /// + public static string FailureMechanismProperties_Contribution_Other_Percentage_0 { + get { + return ResourceManager.GetString("FailureMechanismProperties_Contribution_Other_Percentage_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Categoriegrenzen per vak. + /// + public static string FailureMechanismSectionAssemblyCategories_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismSectionAssemblyCategories_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De gecombineerde faalkansruimte voor de toetssporen in groep 1 en 2.. + /// + public static string FailureProbabilityMarginFactor_Description { + get { + return ResourceManager.GetString("FailureProbabilityMarginFactor_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gecombineerde faalkansruimte. + /// + public static string FailureProbabilityMarginFactor_DisplayName { + get { + return ResourceManager.GetString("FailureProbabilityMarginFactor_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HLCD bestand|*.sqlite. + /// + public static string HlcdFileNameEditor_InitializeDialog_FileFilter { + get { + return ResourceManager.GetString("HlcdFileNameEditor_InitializeDialog_FileFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &Koppel aan database.... + /// + public static string HydraulicBoundaryDatabase_Connect { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_Connect", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Koppel aan hydraulische belastingendatabase.. + /// + public static string HydraulicBoundaryDatabase_Connect_ToolTip { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_Connect_ToolTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locatie van het HRD bestand.. + /// + public static string HydraulicBoundaryDatabase_FilePath_Description { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_FilePath_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HRD database locatie. + /// + public static string HydraulicBoundaryDatabase_FilePath_DisplayName { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_FilePath_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locatie waar de preprocessor bestanden opslaat.. + /// + public static string HydraulicBoundaryDatabase_PreprocessorDirectory_Description { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_PreprocessorDirectory_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locatie preprocessor bestanden. + /// + public static string HydraulicBoundaryDatabase_PreprocessorDirectory_DisplayName { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_PreprocessorDirectory_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gebruik de preprocessor bij het uitvoeren van een berekening.. + /// + public static string HydraulicBoundaryDatabase_UsePreprocessor_Description { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_UsePreprocessor_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gebruik preprocessor. + /// + public static string HydraulicBoundaryDatabase_UsePreprocessor_DisplayName { + get { + return ResourceManager.GetString("HydraulicBoundaryDatabase_UsePreprocessor_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Overige informatie.. + /// + public static string HydraulicLocationConfigurationSettings_Comment_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Comment_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Overig. + /// + public static string HydraulicLocationConfigurationSettings_Comment_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Comment_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locatie van het HLCD bestand.. + /// + public static string HydraulicLocationConfigurationSettings_FilePath_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_FilePath_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HLCD database locatie. + /// + public static string HydraulicLocationConfigurationSettings_FilePath_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_FilePath_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatinformatie met betrekking tot het meerpeil/de meerpeilen.. + /// + public static string HydraulicLocationConfigurationSettings_LakeLevel_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_LakeLevel_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Meerpeil. + /// + public static string HydraulicLocationConfigurationSettings_LakeLevel_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_LakeLevel_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatinformatie met betrekking tot de rivierafvoer.. + /// + public static string HydraulicLocationConfigurationSettings_RiverDischarge_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_RiverDischarge_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rivierafvoer. + /// + public static string HydraulicLocationConfigurationSettings_RiverDischarge_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_RiverDischarge_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Algemene naam van het klimaatscenario.. + /// + public static string HydraulicLocationConfigurationSettings_ScenarioName_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_ScenarioName_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatscenario. + /// + public static string HydraulicLocationConfigurationSettings_ScenarioName_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_ScenarioName_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Projectkader waarin de statistiek bedoeld is te gebruiken.. + /// + public static string HydraulicLocationConfigurationSettings_Scope_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Scope_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toepassingskader. + /// + public static string HydraulicLocationConfigurationSettings_Scope_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Scope_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatinformatie met betrekking tot de zeewaterstand.. + /// + public static string HydraulicLocationConfigurationSettings_SeaLevel_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_SeaLevel_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zeewaterstand. + /// + public static string HydraulicLocationConfigurationSettings_SeaLevel_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_SeaLevel_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatinformatie met betrekking tot de windrichting.. + /// + public static string HydraulicLocationConfigurationSettings_WindDirection_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_WindDirection_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windrichting. + /// + public static string HydraulicLocationConfigurationSettings_WindDirection_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_WindDirection_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klimaatinformatie met betrekking tot de windsnelheid.. + /// + public static string HydraulicLocationConfigurationSettings_WindSpeed_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_WindSpeed_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windsnelheid. + /// + public static string HydraulicLocationConfigurationSettings_WindSpeed_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_WindSpeed_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jaartal van het jaar waarop de statistiek van toepassing is.. + /// + public static string HydraulicLocationConfigurationSettings_Year_Description { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Year_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zichtjaar. + /// + public static string HydraulicLocationConfigurationSettings_Year_DisplayName { + get { + return ResourceManager.GetString("HydraulicLocationConfigurationSettings_Year_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Overstromingskans van het dijktraject die hoort bij het minimale beschermingsniveau dat de kering moet bieden.. + /// + public static string LowerLimitNorm_Description { + get { + return ResourceManager.GetString("LowerLimitNorm_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ondergrens [1/jaar]. + /// + public static string LowerLimitNorm_DisplayName { + get { + return ResourceManager.GetString("LowerLimitNorm_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Map { + get { + object obj = ResourceManager.GetObject("Map", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to De kans die wordt gebruikt als de norm van het dijktraject.. + /// + public static string NormType_Description { + get { + return ResourceManager.GetString("NormType_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Norm van het dijktraject. + /// + public static string NormType_DisplayName { + get { + return ResourceManager.GetString("NormType_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traject ID. + /// + public static string ReferenceLineMetaSelectionDialog_ColumnHeader_AssessmentSectionId { + get { + return ResourceManager.GetString("ReferenceLineMetaSelectionDialog_ColumnHeader_AssessmentSectionId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ondergrens. + /// + public static string ReferenceLineMetaSelectionDialog_ColumnHeader_LowerLimitValue { + get { + return ResourceManager.GetString("ReferenceLineMetaSelectionDialog_ColumnHeader_LowerLimitValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Signaleringswaarde. + /// + public static string ReferenceLineMetaSelectionDialog_ColumnHeader_SignalingValue { + get { + return ResourceManager.GetString("ReferenceLineMetaSelectionDialog_ColumnHeader_SignalingValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lijst van alle coördinaten (X-coördinaat, Y-coördinaat) die samen de referentielijn vormen.. + /// + public static string ReferenceLineProperties_Geometry_Description { + get { + return ResourceManager.GetString("ReferenceLineProperties_Geometry_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Coördinaten. + /// + public static string ReferenceLineProperties_Geometry_DisplayName { + get { + return ResourceManager.GetString("ReferenceLineProperties_Geometry_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toetsoordeel verversen. + /// + public static string RefreshAssemblyResultsButton_Text { + get { + return ResourceManager.GetString("RefreshAssemblyResultsButton_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Database op pad '{0}' gekoppeld.. + /// + public static string RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked { + get { + return ResourceManager.GetString("RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Korte beschrijving van het project.. + /// + public static string RingtoetsProjectProperties_Description_Description { + get { + return ResourceManager.GetString("RingtoetsProjectProperties_Description_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Omschrijving. + /// + public static string RingtoetsProjectProperties_Description_DisplayName { + get { + return ResourceManager.GetString("RingtoetsProjectProperties_Description_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam van het project.. + /// + public static string RingtoetsProjectProperties_Name_Description { + get { + return ResourceManager.GetString("RingtoetsProjectProperties_Name_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Naam. + /// + public static string RingtoetsProjectProperties_Name_DisplayName { + get { + return ResourceManager.GetString("RingtoetsProjectProperties_Name_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traject Toevoegen. + /// + public static string RingtoetsRibbon_AddAssessmentSection { + get { + return ResourceManager.GetString("RingtoetsRibbon_AddAssessmentSection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vaknummer. + /// + public static string SectionNumber_DisplayName { + get { + return ResourceManager.GetString("SectionNumber_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Overstromingskans van het dijktraject waarvan overschrijding gemeld moet worden aan de Minister van I en M.. + /// + public static string SignalingNorm_Description { + get { + return ResourceManager.GetString("SignalingNorm_Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Signaleringswaarde [1/jaar]. + /// + public static string SignalingNorm_DisplayName { + get { + return ResourceManager.GetString("SignalingNorm_DisplayName", resourceCulture); + } + } + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Properties/Resources.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Naam van het traject. + + + Naam + + + + ..\Resources\folder-stand.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Trajectkaart + + + ..\Resources\map.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + De uitvoer van alle afhankelijke berekeningen is verwijderd. + + + U heeft een ander hydraulische belastingendatabase bestand geselecteerd. Als gevolg hiervan moet de uitvoer van alle ervan afhankelijke berekeningen verwijderd worden. + +Weet u zeker dat u wilt doorgaan? + + + &Koppel aan database... + + + Koppel aan hydraulische belastingendatabase. + + + Locatie van het HRD bestand. + + + HRD database locatie + + + Database op pad '{0}' gekoppeld. + + + n.v.t + + + Map met berekeningen + + + Naam van de map met berekeningen. + + + Naam + + + Naam van de berekening. + + + Naam + + + ID van het traject. + + + ID + + + Signaleringswaarde + + + Traject ID + + + Ondergrens + + + Er zijn geen instellingen gevonden voor het geselecteerde traject. Standaardinstellingen zullen gebruikt worden. + + + Er kunnen geen trajecten gelezen worden uit het shapebestand. + + + Het importeren van de referentielijn is mislukt. + + + Het traject kan niet aangemaakt worden met een ondergrens van {0} en een signaleringswaarde van {1}. De waarde van de ondergrens en signaleringswaarde moet in het bereik {2} liggen en de ondergrens moet gelijk zijn aan of groter zijn dan de signaleringswaarde. + + + ..\Resources\folder-stand32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Korte beschrijving van het project. + + + Omschrijving + + + Naam van het project. + + + Naam + + + ..\Resources\AddFolder-stand32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Traject Toevoegen + + + T&raject toevoegen... + + + Selecteer het type traject, bepalend voor de faalkansbegroting. + + + Trajecttype + + + Norm van het dijktraject: 1 / {0} + + + Trajecttype: {0} + + + Geeft aan of de geselecteerde achtergrond kaartlaag in alle kaarten van dit traject wordt weergegeven. + + + Weergeven + + + Omschrijving van de achtergrond kaartlaag. + + + Omschrijving + + + Transparantie waarmee de achtergrond kaartlaag wordt weergegeven. + + + Transparantie + + + Volledige URL naar de Web Map Tile Service (WMTS) die als achtergrond kaartlaag gebruikt wordt. + + + URL + + + Het type afbeelding die door de geselecteerde kaartlaag aangeleverd wordt. + + + De naam van de geselecteerde kaartlaag. + + + WMTS + + + Overstromingskans van het dijktraject die hoort bij het minimale beschermingsniveau dat de kering moet bieden. + + + Ondergrens [1/jaar] + + + De kans die wordt gebruikt als de norm van het dijktraject. + + + Norm van het dijktraject + + + Overstromingskans van het dijktraject waarvan overschrijding gemeld moet worden aan de Minister van I en M. + + + Signaleringswaarde [1/jaar] + + + Locatie waar de preprocessor bestanden opslaat. + + + Locatie preprocessor bestanden + + + Gebruik de preprocessor bij het uitvoeren van een berekening. + + + Gebruik preprocessor + + + Coördinaten + + + Lijst van alle coördinaten (X-coördinaat, Y-coördinaat) die samen de referentielijn vormen. + + + Overig ({0}) + + + Benaderde faalkans [1/jaar] + + + Veiligheidsoordeel + + + Toetsoordeel groepen 1 en 2 + + + Toetsoordeel groepen 3 en 4 + + + Toetsspoor + + + Toegestane bijdrage aan faalkans [%] + + + Faalkansruimte [1/jaar] + + + Toetsoordeel verversen + + + Toetsoordeel is verouderd. Druk op de "Toetsoordeel verversen" knop om opnieuw te berekenen. + + + De categoriegrenzen voor dit traject en toetsspoor. + + + Categoriegrenzen voor dit traject + + + De categoriegrenzen per vak voor dit toetsspoor. + + + Categoriegrenzen per vak + + + Heeft vakindeling + + + Aantal berekeningen + + + Selecteer + + + Is relevant + + + Hydraulische belastingen op trajectniveau worden altijd samengevoegd. +Daarbij gaan de huidige berekeningsresultaten voor belastingen op trajectniveau niet verloren. + + + Gecombineerd vakoordeel + + + De categoriegrenzen voor de gecombineerde toetssporen in groep 1 en 2. + + + Categoriegrenzen groep 1 en 2 + + + De gecombineerde faalkansruimte voor de toetssporen in groep 1 en 2. + + + Gecombineerde faalkansruimte + + + Categoriegrenzen voor de gecombineerde toetssporen 1 en 2 + + + Vaknummer + + + Assemblagekaart + + + Overige informatie. + + + Overig + + + Locatie van het HLCD bestand. + + + HLCD database locatie + + + Klimaatinformatie met betrekking tot het meerpeil/de meerpeilen. + + + Meerpeil + + + Klimaatinformatie met betrekking tot de rivierafvoer. + + + Rivierafvoer + + + Algemene naam van het klimaatscenario. + + + Klimaatscenario + + + Projectkader waarin de statistiek bedoeld is te gebruiken. + + + Toepassingskader + + + Klimaatinformatie met betrekking tot de zeewaterstand. + + + Zeewaterstand + + + Klimaatinformatie met betrekking tot de windrichting. + + + Windrichting + + + Klimaatinformatie met betrekking tot de windsnelheid. + + + Windsnelheid + + + Jaartal van het jaar waarop de statistiek van toepassing is. + + + Zichtjaar + + + HLCD bestand|*.sqlite + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssemblyResultCategoriesProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssemblyResultCategoriesProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssemblyResultCategoriesProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,93 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Core.Common.Base.Data; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a collection of for properties panel. + /// + public class AssemblyResultCategoriesProperties : ObjectProperties> + { + private readonly AssessmentSection assessmentSection; + + /// + /// Creates a new instance of . + /// + /// The collection of categories. + /// The assessment section. + /// Thrown when any parameter is null. + public AssemblyResultCategoriesProperties(IEnumerable categories, + AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (categories == null) + { + throw new ArgumentNullException(nameof(categories)); + } + + Data = categories; + this.assessmentSection = assessmentSection; + } + + [PropertyOrder(1)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.CategoryBoundariesGroupOneAndTwo_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.CategoryBoundariesGroupOneAndTwo_Description))] + [TypeConverter(typeof(ExpandableArrayConverter))] + public FailureMechanismAssemblyCategoryProperties[] AssemblyCategories + { + get + { + return data.Select(category => new FailureMechanismAssemblyCategoryProperties(category)).ToArray(); + } + } + + [PropertyOrder(2)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureProbabilityMarginFactor_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.FailureProbabilityMarginFactor_Description))] + public RoundedDouble FailureProbabilityMarginFactor + { + get + { + return assessmentSection.FailureProbabilityMarginFactor; + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionCompositionProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionCompositionProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionCompositionProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,91 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using Core.Common.Base; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of the composition of an for properties panel. + /// + public class AssessmentSectionCompositionProperties : ObjectProperties + { + private readonly IAssessmentSectionCompositionChangeHandler compositionChangeHandler; + + /// + /// Creates a new instance of . + /// + /// The assessment section for which the properties are shown. + /// The for when the composition changes. + /// Thrown when any parameter is null. + public AssessmentSectionCompositionProperties(IAssessmentSection assessmentSection, IAssessmentSectionCompositionChangeHandler compositionChangeHandler) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (compositionChangeHandler == null) + { + throw new ArgumentNullException(nameof(compositionChangeHandler)); + } + + Data = assessmentSection; + this.compositionChangeHandler = compositionChangeHandler; + } + + [PropertyOrder(1)] + [TypeConverter(typeof(EnumTypeConverter))] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionComposition_Composition_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.AssessmentSectionComposition_Composition_Description))] + public AssessmentSectionComposition Composition + { + get + { + return data.Composition; + } + set + { + if (compositionChangeHandler.ConfirmCompositionChange()) + { + IEnumerable changedObjects = compositionChangeHandler.ChangeComposition(data, value); + foreach (IObservable changedObject in changedObjects) + { + changedObject.NotifyObservers(); + } + + data.FailureMechanismContribution.NotifyObservers(); + } + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/AssessmentSectionProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,63 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; +using Riskeer.Integration.Data; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of for properties panel. + /// + public class AssessmentSectionProperties : ObjectProperties + { + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSection_Id_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.AssessmentSection_Id_Description))] + public string Id + { + get + { + return data.Id; + } + } + + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSection_Name_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.AssessmentSection_Name_Description))] + public string Name + { + get + { + return data.Name; + } + set + { + data.Name = value; + data.NotifyObservers(); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/BackgroundDataProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/BackgroundDataProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/BackgroundDataProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,162 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base.Data; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Riskeer.Integration.Forms.Properties; +using Ringtoets.Common.Data.AssessmentSection; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using GisFormsResources = Core.Components.Gis.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of the for properties panel. + /// + public class BackgroundDataProperties : ObjectProperties + { + /// + /// Creates a new instance of . + /// + /// The data for which the properties are shown. + /// Thrown when + /// is null. + public BackgroundDataProperties(BackgroundData backgroundData) + { + if (backgroundData == null) + { + throw new ArgumentNullException(nameof(backgroundData)); + } + + Data = backgroundData; + } + + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.BackgroundDataProperties_Name_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_Name_Description))] + public string Name + { + get + { + var configuration = data.Configuration as WmtsBackgroundDataConfiguration; + + return configuration != null + ? (configuration.IsConfigured + ? data.Name + : string.Empty) + : data.Name; + } + } + + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.BackgroundDataProperties_Transparency_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_Transparency_Description))] + public RoundedDouble Transparency + { + get + { + return data.Transparency; + } + set + { + data.Transparency = value; + data.NotifyObservers(); + } + } + + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.BackgroundDataProperties_IsVisible_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_IsVisible_Description))] + public bool IsVisible + { + get + { + return data.IsVisible; + } + set + { + data.IsVisible = value; + data.NotifyObservers(); + } + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + var configuration = data.Configuration as WmtsBackgroundDataConfiguration; + + return configuration != null + && configuration.IsConfigured; + } + + #region Wmts MapData + + [DynamicVisible] + [ResourcesCategory(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_Category))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_Url_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_Url_Description))] + public string SourceCapabilitiesUrl + { + get + { + return GetBackgroundDataProperty(dataConfiguration => dataConfiguration.SourceCapabilitiesUrl); + } + } + + [DynamicVisible] + [ResourcesCategory(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_Category))] + [ResourcesDisplayName(typeof(GisFormsResources), nameof(GisFormsResources.WmtsCapability_MapLayer_Id))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_SelectedCapabilityIdentifier_Description))] + public string SelectedCapabilityIdentifier + { + get + { + return GetBackgroundDataProperty(dataConfiguration => dataConfiguration.SelectedCapabilityIdentifier); + } + } + + [DynamicVisible] + [ResourcesCategory(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_Category))] + [ResourcesDisplayName(typeof(GisFormsResources), nameof(GisFormsResources.WmtsCapability_MapLayer_Format))] + [ResourcesDescription(typeof(Resources), nameof(Resources.BackgroundDataProperties_Wmts_PreferredFormat_Description))] + public string PreferredFormat + { + get + { + return GetBackgroundDataProperty(dataConfiguration => dataConfiguration.PreferredFormat); + } + } + + private string GetBackgroundDataProperty(Func getProperty) + { + var configuration = data.Configuration as WmtsBackgroundDataConfiguration; + + return configuration != null && configuration.IsConfigured + ? getProperty(configuration) + : string.Empty; + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationContextProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationContextProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationContextProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + public class CalculationContextProperties : ObjectProperties> + { + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.Calculation_Name_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.Calculation_Name_Description))] + public string Name + { + get + { + return data.WrappedData.Name; + } + set + { + data.WrappedData.Name = value; + data.WrappedData.NotifyObservers(); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationGroupContextProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationGroupContextProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/CalculationGroupContextProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,77 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.PresentationObjects; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// Object properties class for . + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.CalculationGroupContextProperties_DisplayName))] + public class CalculationGroupContextProperties : ObjectProperties> + { + /// + /// Creates a new instance of the class. + /// + /// The calculation context to use for the properties. + public CalculationGroupContextProperties(ICalculationContext calculationContext) + { + if (calculationContext == null) + { + throw new ArgumentNullException(nameof(calculationContext)); + } + + Data = calculationContext; + } + + [DynamicReadOnly] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.CalculationGroup_Name_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.CalculationGroup_Name_Description))] + public string Name + { + get + { + return data.WrappedData.Name; + } + set + { + data.WrappedData.Name = value; + data.WrappedData.NotifyObservers(); + } + } + + [DynamicReadOnlyValidationMethod] + public bool DynamicReadOnlyValidator(string propertyName) + { + return data.Parent == null; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoriesProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoriesProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoriesProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,74 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Util.Attributes; +using Riskeer.Integration.Forms.Properties; +using Riskeer.AssemblyTool.Data; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a collection of for properties panel. + /// + public class FailureMechanismAssemblyCategoriesProperties : FailureMechanismSectionAssemblyCategoriesProperties + { + private const int failureMechanismAssemblyCategoryPropertyIndex = 1; + private readonly IEnumerable failureMechanismAssemblyCategories; + + /// + /// Creates a new instance of . + /// + /// The collection of . + /// The collection of . + /// Thrown when any parameter is null. + public FailureMechanismAssemblyCategoriesProperties(IEnumerable failureMechanismAssemblyCategories, + IEnumerable failureMechanismSectionAssemblyCategories) + : base(failureMechanismSectionAssemblyCategories) + { + if (failureMechanismAssemblyCategories == null) + { + throw new ArgumentNullException(nameof(failureMechanismAssemblyCategories)); + } + + this.failureMechanismAssemblyCategories = failureMechanismAssemblyCategories; + } + + [PropertyOrder(failureMechanismAssemblyCategoryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategories_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoriesProperties_FailureMechanismAssemblyCategories_Description))] + [TypeConverter(typeof(ExpandableArrayConverter))] + public FailureMechanismAssemblyCategoryProperties[] FailureMechanismAssemblyCategories + { + get + { + return failureMechanismAssemblyCategories.Select(category => new FailureMechanismAssemblyCategoryProperties(category)).ToArray(); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoryProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoryProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismAssemblyCategoryProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,101 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Forms.TypeConverters; +using Riskeer.AssemblyTool.Data; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a for properties panel. + /// + [TypeConverter(typeof(ExpandableObjectConverter))] + public class FailureMechanismAssemblyCategoryProperties : ObjectProperties + { + private const int groupPropertyIndex = 1; + private const int lowerBoundaryPropertyIndex = 2; + private const int upperBoundaryPropertyIndex = 3; + + /// + /// Creates a new instance of . + /// + public FailureMechanismAssemblyCategoryProperties(FailureMechanismAssemblyCategory assemblyCategory) + { + if (assemblyCategory == null) + { + throw new ArgumentNullException(nameof(assemblyCategory)); + } + + Data = assemblyCategory; + } + + [PropertyOrder(groupPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_Group_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_Group_Description))] + [TypeConverter(typeof(EnumTypeConverter))] + public FailureMechanismAssemblyCategoryGroup Group + { + get + { + return data.Group; + } + } + + [PropertyOrder(lowerBoundaryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_LowerBoundary_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_LowerBoundary_Description))] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double LowerBoundary + { + get + { + return data.LowerBoundary; + } + } + + [PropertyOrder(upperBoundaryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_UpperBoundary_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_UpperBoundary_Description))] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double UpperBoundary + { + get + { + return data.UpperBoundary; + } + } + + public override string ToString() + { + return new EnumDisplayWrapper(data.Group).DisplayName; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoriesProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoriesProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoriesProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,71 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a collection of for properties panel. + /// + public class FailureMechanismSectionAssemblyCategoriesProperties : ObjectProperties> + { + private const int failureMechanismSectionAssemblyCategoryPropertyIndex = 1; + + /// + /// Creates a new instance of . + /// + /// The collection of . + /// Thrown when any parameter is null. + public FailureMechanismSectionAssemblyCategoriesProperties(IEnumerable failureMechanismSectionAssemblyCategories) + { + if (failureMechanismSectionAssemblyCategories == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionAssemblyCategories)); + } + + Data = failureMechanismSectionAssemblyCategories; + } + + [PropertyOrder(failureMechanismSectionAssemblyCategoryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismSectionAssemblyCategories_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoriesProperties_FailureMechanismSectionAssemblyCategories_Description))] + [TypeConverter(typeof(ExpandableArrayConverter))] + public FailureMechanismSectionAssemblyCategoryProperties[] FailureMechanismSectionAssemblyCategories + { + get + { + return data.Select(category => new FailureMechanismSectionAssemblyCategoryProperties(category)).ToArray(); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoryProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoryProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/FailureMechanismSectionAssemblyCategoryProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,101 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Forms.TypeConverters; +using Riskeer.AssemblyTool.Data; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a for properties panel. + /// + [TypeConverter(typeof(ExpandableObjectConverter))] + public class FailureMechanismSectionAssemblyCategoryProperties : ObjectProperties + { + private const int groupPropertyIndex = 1; + private const int lowerBoundaryPropertyIndex = 2; + private const int upperBoundaryPropertyIndex = 3; + + /// + /// Creates a new instance of . + /// + public FailureMechanismSectionAssemblyCategoryProperties(FailureMechanismSectionAssemblyCategory assemblyCategory) + { + if (assemblyCategory == null) + { + throw new ArgumentNullException(nameof(assemblyCategory)); + } + + Data = assemblyCategory; + } + + [PropertyOrder(groupPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_Group_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_Group_Description))] + [TypeConverter(typeof(EnumTypeConverter))] + public FailureMechanismSectionAssemblyCategoryGroup Group + { + get + { + return data.Group; + } + } + + [PropertyOrder(lowerBoundaryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_LowerBoundary_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_LowerBoundary_Description))] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double LowerBoundary + { + get + { + return data.LowerBoundary; + } + } + + [PropertyOrder(upperBoundaryPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_UpperBoundary_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.CategoryProperties_UpperBoundary_Description))] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double UpperBoundary + { + get + { + return data.UpperBoundary; + } + } + + public override string ToString() + { + return new EnumDisplayWrapper(data.Group).DisplayName; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/HydraulicBoundaryDatabaseProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,320 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using System.Drawing.Design; +using System.Windows.Forms.Design; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.Hydraulics; +using Riskeer.Integration.Forms.Editors; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of for properties panel. + /// + public class HydraulicBoundaryDatabaseProperties : ObjectProperties + { + private const int hrdFilePathPropertyIndex = 0; + private const int hlcdFilePathPropertyIndex = 1; + private const int scenarioNamePropertyIndex = 2; + private const int yearPropertyIndex = 3; + private const int scopePropertyIndex = 4; + private const int seaLevelPropertyIndex = 5; + private const int riverDischargePropertyIndex = 6; + private const int lakeLevelPropertyIndex = 7; + private const int windDirectionPropertyIndex = 8; + private const int windSpeedPropertyIndex = 9; + private const int commentPropertyIndex = 10; + private const int usePreprocessorPropertyIndex = 11; + private const int preprocessorDirectoryPropertyIndex = 12; + + private readonly IHydraulicLocationConfigurationDatabaseImportHandler hydraulicLocationConfigurationDatabaseImportHandler; + + /// + /// Creates a new instance of . + /// + /// The hydraulic boundary database to show the properties for. + /// The handler to update the hydraulic location configuration settings. + /// Thrown when any parameter is null. + public HydraulicBoundaryDatabaseProperties(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, + IHydraulicLocationConfigurationDatabaseImportHandler hydraulicLocationConfigurationDatabaseImportHandler) + { + if (hydraulicBoundaryDatabase == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); + } + + if (hydraulicLocationConfigurationDatabaseImportHandler == null) + { + throw new ArgumentNullException(nameof(hydraulicLocationConfigurationDatabaseImportHandler)); + } + + this.hydraulicLocationConfigurationDatabaseImportHandler = hydraulicLocationConfigurationDatabaseImportHandler; + Data = hydraulicBoundaryDatabase; + } + + [PropertyOrder(hrdFilePathPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_FilePath_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_FilePath_Description))] + public string HrdFilePath + { + get + { + return data.IsLinked() ? data.FilePath : string.Empty; + } + } + + [PropertyOrder(hlcdFilePathPropertyIndex)] + [DynamicVisible] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_FilePath_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_FilePath_Description))] + [Editor(typeof(HlcdFileNameEditor), typeof(UITypeEditor))] + public string HlcdFilePath + { + get + { + return data.IsLinked() ? data.HydraulicLocationConfigurationSettings.FilePath : string.Empty; + } + set + { + hydraulicLocationConfigurationDatabaseImportHandler.ImportHydraulicLocationConfigurationSettings( + data.HydraulicLocationConfigurationSettings, value); + } + } + + [PropertyOrder(hlcdFilePathPropertyIndex)] + [DynamicVisible] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_FilePath_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_FilePath_Description))] + public string HlcdFilePathReadOnly + { + get + { + return data.IsLinked() ? data.HydraulicLocationConfigurationSettings.FilePath : string.Empty; + } + } + + [PropertyOrder(scenarioNamePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_ScenarioName_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_ScenarioName_Description))] + public string ScenarioName + { + get + { + return data.IsLinked() ? data.HydraulicLocationConfigurationSettings.ScenarioName : string.Empty; + } + } + + [PropertyOrder(yearPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Year_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Year_Description))] + public string Year + { + get + { + return data.IsLinked() ? data.HydraulicLocationConfigurationSettings.Year.ToString() : string.Empty; + } + } + + [PropertyOrder(scopePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Scope_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Scope_Description))] + public string Scope + { + get + { + return data.IsLinked() ? data.HydraulicLocationConfigurationSettings.Scope : string.Empty; + } + } + + [PropertyOrder(seaLevelPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_SeaLevel_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_SeaLevel_Description))] + public string SeaLevel + { + get + { + string seaLevel = data.HydraulicLocationConfigurationSettings.SeaLevel; + return data.IsLinked() && seaLevel != null ? seaLevel : string.Empty; + } + } + + [PropertyOrder(riverDischargePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_RiverDischarge_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_RiverDischarge_Description))] + public string RiverDischarge + { + get + { + string riverDischarge = data.HydraulicLocationConfigurationSettings.RiverDischarge; + return data.IsLinked() && riverDischarge != null ? riverDischarge : string.Empty; + } + } + + [PropertyOrder(lakeLevelPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_LakeLevel_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_LakeLevel_Description))] + public string LakeLevel + { + get + { + string lakeLevel = data.HydraulicLocationConfigurationSettings.LakeLevel; + return data.IsLinked() && lakeLevel != null ? lakeLevel : string.Empty; + } + } + + [PropertyOrder(windDirectionPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_WindDirection_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_WindDirection_Description))] + public string WindDirection + { + get + { + string windDirection = data.HydraulicLocationConfigurationSettings.WindDirection; + return data.IsLinked() && windDirection != null ? windDirection : string.Empty; + } + } + + [PropertyOrder(windSpeedPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_WindSpeed_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_WindSpeed_Description))] + public string WindSpeed + { + get + { + string windSpeed = data.HydraulicLocationConfigurationSettings.WindSpeed; + return data.IsLinked() && windSpeed != null ? windSpeed : string.Empty; + } + } + + [PropertyOrder(commentPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Comment_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicLocationConfigurationSettings_Comment_Description))] + public string Comment + { + get + { + string comment = data.HydraulicLocationConfigurationSettings.Comment; + return data.IsLinked() && comment != null ? comment : string.Empty; + } + } + + [PropertyOrder(usePreprocessorPropertyIndex)] + [DynamicVisible] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_UsePreprocessor_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_UsePreprocessor_Description))] + public bool UsePreprocessor + { + get + { + return data.UsePreprocessor; + } + set + { + data.UsePreprocessor = value; + data.NotifyObservers(); + } + } + + [PropertyOrder(preprocessorDirectoryPropertyIndex)] + [DynamicVisible] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_PreprocessorDirectory_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_PreprocessorDirectory_Description))] + [Editor(typeof(FolderNameEditor), typeof(UITypeEditor))] + public string PreprocessorDirectory + { + get + { + return data.PreprocessorDirectory; + } + set + { + data.PreprocessorDirectory = value; + } + } + + [PropertyOrder(preprocessorDirectoryPropertyIndex)] + [DynamicVisible] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_PreprocessorDirectory_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.HydraulicBoundaryDatabase_PreprocessorDirectory_Description))] + public string PreprocessorDirectoryReadOnly + { + get + { + return data.PreprocessorDirectory; + } + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + bool canUsePreprocessor = data.CanUsePreprocessor; + + if (propertyName.Equals(nameof(UsePreprocessor)) && !canUsePreprocessor) + { + return false; + } + + if (propertyName.Equals(nameof(PreprocessorDirectory)) && (!canUsePreprocessor || !UsePreprocessor)) + { + return false; + } + + if (propertyName.Equals(nameof(PreprocessorDirectoryReadOnly)) && (!canUsePreprocessor || UsePreprocessor)) + { + return false; + } + + if (propertyName.Equals(nameof(HlcdFilePath)) && !data.IsLinked()) + { + return false; + } + + if (propertyName.Equals(nameof(HlcdFilePathReadOnly)) && data.IsLinked()) + { + return false; + } + + return true; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IAssessmentSectionCompositionChangeHandler.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IAssessmentSectionCompositionChangeHandler.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IAssessmentSectionCompositionChangeHandler.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,52 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// Interface for an object that can properly change the + /// of an . + /// + public interface IAssessmentSectionCompositionChangeHandler + { + /// + /// Checks to see if the replacement of the assessment section composition should occur or not. + /// + /// true if the change should occur, false otherwise. + bool ConfirmCompositionChange(); + + /// + /// Replaces the of the + /// and propagates the changes to underlying data structure. + /// + /// The section to be updated. + /// The new composition value. + /// All objects that have been affected by the change. + /// Thrown when + /// is null. + IEnumerable ChangeComposition(IAssessmentSection assessmentSection, AssessmentSectionComposition newComposition); + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IHydraulicLocationConfigurationDatabaseImportHandler.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IHydraulicLocationConfigurationDatabaseImportHandler.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/IHydraulicLocationConfigurationDatabaseImportHandler.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,42 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.Hydraulics; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// Interface for an object that can properly import a . + /// + public interface IHydraulicLocationConfigurationDatabaseImportHandler + { + /// + /// Imports the information from the + /// and updates the . + /// + /// The hydraulic location configuration + /// settings to update. + /// The file path to import the data from. + /// Thrown when any parameter is null. + void ImportHydraulicLocationConfigurationSettings(HydraulicLocationConfigurationSettings hydraulicLocationConfigurationSettings, string hlcdFilePath); + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/NormProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/NormProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/NormProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,117 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Forms.ChangeHandlers; +using Ringtoets.Common.Forms.PropertyClasses; +using Ringtoets.Common.Forms.TypeConverters; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of the norm values in the for properties panel. + /// + public class NormProperties : ObjectProperties + { + private readonly IObservablePropertyChangeHandler normChangeHandler; + + /// + /// Creates a new instance of . + /// + /// The for which the properties are shown. + /// The for when the norm changes. + /// Thrown when any parameter is null. + public NormProperties(FailureMechanismContribution failureMechanismContribution, IObservablePropertyChangeHandler normChangeHandler) + { + if (failureMechanismContribution == null) + { + throw new ArgumentNullException(nameof(failureMechanismContribution)); + } + + if (normChangeHandler == null) + { + throw new ArgumentNullException(nameof(normChangeHandler)); + } + + Data = failureMechanismContribution; + this.normChangeHandler = normChangeHandler; + } + + [PropertyOrder(1)] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.SignalingNorm_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.SignalingNorm_Description))] + public double SignalingNorm + { + get + { + return data.SignalingNorm; + } + set + { + PropertyChangeHelper.ChangePropertyAndNotify(() => data.SignalingNorm = value, normChangeHandler); + } + } + + [PropertyOrder(2)] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.LowerLimitNorm_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.LowerLimitNorm_Description))] + public double LowerLimitNorm + { + get + { + return data.LowerLimitNorm; + } + set + { + PropertyChangeHelper.ChangePropertyAndNotify(() => data.LowerLimitNorm = value, normChangeHandler); + } + } + + [PropertyOrder(3)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.NormType_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.NormType_Description))] + [TypeConverter(typeof(EnumTypeConverter))] + public NormType NormativeNorm + { + get + { + return data.NormativeNorm; + } + set + { + PropertyChangeHelper.ChangePropertyAndNotify(() => data.NormativeNorm = value, normChangeHandler); + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/ReferenceLineProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/ReferenceLineProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/ReferenceLineProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,93 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using System.Linq; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// ViewModel of a for properties panel. + /// + public class ReferenceLineProperties : ObjectProperties + { + private const int lengthPropertyIndex = 1; + private const int geometryPropertyIndex = 2; + + /// + /// Creates a new instance of . + /// + /// The reference line to show the properties for. + /// Thrown when is null. + public ReferenceLineProperties(ReferenceLine referenceLine) + { + if (referenceLine == null) + { + throw new ArgumentNullException(nameof(referenceLine)); + } + + data = referenceLine; + } + + [DynamicVisible] + [PropertyOrder(lengthPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.ReferenceLine_Length_Rounded_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.ReferenceLine_Length_Rounded_Description))] + public RoundedDouble Length + { + get + { + return new RoundedDouble(2, data.Length); + } + } + + [DynamicVisible] + [PropertyOrder(geometryPropertyIndex)] + [TypeConverter(typeof(ExpandableArrayConverter))] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(Resources), nameof(Resources.ReferenceLineProperties_Geometry_DisplayName))] + [ResourcesDescription(typeof(Resources), nameof(Resources.ReferenceLineProperties_Geometry_Description))] + public Point2D[] Geometry + { + get + { + return data.Points.ToArray(); + } + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + return data.Points.Any(); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/RingtoetsProjectProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/RingtoetsProjectProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/RingtoetsProjectProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,64 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base.Data; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using RingtoetsIntegrationFormsResources = Riskeer.Integration.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses +{ + /// + /// This class describes the presentation of properties of a . + /// + public class RingtoetsProjectProperties : ObjectProperties + { + [PropertyOrder(1)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsIntegrationFormsResources), nameof(RingtoetsIntegrationFormsResources.RingtoetsProjectProperties_Name_DisplayName))] + [ResourcesDescription(typeof(RingtoetsIntegrationFormsResources), nameof(RingtoetsIntegrationFormsResources.RingtoetsProjectProperties_Name_Description))] + public string Name + { + get + { + return data.Name; + } + } + + [PropertyOrder(2)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsIntegrationFormsResources), nameof(RingtoetsIntegrationFormsResources.RingtoetsProjectProperties_Description_DisplayName))] + [ResourcesDescription(typeof(RingtoetsIntegrationFormsResources), nameof(RingtoetsIntegrationFormsResources.RingtoetsProjectProperties_Description_Description))] + public string Description + { + get + { + return data.Description; + } + set + { + data.Description = value; + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/MacroStabilityOutwardsFailureMechanismProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/MacroStabilityOutwardsFailureMechanismProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/MacroStabilityOutwardsFailureMechanismProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,220 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base.Data; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.Input; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses.StandAlone +{ + /// + /// ViewModel of properties panel. + /// + public class MacroStabilityOutwardsFailureMechanismProperties : ObjectProperties + { + private readonly IAssessmentSection assessmentSection; + private const int namePropertyIndex = 1; + private const int codePropertyIndex = 2; + private const int groupPropertyIndex = 3; + private const int contributionPropertyIndex = 4; + private const int isRelevantPropertyIndex = 5; + private const int aPropertyIndex = 6; + private const int bPropertyIndex = 7; + private const int sectionLengthPropertyIndex = 8; + private const int nPropertyIndex = 9; + + /// + /// Creates a new instance of . + /// + /// The instance to show the properties of. + /// The assessment section the data belongs to. + /// Thrown when any parameter is null. + public MacroStabilityOutwardsFailureMechanismProperties(MacroStabilityOutwardsFailureMechanism data, IAssessmentSection assessmentSection) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + Data = data; + this.assessmentSection = assessmentSection; + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + if (!data.IsRelevant && ShouldHidePropertyWhenFailureMechanismIrrelevant(propertyName)) + { + return false; + } + + return true; + } + + private bool ShouldHidePropertyWhenFailureMechanismIrrelevant(string propertyName) + { + return nameof(Contribution).Equals(propertyName) + || nameof(A).Equals(propertyName) + || nameof(B).Equals(propertyName) + || nameof(SectionLength).Equals(propertyName) + || nameof(N).Equals(propertyName); + } + + #region General + + [PropertyOrder(namePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_Description))] + public string Name + { + get + { + return data.Name; + } + } + + [PropertyOrder(codePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_Description))] + public string Code + { + get + { + return data.Code; + } + } + + [PropertyOrder(groupPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_Description))] + public int Group + { + get + { + return data.Group; + } + } + + [DynamicVisible] + [PropertyOrder(contributionPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_Description))] + public double Contribution + { + get + { + return data.Contribution; + } + } + + [PropertyOrder(isRelevantPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_Description))] + public bool IsRelevant + { + get + { + return data.IsRelevant; + } + } + + #endregion + + #region Length effect parameters + + [DynamicVisible] + [PropertyOrder(aPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_LengthEffect))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_ProbabilityAssessmentInput_A_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_ProbabilityAssessmentInput_A_Description))] + public double A + { + get + { + return data.MacroStabilityOutwardsProbabilityAssessmentInput.A; + } + set + { + data.MacroStabilityOutwardsProbabilityAssessmentInput.A = value; + data.NotifyObservers(); + } + } + + [DynamicVisible] + [PropertyOrder(bPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_LengthEffect))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_ProbabilityAssessmentInput_B_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_ProbabilityAssessmentInput_B_Description))] + public double B + { + get + { + return data.MacroStabilityOutwardsProbabilityAssessmentInput.B; + } + } + + [DynamicVisible] + [PropertyOrder(sectionLengthPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_LengthEffect))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.ReferenceLine_Length_Rounded_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.ReferenceLine_Length_Rounded_Description))] + public RoundedDouble SectionLength + { + get + { + return new RoundedDouble(2, assessmentSection.ReferenceLine.Length); + } + } + + [DynamicVisible] + [PropertyOrder(nPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_LengthEffect))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_N_Rounded_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_N_Rounded_Description))] + public RoundedDouble N + { + get + { + MacroStabilityOutwardsProbabilityAssessmentInput probabilityAssessmentInput = data.MacroStabilityOutwardsProbabilityAssessmentInput; + return new RoundedDouble(2, probabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length)); + } + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/PipingStructureFailureMechanismProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/PipingStructureFailureMechanismProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/PipingStructureFailureMechanismProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,162 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base.Data; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Riskeer.Integration.Data.StandAlone; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses.StandAlone +{ + /// + /// ViewModel of properties panel. + /// + public class PipingStructureFailureMechanismProperties : ObjectProperties + { + private const int namePropertyIndex = 1; + private const int codePropertyIndex = 2; + private const int groupPropertyIndex = 3; + private const int contributionPropertyIndex = 4; + private const int isRelevantPropertyIndex = 5; + private const int nPropertyIndex = 6; + + /// + /// Creates a new instance of . + /// + /// The instance to show the properties of. + /// Thrown when input parameter is null. + public PipingStructureFailureMechanismProperties(PipingStructureFailureMechanism data) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data)); + } + + Data = data; + } + + #region Length effect parameters + + [DynamicVisible] + [PropertyOrder(nPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_LengthEffect))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_N_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_N_Description))] + public RoundedDouble N + { + get + { + return data.N; + } + set + { + data.N = value; + data.NotifyObservers(); + } + } + + #endregion + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + if (!data.IsRelevant && ShouldHidePropertyWhenFailureMechanismIrrelevant(propertyName)) + { + return false; + } + + return true; + } + + private bool ShouldHidePropertyWhenFailureMechanismIrrelevant(string propertyName) + { + return nameof(Contribution).Equals(propertyName) || nameof(N).Equals(propertyName); + } + + #region General + + [PropertyOrder(namePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_Description))] + public string Name + { + get + { + return data.Name; + } + } + + [PropertyOrder(codePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_Description))] + public string Code + { + get + { + return data.Code; + } + } + + [PropertyOrder(groupPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_Description))] + public int Group + { + get + { + return data.Group; + } + } + + [DynamicVisible] + [PropertyOrder(contributionPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_Description))] + public double Contribution + { + get + { + return data.Contribution; + } + } + + [PropertyOrder(isRelevantPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_Description))] + public bool IsRelevant + { + get + { + return data.IsRelevant; + } + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/StandAloneFailureMechanismProperties.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/StandAloneFailureMechanismProperties.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/PropertyClasses/StandAlone/StandAloneFailureMechanismProperties.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,153 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Util.Attributes; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Data.FailureMechanism; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.PropertyClasses.StandAlone +{ + /// + /// ViewModel of properties panel. + /// + public class StandAloneFailureMechanismProperties : ObjectProperties + { + private const int namePropertyIndex = 1; + private const int codePropertyIndex = 2; + private const int groupPropertyIndex = 3; + private const int contributionPropertyIndex = 4; + private const int isRelevantPropertyIndex = 5; + + private readonly IAssessmentSection assessmentSection; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism to show the properties for. + /// The assessment section the failure mechanism belongs to. + /// Thrown when any parameter is null. + public StandAloneFailureMechanismProperties(IFailureMechanism failureMechanism, IAssessmentSection assessmentSection) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + this.assessmentSection = assessmentSection; + + Data = failureMechanism; + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + if (!data.IsRelevant && ShouldHidePropertyWhenFailureMechanismIrrelevant(propertyName)) + { + return false; + } + + return true; + } + + private bool ShouldHidePropertyWhenFailureMechanismIrrelevant(string propertyName) + { + return nameof(Contribution).Equals(propertyName); + } + + #region General + + [PropertyOrder(namePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Name_Description))] + public string Name + { + get + { + return data.Name; + } + } + + [PropertyOrder(codePropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Code_Description))] + public string Code + { + get + { + return data.Code; + } + } + + [PropertyOrder(groupPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Group_Description))] + public int Group + { + get + { + return data.Group; + } + } + + [DynamicVisible] + [PropertyOrder(contributionPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_Contribution_Description))] + public string Contribution + { + get + { + return string.Format(Resources.FailureMechanismProperties_Contribution_Other_Percentage_0, + assessmentSection.GetContributingFailureMechanisms().Single(fm => fm is OtherFailureMechanism).Contribution); + } + } + + [PropertyOrder(isRelevantPropertyIndex)] + [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_General))] + [ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_DisplayName))] + [ResourcesDescription(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.FailureMechanism_IsRelevant_Description))] + public bool IsRelevant + { + get + { + return data.IsRelevant; + } + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Resources/AddFolder-stand32.png =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Resources/folder-stand.png =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Resources/folder-stand32.png =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Resources/map.png =================================================================== diff -u Binary files differ Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/RingtoetsSettingsHelper.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/RingtoetsSettingsHelper.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/RingtoetsSettingsHelper.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,65 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Collections.Generic; +using System.IO; +using Core.Common.Util.Settings; + +namespace Riskeer.Integration.Forms +{ + /// + /// Class that defines helper methods related to Ringtoets settings. + /// + public class RingtoetsSettingsHelper : SettingsHelper + { + /// + /// Gets the directory of the "NBPW" shape file within the common documents directory. + /// + /// Directory path where the "NBPW" shape file can be found. + public static string GetCommonDocumentsRingtoetsShapeFileDirectory() + { + string commonDocuments = new RingtoetsSettingsHelper().GetCommonDocumentsDirectory(); + return Path.Combine(commonDocuments, "NBPW"); + } + + public override string GetCommonDocumentsDirectory(params string[] subPath) + { + var ringtoetsCommonDocumentsPath = new List + { + "WTI", + "Ringtoets" + }; + ringtoetsCommonDocumentsPath.AddRange(subPath); + return base.GetCommonDocumentsDirectory(ringtoetsCommonDocumentsPath.ToArray()); + } + + public override string GetApplicationLocalUserSettingsDirectory(params string[] subPath) + { + var ringtoetsApplicationPath = new List + { + "WTI", + "Ringtoets" + }; + ringtoetsApplicationPath.AddRange(subPath); + return base.GetApplicationLocalUserSettingsDirectory(ringtoetsApplicationPath.ToArray()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Riskeer.Integration.Forms.csproj =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Riskeer.Integration.Forms.csproj (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Riskeer.Integration.Forms.csproj (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,423 @@ + + + + {AD0CDC89-0A00-4068-AEEC-9838863C2FE8} + Riskeer.Integration.Forms + Riskeer.Integration.Forms + + + + + ..\..\..\..\packages\log4net.2.0.4\lib\net40-full\log4net.dll + True + + + + + + + + + + + + + + + + + + + + Form + + + AssessmentSectionMergeDataProviderDialog.cs + + + Form + + + BackgroundMapDataSelectionDialog.cs + + + + + + UserControl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + Form + + + ReferenceLineMetaSelectionDialog.cs + + + + UserControl + + + AssemblyResultCategoriesView.cs + + + UserControl + + + AssemblyResultPerSectionMapView.cs + + + UserControl + + + AssemblyResultPerSectionView.cs + + + UserControl + + + AssemblyResultTotalView.cs + + + UserControl + + + AssessmentSectionView.cs + + + + UserControl + + + FailureMechanismWithoutDetailedAssessmentView.cs + + + UserControl + + + FailureMechanismWithDetailedAssessmentView.cs + + + UserControl + + + MacroStabilityOutwardsAssemblyCategoriesView.cs + + + UserControl + + + FailureMechanismAssemblyCategoriesView.cs + + + + + + + UserControl + + + FailureMechanismContributionView.cs + + + + + UserControl + + + UserControl + + + AssessmentSectionAssemblyCategoriesView.cs + + + + + + + + + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + + + {3bbfd65b-b277-4e50-ae6d-bd24c3434609} + Core.Common.Base + False + + + {9a2d67e6-26ac-4d17-b11a-2b4372f2f572} + Core.Common.Controls + False + + + {30e4c2ae-719e-4d70-9fa9-668a9767fbfa} + Core.Common.Gui + False + + + {f49bd8b2-332a-4c91-a196-8cce0a2c7d98} + Core.Common.Util + False + + + {1BA9EBD0-AA64-4BE3-9791-B2EE344EC938} + Core.Components.BruTile.Forms + False + + + {4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5} + Core.Components.Gis.Forms + False + + + {318BA582-88C9-4816-A54A-A7E431461DE3} + Core.Components.Gis + False + + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Riskeer.AssemblyTool.Data + False + + + {22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1} + Riskeer.AssemblyTool.Forms + False + + + {c6309704-d67b-434c-bc98-9f8910bc1d10} + Ringtoets.ClosingStructures.Data + False + + + {d4200f43-3f72-4f42-af0a-8ced416a38ec} + Ringtoets.Common.Data + False + + + {4d840673-3812-4338-a352-84854e32b8a0} + Ringtoets.Common.Forms + False + + + {52BA7627-CBAB-4209-BE77-3B5F31378277} + Ringtoets.Common.IO + False + + + {78AA56F5-431D-465C-AC50-3173D7E90AC1} + Ringtoets.Common.Primitives + False + + + {d1068432-c172-4aa6-847b-d9deb4c6de26} + Ringtoets.DuneErosion.Data + False + + + {90de728e-48ef-4665-ab38-3d88e41d9f4d} + Ringtoets.GrassCoverErosionInwards.Data + False + + + {E7225477-577F-4A17-B7EC-6721158E1543} + Ringtoets.GrassCoverErosionOutwards.Data + False + + + {1C0017D8-35B5-4CA0-8FC7-A83F46DBDC99} + Ringtoets.HeightStructures.Data + False + + + {83d6b73e-91d5-46b0-9218-955da1f75f7c} + Ringtoets.MacroStabilityInwards.Data + False + + + {e9b39743-2dc9-4922-9e0f-6ba3e0e54189} + Ringtoets.MacroStabilityInwards.Primitives + False + + + {ce994cc9-6f6a-48ac-b4be-02c30a21f4db} + Ringtoets.Piping.Data + False + + + {3d4b9740-8348-4434-8d77-b611fc6ee57f} + Ringtoets.StabilityPointStructures.Data + False + + + {b479e3af-7c34-488c-bb73-d324100d36c9} + Ringtoets.StabilityStoneCover.Data + False + + + {50963f12-448c-41ba-a62c-cdb0ab8d21e0} + Riskeer.Storage.Core + False + + + {567e0b69-5280-41ce-add6-443725a61c86} + Ringtoets.WaveImpactAsphaltCover.Data + False + + + {11f1f874-45af-43e4-8ae5-15a5c9593e28} + Riskeer.Integration.Data + False + + + {d4d21027-b2cd-47e2-a299-70885cc93ab4} + Riskeer.Integration.Util + False + + + + + BackgroundMapDataSelectionDialog.cs + + + AssessmentSectionMergeDataProviderDialog.cs + + + PublicResXFileCodeGenerator + Designer + Resources.Designer.cs + + + ReferenceLineMetaSelectionDialog.cs + Designer + + + AssemblyResultCategoriesView.cs + + + AssemblyResultPerSectionMapView.cs + + + AssemblyResultPerSectionView.cs + + + AssemblyResultTotalView.cs + + + AssessmentSectionView.cs + + + FailureMechanismWithoutDetailedAssessmentView.cs + + + FailureMechanismWithDetailedAssessmentView.cs + + + MacroStabilityOutwardsAssemblyCategoriesView.cs + + + FailureMechanismAssemblyCategoriesView.cs + + + FailureMechanismContributionView.cs + Designer + + + AssessmentSectionAssemblyCategoriesView.cs + Designer + + + + + Copying.licenseheader + + + + + + + + + + + + + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoriesTable.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoriesTable.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoriesTable.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,75 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using Core.Common.Controls.DataGrid; +using Riskeer.AssemblyTool.Data; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class defines a table in which properties of instances are displayed. + /// + /// The type of the enum to display in the table rows. + public class AssemblyCategoriesTable : DataGridViewControl + where T : struct + { + /// + /// Creates a new instance of . + /// + public AssemblyCategoriesTable() + { + AddColumns(); + } + + /// + /// Sets the given for which the properties + /// are shown in the table. + /// + /// The collection of . + public void SetData(IEnumerable> categories) + { + SetDataSource(categories?.Select(category => new AssemblyCategoryRow(category.Item1, category.Item2, category.Item3)).ToArray()); + } + + private void AddColumns() + { + AddTextBoxColumn(nameof(AssemblyCategoryRow.Group), + RingtoetsCommonFormsResources.AssemblyCategory_Group_DisplayName, + true); + + AddColorColumn(nameof(AssemblyCategoryRow.Color), + RingtoetsCommonFormsResources.AssemblyCategory_Color_DisplayName); + + AddTextBoxColumn(nameof(AssemblyCategoryRow.LowerBoundary), + RingtoetsCommonFormsResources.AssemblyCategory_LowerBoundary_DisplayName, + true); + + AddTextBoxColumn(nameof(AssemblyCategoryRow.UpperBoundary), + RingtoetsCommonFormsResources.AssemblyCategory_UpperBoundary_DisplayName, + true); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoryRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoryRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyCategoryRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,84 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using System.Drawing; +using Core.Common.Util; +using Ringtoets.Common.Forms.TypeConverters; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row displaying the properties of a . + /// + /// The type of the enum to display. + internal class AssemblyCategoryRow + where T : struct + { + /// + /// Creates a new instance of . + /// + /// The to use. + /// The belonging to this category. + /// The category group of this category. + /// Thrown when + /// is null. + public AssemblyCategoryRow(AssemblyCategory assemblyCategory, + Color assemblyColor, + T assemblyCategoryGroup) + { + if (assemblyCategory == null) + { + throw new ArgumentNullException(nameof(assemblyCategory)); + } + + Group = assemblyCategoryGroup; + Color = assemblyColor; + UpperBoundary = assemblyCategory.UpperBoundary; + LowerBoundary = assemblyCategory.LowerBoundary; + } + + /// + /// Gets the display name of the category group. + /// + [TypeConverter(typeof(EnumTypeConverter))] + public T Group { get; } + + /// + /// Gets the color of the category. + /// + public Color Color { get; } + + /// + /// Gets the lower boundary of the category. + /// + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double LowerBoundary { get; } + + /// + /// Gets the upper boundary of the category. + /// + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double UpperBoundary { get; } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,93 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssemblyResultCategoriesView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.assemblyCategoriesTable = new AssemblyCategoriesTable(); + this.groupBoxPanel = new System.Windows.Forms.Panel(); + this.groupBoxPanel.SuspendLayout(); + this.groupBox = new System.Windows.Forms.GroupBox(); + this.groupBox.SuspendLayout(); + this.SuspendLayout(); + // + // failureMechanismAssemblyCategoriesTable + // + this.assemblyCategoriesTable.Dock = System.Windows.Forms.DockStyle.Fill; + this.assemblyCategoriesTable.MultiSelect = true; + this.assemblyCategoriesTable.Name = "assemblyCategoriesTable"; + this.assemblyCategoriesTable.Padding = new System.Windows.Forms.Padding(5); + this.assemblyCategoriesTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // groupBoxPanel + // + this.groupBoxPanel.Controls.Add(this.groupBox); + this.groupBoxPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxPanel.Name = "groupBoxPanel"; + this.groupBoxPanel.Padding = new System.Windows.Forms.Padding(3); + // + // groupBox + // + this.groupBox.Controls.Add(assemblyCategoriesTable); + this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox.Location = new System.Drawing.Point(0, 0); + this.groupBox.Margin = new System.Windows.Forms.Padding(5); + this.groupBox.Name = "groupBox"; + this.groupBox.Size = new System.Drawing.Size(150, 150); + this.groupBox.TabIndex = 0; + this.groupBox.TabStop = false; + this.groupBox.Text = global::Riskeer.Integration.Forms.Properties.Resources.AssemblyResultCategories_DisplayName; + // + // AssemblyResultCategoriesView + // + this.Name = "AssemblyResultCategoriesView"; + this.Controls.Add(this.groupBoxPanel); + this.Size = new System.Drawing.Size(750, 420); + this.AutoScrollMinSize = new System.Drawing.Size(400, 100); + this.groupBoxPanel.ResumeLayout(false); + this.groupBox.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private AssemblyCategoriesTable assemblyCategoriesTable; + private System.Windows.Forms.GroupBox groupBox; + private System.Windows.Forms.Panel groupBoxPanel; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,101 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Controls.Views; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// View to show a collection of . + /// + public partial class AssemblyResultCategoriesView : UserControl, IView + { + private readonly Func> getAssemblyCategoriesFunc; + + private readonly Observer failureMechanismContributionObserver; + + /// + /// Creates a new instance of . + /// + /// The assessment section. + /// The func to get the assembly categories from. + /// Thrown when any parameter is null. + public AssemblyResultCategoriesView(AssessmentSection assessmentSection, + Func> getAssemblyCategoriesFunc) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (getAssemblyCategoriesFunc == null) + { + throw new ArgumentNullException(nameof(getAssemblyCategoriesFunc)); + } + + AssessmentSection = assessmentSection; + this.getAssemblyCategoriesFunc = getAssemblyCategoriesFunc; + + InitializeComponent(); + + failureMechanismContributionObserver = new Observer(UpdateTableData) + { + Observable = assessmentSection.FailureMechanismContribution + }; + + UpdateTableData(); + } + + public AssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + failureMechanismContributionObserver.Dispose(); + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void UpdateTableData() + { + assemblyCategoriesTable.SetData( + getAssemblyCategoriesFunc().Select( + category => new Tuple( + category, + AssemblyCategoryGroupColorHelper.GetFailureMechanismAssemblyCategoryGroupColor(category.Group), + category.Group)).ToArray()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultCategoriesView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,114 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Windows.Forms; + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssemblyResultPerSectionMapView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AssemblyResultPerSectionMapView)); + this.ringtoetsMapControl = new Ringtoets.Common.Forms.Views.RingtoetsMapControl(); + this.warningPanel = new System.Windows.Forms.Panel(); + this.warningIcon = new System.Windows.Forms.PictureBox(); + this.warningText = new System.Windows.Forms.Label(); + this.warningPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.warningIcon)).BeginInit(); + this.SuspendLayout(); + // + // ringtoetsMapControl + // + this.ringtoetsMapControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.ringtoetsMapControl.Location = new System.Drawing.Point(0, 0); + this.ringtoetsMapControl.Margin = new System.Windows.Forms.Padding(0); + this.ringtoetsMapControl.Name = "ringtoetsMapControl"; + this.ringtoetsMapControl.Size = new System.Drawing.Size(562, 150); + this.ringtoetsMapControl.TabIndex = 0; + // + // warningPanel + // + this.warningPanel.BackColor = System.Drawing.SystemColors.Info; + this.warningPanel.Controls.Add(this.warningText); + this.warningPanel.Controls.Add(this.warningIcon); + this.warningPanel.Location = new System.Drawing.Point(0, 25); + this.warningPanel.Name = "warningPanel"; + this.warningPanel.Size = new System.Drawing.Size(562, 100); + this.warningPanel.TabIndex = 1; + this.warningPanel.AutoSize = true; + this.warningPanel.Dock = DockStyle.Top; + // + // warningIcon + // + this.warningIcon.Image = global::Ringtoets.Common.Forms.Properties.Resources.PencilWarning.ToBitmap(); + this.warningIcon.Location = new System.Drawing.Point(4, 4); + this.warningIcon.MaximumSize = new System.Drawing.Size(16, 16); + this.warningIcon.Name = "warningIcon"; + this.warningIcon.Size = new System.Drawing.Size(16, 16); + this.warningIcon.TabIndex = 0; + this.warningIcon.TabStop = false; + this.warningIcon.SizeMode = PictureBoxSizeMode.StretchImage; + this.warningIcon.Dock = DockStyle.Left; + // + // warningText + // + this.warningText.AutoSize = true; + this.warningText.Location = new System.Drawing.Point(27, 6); + this.warningText.Name = "warningText"; + this.warningText.Size = new System.Drawing.Size(35, 13); + this.warningText.TabIndex = 1; + this.warningText.Text = global::Ringtoets.Common.Forms.Properties.Resources.ManualAssemblyWarning_FailureMechanismAssemblyResult_is_based_on_manual_assemblies; + // + // AssemblyResultPerSectionMapView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.ringtoetsMapControl); + this.Controls.Add(this.warningPanel); + this.Name = "AssemblyResultPerSectionMapView"; + this.Size = new System.Drawing.Size(562, 150); + this.warningPanel.ResumeLayout(false); + this.warningPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.warningIcon)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Ringtoets.Common.Forms.Views.RingtoetsMapControl ringtoetsMapControl; + private Panel warningPanel; + private PictureBox warningIcon; + private Label warningText; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,228 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Components.Gis.Data; +using Core.Components.Gis.Forms; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Forms.Factories; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Assembly; +using Riskeer.Integration.Forms.Factories; +using Riskeer.Integration.Forms.Observers; +using Riskeer.Integration.Forms.Properties; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// The map view for the assembly result per section for all failure mechanisms of + /// the . + /// + public partial class AssemblyResultPerSectionMapView : UserControl, IMapView + { + private readonly MapLineData assemblyResultsMapData; + private readonly MapLineData referenceLineMapData; + private readonly MapPointData hydraulicBoundaryLocationsMapData; + + private Observer assessmentSectionResultObserver; + private Observer hydraulicBoundaryLocationsObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; + + /// + /// Creates a new instance of . + /// + /// The to create the view for. + /// Thrown when + /// is null. + public AssemblyResultPerSectionMapView(AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + InitializeComponent(); + + AssessmentSection = assessmentSection; + + CreateObservers(); + + var mapDataCollection = new MapDataCollection(Resources.AssemblyResultPerSectionMapView_DisplayName); + assemblyResultsMapData = CombinedSectionAssemblyMapDataFactory.CreateCombinedSectionAssemblyResultMapData(); + referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); + hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); + + mapDataCollection.Add(referenceLineMapData); + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); + mapDataCollection.Add(assemblyResultsMapData); + + SetAllMapDataFeatures(); + SetWarningPanel(); + + ringtoetsMapControl.SetAllData(mapDataCollection, assessmentSection.BackgroundData); + } + + /// + /// Gets the the view belongs to. + /// + public AssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + public IMapControl Map + { + get + { + return ringtoetsMapControl.MapControl; + } + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + assessmentSectionResultObserver.Dispose(); + waterLevelCalculationsForFactorizedSignalingNormObserver.Dispose(); + waterLevelCalculationsForSignalingNormObserver.Dispose(); + waterLevelCalculationsForLowerLimitNormObserver.Dispose(); + waterLevelCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedSignalingNormObserver.Dispose(); + waveHeightCalculationsForSignalingNormObserver.Dispose(); + waveHeightCalculationsForLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + hydraulicBoundaryLocationsObserver.Dispose(); + + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void CreateObservers() + { + assessmentSectionResultObserver = new Observer(() => + { + UpdateAssessmentSectionData(); + SetWarningPanel(); + }) + { + Observable = new AssessmentSectionResultObserver(AssessmentSection) + }; + + waterLevelCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; + } + + private void SetAllMapDataFeatures() + { + SetReferenceLineMapData(); + SetHydraulicBoundaryLocationsMapData(); + SetAssemblyResultsMapData(); + } + + private void SetWarningPanel() + { + warningPanel.Visible = AssessmentSectionHelper.HasManualAssemblyResults(AssessmentSection); + } + + private void UpdateAssessmentSectionData() + { + UpdateAssemblyResultsMapData(); + UpdateReferenceLineMapData(); + } + + #region AssemblyResults MapData + + private void UpdateAssemblyResultsMapData() + { + SetAssemblyResultsMapData(); + assemblyResultsMapData.NotifyObservers(); + } + + private void SetAssemblyResultsMapData() + { + assemblyResultsMapData.Features = AssessmentSectionAssemblyMapDataFeaturesFactory.CreateCombinedFailureMechanismSectionAssemblyFeatures(AssessmentSection); + } + + #endregion + + #region ReferenceLine MapData + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); + referenceLineMapData.NotifyObservers(); + } + + private void SetReferenceLineMapData() + { + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(AssessmentSection.ReferenceLine, + AssessmentSection.Id, + AssessmentSection.Name); + } + + #endregion + + #region HydraulicBoundaryLocations MapData + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } + + private void SetHydraulicBoundaryLocationsMapData() + { + hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeatures(AssessmentSection); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionMapView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,133 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssemblyResultPerSectionView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl(); + this.refreshAssemblyResultsButton = new System.Windows.Forms.Button(); + this.buttonGroupBox = new System.Windows.Forms.GroupBox(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.warningProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.manualAssemblyWarningProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.buttonGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualAssemblyWarningProvider)).BeginInit(); + this.SuspendLayout(); + // + // dataGridViewControl + // + this.dataGridViewControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridViewControl.Location = new System.Drawing.Point(0, 43); + this.dataGridViewControl.MultiSelect = true; + this.dataGridViewControl.Name = "dataGridViewControl"; + this.dataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + this.dataGridViewControl.Size = new System.Drawing.Size(789, 373); + this.dataGridViewControl.TabIndex = 3; + // + // refreshAssemblyResultsButton + // + this.refreshAssemblyResultsButton.AutoSize = true; + this.refreshAssemblyResultsButton.Enabled = false; + this.refreshAssemblyResultsButton.Location = new System.Drawing.Point(3, 14); + this.refreshAssemblyResultsButton.Name = "refreshAssemblyResultsButton"; + this.refreshAssemblyResultsButton.Size = new System.Drawing.Size(164, 23); + this.refreshAssemblyResultsButton.TabIndex = 0; + this.refreshAssemblyResultsButton.Text = global::Riskeer.Integration.Forms.Properties.Resources.RefreshAssemblyResultsButton_Text; + this.refreshAssemblyResultsButton.UseVisualStyleBackColor = true; + this.refreshAssemblyResultsButton.Click += new System.EventHandler(this.RefreshAssemblyResults_Click); + // + // buttonGroupBox + // + this.buttonGroupBox.Controls.Add(this.refreshAssemblyResultsButton); + this.buttonGroupBox.Dock = System.Windows.Forms.DockStyle.Top; + this.buttonGroupBox.Location = new System.Drawing.Point(0, 0); + this.buttonGroupBox.MinimumSize = new System.Drawing.Size(180, 43); + this.buttonGroupBox.Name = "buttonGroupBox"; + this.buttonGroupBox.Size = new System.Drawing.Size(789, 43); + this.buttonGroupBox.TabIndex = 2; + this.buttonGroupBox.TabStop = false; + // + // errorProvider + // + this.errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.errorProvider.ContainerControl = this; + this.errorProvider.Icon = global::Ringtoets.Common.Forms.Properties.Resources.ErrorIcon; + this.errorProvider.SetIconPadding(this.refreshAssemblyResultsButton, 4); + // + // warningProvider + // + this.warningProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.warningProvider.ContainerControl = this; + this.warningProvider.Icon = global::Ringtoets.Common.Forms.Properties.Resources.warning; + this.warningProvider.SetIconPadding(this.refreshAssemblyResultsButton, 4); + // + // manualAssemblyWarningProvider + // + this.manualAssemblyWarningProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.manualAssemblyWarningProvider.ContainerControl = this; + this.manualAssemblyWarningProvider.Icon = global::Ringtoets.Common.Forms.Properties.Resources.PencilWarning; + this.manualAssemblyWarningProvider.SetIconPadding(this.refreshAssemblyResultsButton, 4); + // + // AssemblyResultPerSectionView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScrollMinSize = new System.Drawing.Size(300, 250); + this.Controls.Add(this.dataGridViewControl); + this.Controls.Add(this.buttonGroupBox); + this.Name = "AssemblyResultPerSectionView"; + this.Size = new System.Drawing.Size(789, 416); + this.buttonGroupBox.ResumeLayout(false); + this.buttonGroupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualAssemblyWarningProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl; + private System.Windows.Forms.Button refreshAssemblyResultsButton; + private System.Windows.Forms.GroupBox buttonGroupBox; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.ErrorProvider warningProvider; + private System.Windows.Forms.ErrorProvider manualAssemblyWarningProvider; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,269 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Controls.DataGrid; +using Core.Common.Controls.Views; +using Ringtoets.Common.Data.Exceptions; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Assembly; +using Riskeer.Integration.Forms.Observers; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using PipingDataResources = Ringtoets.Piping.Data.Properties.Resources; +using GrassCoverErosionInwardsDataResources = Ringtoets.GrassCoverErosionInwards.Data.Properties.Resources; +using MacroStabilityInwardsDataResources = Ringtoets.MacroStabilityInwards.Data.Properties.Resources; +using IntegrationDataResources = Riskeer.Integration.Data.Properties.Resources; +using StabilityStoneCoverDataResources = Ringtoets.StabilityStoneCover.Data.Properties.Resources; +using WaveImpactAsphaltCoverDataResources = Ringtoets.WaveImpactAsphaltCover.Data.Properties.Resources; +using GrassCoverErosionOutwardsDataResources = Ringtoets.GrassCoverErosionOutwards.Data.Properties.Resources; +using HeightStructuresDataResources = Ringtoets.HeightStructures.Data.Properties.Resources; +using ClosingStructuresDataResources = Ringtoets.ClosingStructures.Data.Properties.Resources; +using StabilityPointStructuresDataResources = Ringtoets.StabilityPointStructures.Data.Properties.Resources; +using DuneErosionDataResources = Ringtoets.DuneErosion.Data.Properties.Resources; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// The view for the assembly result per section for all failure mechanisms of + /// the . + /// + public partial class AssemblyResultPerSectionView : UserControl, IView + { + private readonly Observer assessmentSectionResultObserver; + + /// + /// Creates a new instance of . + /// + /// The to create the view for. + /// Thrown when + /// is null. + public AssemblyResultPerSectionView(AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + AssessmentSection = assessmentSection; + InitializeComponent(); + + assessmentSectionResultObserver = new Observer(EnableRefreshButton) + { + Observable = new AssessmentSectionResultObserver(assessmentSection) + }; + } + + /// + /// Gets the the view belongs to. + /// + public AssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + InitializeDataGridView(); + CheckManualAssemblyResults(); + + dataGridViewControl.CellFormatting += HandleCellStyling; + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + components?.Dispose(); + assessmentSectionResultObserver.Dispose(); + } + + base.Dispose(disposing); + } + + private void EnableRefreshButton() + { + if (!refreshAssemblyResultsButton.Enabled) + { + refreshAssemblyResultsButton.Enabled = true; + + warningProvider.SetError(refreshAssemblyResultsButton, + Resources.AssemblyResultView_RefreshAssemblyResultsButton_Warning_Result_is_outdated_Press_Refresh_button_to_recalculate); + + warningProvider.SetIconPadding(refreshAssemblyResultsButton, + string.IsNullOrEmpty(errorProvider.GetError(refreshAssemblyResultsButton)) ? 4 : 24); + CheckManualAssemblyResults(); + } + } + + private void CheckManualAssemblyResults() + { + SetManualAssemblyWarningIconPadding(); + + if (AssessmentSectionHelper.HasManualAssemblyResults(AssessmentSection)) + { + manualAssemblyWarningProvider.SetError(refreshAssemblyResultsButton, + RingtoetsCommonFormsResources.ManualAssemblyWarning_FailureMechanismAssemblyResult_is_based_on_manual_assemblies); + } + } + + private void SetManualAssemblyWarningIconPadding() + { + bool hasError = !string.IsNullOrEmpty(errorProvider.GetError(refreshAssemblyResultsButton)); + bool hasWarning = !string.IsNullOrEmpty(warningProvider.GetError(refreshAssemblyResultsButton)); + + int manualAssemblyWarningPadding; + if (hasError && hasWarning) + { + manualAssemblyWarningPadding = 44; + } + else if (hasError || hasWarning) + { + manualAssemblyWarningPadding = 24; + } + else + { + manualAssemblyWarningPadding = 4; + } + + manualAssemblyWarningProvider.SetIconPadding(refreshAssemblyResultsButton, + manualAssemblyWarningPadding); + } + + private void HandleCellStyling(object sender, DataGridViewCellFormattingEventArgs e) + { + dataGridViewControl.FormatCellWithColumnStateDefinition(e.RowIndex, e.ColumnIndex); + } + + private void InitializeDataGridView() + { + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.SectionNumber), + Resources.SectionNumber_DisplayName, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.SectionStart), + RingtoetsCommonFormsResources.SectionStart_DisplayName, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.SectionEnd), + RingtoetsCommonFormsResources.SectionEnd_DisplayName, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.TotalResult), + Resources.AssemblyResultPerSection_DisplayName, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.Piping), + PipingDataResources.PipingFailureMechanism_DisplayCode, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.GrassCoverErosionInwards), + GrassCoverErosionInwardsDataResources.GrassCoverErosionInwardsFailureMechanism_DisplayCode, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.MacroStabilityInwards), + MacroStabilityInwardsDataResources.MacroStabilityInwardsFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.MacroStabilityOutwards), + IntegrationDataResources.MacroStabilityOutwardsFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.Microstability), + IntegrationDataResources.MicrostabilityFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.StabilityStoneCover), + StabilityStoneCoverDataResources.StabilityStoneCoverFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.WaveImpactAsphaltCover), + WaveImpactAsphaltCoverDataResources.WaveImpactAsphaltCoverFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.WaterPressureAsphaltCover), + IntegrationDataResources.WaterPressureAsphaltCoverFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.GrassCoverErosionOutwards), + GrassCoverErosionOutwardsDataResources.GrassCoverErosionOutwardsFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.GrassCoverSlipOffOutwards), + IntegrationDataResources.GrassCoverSlipOffOutwardsFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.GrassCoverSlipOffInwards), + IntegrationDataResources.GrassCoverSlipOffInwardsFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.HeightStructures), + HeightStructuresDataResources.HeightStructuresFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.ClosingStructures), + ClosingStructuresDataResources.ClosingStructuresFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.PipingStructure), + IntegrationDataResources.PipingStructureFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.StabilityPointStructures), + StabilityPointStructuresDataResources.StabilityPointStructuresFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.StrengthStabilityLengthwiseConstruction), + IntegrationDataResources.StrengthStabilityLengthwiseConstructionFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.DuneErosion), + DuneErosionDataResources.DuneErosionFailureMechanism_Code, + true); + dataGridViewControl.AddTextBoxColumn(nameof(CombinedFailureMechanismSectionAssemblyResultRow.TechnicalInnovation), + IntegrationDataResources.TechnicalInnovationFailureMechanism_Code, + true); + + SetDataSource(); + } + + private void RefreshAssemblyResults_Click(object sender, EventArgs e) + { + refreshAssemblyResultsButton.Enabled = false; + SetDataSource(); + } + + private void SetDataSource() + { + ClearCurrentData(); + + if (!AssessmentSection.ReferenceLine.Points.Any()) + { + return; + } + + try + { + dataGridViewControl.SetDataSource(AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection(AssessmentSection, true) + .Select(r => new CombinedFailureMechanismSectionAssemblyResultRow(r)) + .ToArray()); + } + catch (AssemblyException e) + { + errorProvider.SetError(refreshAssemblyResultsButton, e.Message); + } + + CheckManualAssemblyResults(); + } + + private void ClearCurrentData() + { + errorProvider.SetError(refreshAssemblyResultsButton, string.Empty); + warningProvider.SetError(refreshAssemblyResultsButton, string.Empty); + manualAssemblyWarningProvider.SetError(refreshAssemblyResultsButton, string.Empty); + dataGridViewControl.SetDataSource(Enumerable.Empty()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultPerSectionView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,241 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.Integration.Forms.Controls; + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssemblyResultTotalView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl(); + this.refreshAssemblyResultsButton = new System.Windows.Forms.Button(); + this.assemblyResultGroupBox = new System.Windows.Forms.GroupBox(); + this.assemblyResultTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.totalResultLabel = new System.Windows.Forms.Label(); + this.failureMechanismsWithProbabilityLabel = new System.Windows.Forms.Label(); + this.failureMechanismsWithoutProbabilityLabel = new System.Windows.Forms.Label(); + this.totalAssemblyCategoryGroupControl = new AssessmentSectionAssemblyCategoryGroupControl(); + this.failureMechanismsWithProbabilityAssemblyControl = new Ringtoets.Common.Forms.Controls.FailureMechanismAssemblyControl(); + this.failureMechanismsWithoutProbabilityAssemblyControl = new Ringtoets.Common.Forms.Controls.FailureMechanismAssemblyCategoryGroupControl(); + this.refreshButtonPanel = new System.Windows.Forms.Panel(); + this.warningProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.manualAssemblyWarningProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.assemblyResultGroupBox.SuspendLayout(); + this.assemblyResultTableLayoutPanel.SuspendLayout(); + this.refreshButtonPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualAssemblyWarningProvider)).BeginInit(); + this.SuspendLayout(); + // + // dataGridViewControl + // + this.dataGridViewControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridViewControl.Location = new System.Drawing.Point(0, 145); + this.dataGridViewControl.MultiSelect = true; + this.dataGridViewControl.Name = "dataGridViewControl"; + this.dataGridViewControl.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + this.dataGridViewControl.Size = new System.Drawing.Size(789, 271); + this.dataGridViewControl.TabIndex = 3; + // + // refreshAssemblyResultsButton + // + this.refreshAssemblyResultsButton.AutoSize = true; + this.refreshAssemblyResultsButton.Dock = System.Windows.Forms.DockStyle.Left; + this.refreshAssemblyResultsButton.Enabled = false; + this.refreshAssemblyResultsButton.Location = new System.Drawing.Point(5, 5); + this.refreshAssemblyResultsButton.Name = "refreshAssemblyResultsButton"; + this.refreshAssemblyResultsButton.Size = new System.Drawing.Size(164, 25); + this.refreshAssemblyResultsButton.TabIndex = 0; + this.refreshAssemblyResultsButton.Text = global::Riskeer.Integration.Forms.Properties.Resources.RefreshAssemblyResultsButton_Text; + this.refreshAssemblyResultsButton.UseVisualStyleBackColor = true; + this.refreshAssemblyResultsButton.Click += new System.EventHandler(this.RefreshAssemblyResults_Click); + // + // assemblyResultGroupBox + // + this.assemblyResultGroupBox.Controls.Add(this.assemblyResultTableLayoutPanel); + this.assemblyResultGroupBox.Dock = System.Windows.Forms.DockStyle.Top; + this.assemblyResultGroupBox.Location = new System.Drawing.Point(0, 35); + this.assemblyResultGroupBox.Margin = new System.Windows.Forms.Padding(5); + this.assemblyResultGroupBox.Name = "assemblyResultGroupBox"; + this.assemblyResultGroupBox.Size = new System.Drawing.Size(789, 110); + this.assemblyResultGroupBox.TabIndex = 1; + this.assemblyResultGroupBox.TabStop = false; + this.assemblyResultGroupBox.Text = global::Ringtoets.Common.Forms.Properties.Resources.CombinedAssembly_DisplayName; + // + // assemblyResultTableLayoutPanel + // + this.assemblyResultTableLayoutPanel.AutoSize = true; + this.assemblyResultTableLayoutPanel.ColumnCount = 2; + this.assemblyResultTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.assemblyResultTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.assemblyResultTableLayoutPanel.Controls.Add(this.totalResultLabel, 0, 0); + this.assemblyResultTableLayoutPanel.Controls.Add(this.failureMechanismsWithProbabilityLabel, 0, 1); + this.assemblyResultTableLayoutPanel.Controls.Add(this.failureMechanismsWithoutProbabilityLabel, 0, 2); + this.assemblyResultTableLayoutPanel.Controls.Add(this.totalAssemblyCategoryGroupControl, 1, 0); + this.assemblyResultTableLayoutPanel.Controls.Add(this.failureMechanismsWithProbabilityAssemblyControl, 1, 1); + this.assemblyResultTableLayoutPanel.Controls.Add(this.failureMechanismsWithoutProbabilityAssemblyControl, 1, 2); + this.assemblyResultTableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.assemblyResultTableLayoutPanel.Location = new System.Drawing.Point(3, 16); + this.assemblyResultTableLayoutPanel.Name = "assemblyResultTableLayoutPanel"; + this.assemblyResultTableLayoutPanel.RowCount = 3; + this.assemblyResultTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.assemblyResultTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.assemblyResultTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.assemblyResultTableLayoutPanel.Size = new System.Drawing.Size(783, 91); + this.assemblyResultTableLayoutPanel.TabIndex = 0; + // + // totalResultLabel + // + this.totalResultLabel.AutoSize = true; + this.totalResultLabel.Dock = System.Windows.Forms.DockStyle.Fill; + this.totalResultLabel.Location = new System.Drawing.Point(3, 0); + this.totalResultLabel.Name = "totalResultLabel"; + this.totalResultLabel.Size = new System.Drawing.Size(81, 30); + this.totalResultLabel.TabIndex = 0; + this.totalResultLabel.Text = global::Riskeer.Integration.Forms.Properties.Resources.AssemblyResultTotalView_TotalResultLabel_Text; + this.totalResultLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // failureMechanismsWithProbabilityLabel + // + this.failureMechanismsWithProbabilityLabel.AutoSize = true; + this.failureMechanismsWithProbabilityLabel.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismsWithProbabilityLabel.Location = new System.Drawing.Point(3, 30); + this.failureMechanismsWithProbabilityLabel.Name = "failureMechanismsWithProbabilityLabel"; + this.failureMechanismsWithProbabilityLabel.Size = new System.Drawing.Size(81, 30); + this.failureMechanismsWithProbabilityLabel.TabIndex = 1; + this.failureMechanismsWithProbabilityLabel.Text = global::Riskeer.Integration.Forms.Properties.Resources.AssemblyResultTotalView_FailureMechanismsWithProbabilityResultLabel_Text; + this.failureMechanismsWithProbabilityLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // failureMechanismsWithoutProbabilityLabel + // + this.failureMechanismsWithoutProbabilityLabel.AutoSize = true; + this.failureMechanismsWithoutProbabilityLabel.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismsWithoutProbabilityLabel.Location = new System.Drawing.Point(3, 60); + this.failureMechanismsWithoutProbabilityLabel.Name = "failureMechanismsWithoutProbabilityLabel"; + this.failureMechanismsWithoutProbabilityLabel.Size = new System.Drawing.Size(81, 31); + this.failureMechanismsWithoutProbabilityLabel.TabIndex = 2; + this.failureMechanismsWithoutProbabilityLabel.Text = global::Riskeer.Integration.Forms.Properties.Resources.AssemblyResultTotalView_FailureMechanismsWithoutProbabilityResultLabel_Text; + this.failureMechanismsWithoutProbabilityLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // totalAssemblyCategoryGroupControl + // + this.totalAssemblyCategoryGroupControl.AutoSize = true; + this.totalAssemblyCategoryGroupControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.totalAssemblyCategoryGroupControl.Location = new System.Drawing.Point(90, 3); + this.totalAssemblyCategoryGroupControl.Name = "totalAssemblyCategoryGroupControl"; + this.totalAssemblyCategoryGroupControl.Size = new System.Drawing.Size(690, 24); + this.totalAssemblyCategoryGroupControl.TabIndex = 3; + // + // failureMechanismsWithProbabilityAssemblyControl + // + this.failureMechanismsWithProbabilityAssemblyControl.AutoSize = true; + this.failureMechanismsWithProbabilityAssemblyControl.Dock = System.Windows.Forms.DockStyle.Left; + this.failureMechanismsWithProbabilityAssemblyControl.Location = new System.Drawing.Point(90, 33); + this.failureMechanismsWithProbabilityAssemblyControl.Name = "failureMechanismsWithProbabilityAssemblyControl"; + this.failureMechanismsWithProbabilityAssemblyControl.Size = new System.Drawing.Size(112, 24); + this.failureMechanismsWithProbabilityAssemblyControl.TabIndex = 4; + // + // failureMechanismsWithoutProbabilityAssemblyControl + // + this.failureMechanismsWithoutProbabilityAssemblyControl.AutoSize = true; + this.failureMechanismsWithoutProbabilityAssemblyControl.Dock = System.Windows.Forms.DockStyle.Left; + this.failureMechanismsWithoutProbabilityAssemblyControl.Location = new System.Drawing.Point(90, 63); + this.failureMechanismsWithoutProbabilityAssemblyControl.Name = "failureMechanismsWithoutProbabilityAssemblyControl"; + this.failureMechanismsWithoutProbabilityAssemblyControl.Size = new System.Drawing.Size(56, 25); + this.failureMechanismsWithoutProbabilityAssemblyControl.TabIndex = 5; + // + // refreshButtonPanel + // + this.refreshButtonPanel.Controls.Add(this.refreshAssemblyResultsButton); + this.refreshButtonPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.refreshButtonPanel.Location = new System.Drawing.Point(0, 0); + this.refreshButtonPanel.Name = "refreshButtonPanel"; + this.refreshButtonPanel.Padding = new System.Windows.Forms.Padding(5); + this.refreshButtonPanel.Size = new System.Drawing.Size(789, 35); + this.refreshButtonPanel.TabIndex = 1; + // + // warningProvider + // + this.warningProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.warningProvider.ContainerControl = this; + this.warningProvider.Icon = global::Ringtoets.Common.Forms.Properties.Resources.warning; + this.warningProvider.SetIconPadding(this.refreshAssemblyResultsButton, 4); + // + // manualAssemblyWarningProvider + // + this.manualAssemblyWarningProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.manualAssemblyWarningProvider.ContainerControl = this; + this.manualAssemblyWarningProvider.Icon = global::Ringtoets.Common.Forms.Properties.Resources.PencilWarning; + this.manualAssemblyWarningProvider.SetIconPadding(this.refreshAssemblyResultsButton, 4); + // + // AssemblyResultTotalView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScrollMinSize = new System.Drawing.Size(350, 250); + this.Controls.Add(this.dataGridViewControl); + this.Controls.Add(this.assemblyResultGroupBox); + this.Controls.Add(this.refreshButtonPanel); + this.Name = "AssemblyResultTotalView"; + this.Size = new System.Drawing.Size(789, 416); + this.assemblyResultGroupBox.ResumeLayout(false); + this.assemblyResultGroupBox.PerformLayout(); + this.assemblyResultTableLayoutPanel.ResumeLayout(false); + this.assemblyResultTableLayoutPanel.PerformLayout(); + this.refreshButtonPanel.ResumeLayout(false); + this.refreshButtonPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.warningProvider)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualAssemblyWarningProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl; + private System.Windows.Forms.Button refreshAssemblyResultsButton; + private System.Windows.Forms.GroupBox assemblyResultGroupBox; + private System.Windows.Forms.TableLayoutPanel assemblyResultTableLayoutPanel; + private System.Windows.Forms.Label totalResultLabel; + private System.Windows.Forms.Label failureMechanismsWithProbabilityLabel; + private System.Windows.Forms.Label failureMechanismsWithoutProbabilityLabel; + private Controls.AssessmentSectionAssemblyCategoryGroupControl totalAssemblyCategoryGroupControl; + private Ringtoets.Common.Forms.Controls.FailureMechanismAssemblyControl failureMechanismsWithProbabilityAssemblyControl; + private Ringtoets.Common.Forms.Controls.FailureMechanismAssemblyCategoryGroupControl failureMechanismsWithoutProbabilityAssemblyControl; + private System.Windows.Forms.Panel refreshButtonPanel; + private System.Windows.Forms.ErrorProvider warningProvider; + private System.Windows.Forms.ErrorProvider manualAssemblyWarningProvider; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,449 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Controls.DataGrid; +using Core.Common.Controls.Views; +using Core.Common.Util.Extensions; +using Ringtoets.ClosingStructures.Data; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.DuneErosion.Data; +using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.HeightStructures.Data; +using Ringtoets.MacroStabilityInwards.Data; +using Ringtoets.Piping.Data; +using Ringtoets.StabilityPointStructures.Data; +using Ringtoets.StabilityStoneCover.Data; +using Ringtoets.WaveImpactAsphaltCover.Data; +using Riskeer.Integration.Data; +using Riskeer.Integration.Data.Assembly; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Forms.Observers; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// The view for the combined assembly result for all failure mechanisms of + /// the . + /// + public partial class AssemblyResultTotalView : UserControl, IView + { + private readonly Observer assessmentSectionObserver; + private readonly Observer assessmentSectionResultObserver; + private IEnumerable assemblyResultRows; + + private bool updateDataSource; + + /// + /// Creates a new instance of . + /// + /// The to create the view for. + /// Thrown when + /// is null. + public AssemblyResultTotalView(AssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + AssessmentSection = assessmentSection; + + InitializeComponent(); + + assessmentSectionObserver = new Observer(() => + { + updateDataSource = true; + EnableRefreshButton(); + }) + { + Observable = assessmentSection + }; + + assessmentSectionResultObserver = new Observer(EnableRefreshButton) + { + Observable = new AssessmentSectionResultObserver(assessmentSection) + }; + } + + /// + /// Gets the the view belongs to. + /// + public AssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + InitializeDataGridView(); + CheckManualAssemblyResults(); + UpdateAssemblyResultControls(); + + dataGridViewControl.CellFormatting += HandleCellStyling; + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + components?.Dispose(); + assessmentSectionObserver.Dispose(); + assessmentSectionResultObserver.Dispose(); + } + + base.Dispose(disposing); + } + + private void EnableRefreshButton() + { + if (!refreshAssemblyResultsButton.Enabled) + { + refreshAssemblyResultsButton.Enabled = true; + warningProvider.SetError(refreshAssemblyResultsButton, + Resources.AssemblyResultView_RefreshAssemblyResultsButton_Warning_Result_is_outdated_Press_Refresh_button_to_recalculate); + SetManualAssemblyWarningPadding(); + } + } + + private void InitializeDataGridView() + { + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismAssemblyResultRowBase.Name), + Resources.FailureMechanism_Name_DisplayName, + true); + + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismAssemblyResultRowBase.Code), + RingtoetsCommonFormsResources.FailureMechanism_Code_DisplayName, + true); + + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismAssemblyResultRowBase.Group), + RingtoetsCommonFormsResources.FailureMechanism_Group_DisplayName, + true); + + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismAssemblyResultRowBase.CategoryGroup), + RingtoetsCommonFormsResources.AssemblyResult_DisplayName, + true); + + dataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismAssemblyResultRowBase.Probability), + Resources.AssemblyResultTotalView_Probability_DisplayName, + true); + + SetDataSource(); + } + + private void SetDataSource() + { + assemblyResultRows = new List + { + CreatePipingFailureMechanismAssemblyResultRow(), + CreateGrassCoverErosionInwardsFailureMechanismAssemblyResultRow(), + CreateMacroStabilityInwardsFailureMechanismAssemblyResultRow(), + CreateMacroStabilityOutwardsFailureMechanismAssemblyResultRow(), + CreateMicrostabilityFailureMechanismAssemblyResultRow(), + CreateStabilityStoneCoverFailureMechanismAssemblyResultRow(), + CreateWaveImpactFailureMechanismAssemblyResultRow(), + CreateWaterPressureAsphaltCoverFailureMechanismAssemblyResultRow(), + CreateGrassCoverErosionOutwardsFailureMechanismAssemblyResultRow(), + CreateGrassCoverSlipOffOutwardsFailureMechanismAssemblyResultRow(), + CreateGrassCoverSlipOffInwardsFailureMechanismAssemblyResultRow(), + CreateHeightStructuresFailureMechanismAssemblyResultRow(), + CreateClosingStructuresFailureMechanismAssemblyResultRow(), + CreatePipingStructureFailureMechanismAssemblyResultRow(), + CreateStabilityPointsStructuresFailureMechanismAssemblyResultRow(), + CreateStrengthStabilityLengthWiseConstructionFailureMechanismAssemblyResultRow(), + CreateDuneErosionFailureMechanismAssemblyResultRow(), + CreateTechnicalInnovationFailureMechanismAssemblyResultRow() + }; + + dataGridViewControl.SetDataSource(assemblyResultRows); + updateDataSource = false; + } + + private void RefreshAssemblyResults_Click(object sender, EventArgs e) + { + ResetRefreshAssemblyResultsButton(); + + CheckManualAssemblyResults(); + + if (updateDataSource) + { + SetDataSource(); + } + else + { + assemblyResultRows.ForEachElementDo(row => row.Update()); + dataGridViewControl.RefreshDataGridView(); + } + + UpdateAssemblyResultControls(); + } + + private void CheckManualAssemblyResults() + { + if (AssessmentSectionHelper.HasManualAssemblyResults(AssessmentSection)) + { + SetManualAssemblyWarningPadding(); + manualAssemblyWarningProvider.SetError(refreshAssemblyResultsButton, + RingtoetsCommonFormsResources.ManualAssemblyWarning_FailureMechanismAssemblyResult_is_based_on_manual_assemblies); + } + } + + private void SetManualAssemblyWarningPadding() + { + manualAssemblyWarningProvider.SetIconPadding(refreshAssemblyResultsButton, string.IsNullOrEmpty(warningProvider.GetError(refreshAssemblyResultsButton)) ? 4 : 24); + } + + private void ResetRefreshAssemblyResultsButton() + { + refreshAssemblyResultsButton.Enabled = false; + warningProvider.SetError(refreshAssemblyResultsButton, string.Empty); + manualAssemblyWarningProvider.SetError(refreshAssemblyResultsButton, string.Empty); + } + + private void UpdateAssemblyResultControls() + { + UpdateTotalAssemblyCategoryGroupControl(); + UpdateFailureMechanismsWithProbabilityAssemblyControl(); + UpdateFailureMechanismsWithoutProbabilityAssemblyControl(); + } + + private void UpdateFailureMechanismsWithoutProbabilityAssemblyControl() + { + failureMechanismsWithoutProbabilityAssemblyControl.ClearAssemblyResult(); + failureMechanismsWithoutProbabilityAssemblyControl.ClearMessages(); + + try + { + failureMechanismsWithoutProbabilityAssemblyControl.SetAssemblyResult( + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithoutProbability(AssessmentSection, true)); + } + catch (AssemblyException e) + { + failureMechanismsWithoutProbabilityAssemblyControl.SetError(e.Message); + } + } + + private void UpdateFailureMechanismsWithProbabilityAssemblyControl() + { + failureMechanismsWithProbabilityAssemblyControl.ClearAssemblyResult(); + failureMechanismsWithProbabilityAssemblyControl.ClearMessages(); + + try + { + failureMechanismsWithProbabilityAssemblyControl.SetAssemblyResult( + AssessmentSectionAssemblyFactory.AssembleFailureMechanismsWithProbability(AssessmentSection, true)); + } + catch (AssemblyException e) + { + failureMechanismsWithProbabilityAssemblyControl.SetError(e.Message); + } + } + + private void UpdateTotalAssemblyCategoryGroupControl() + { + totalAssemblyCategoryGroupControl.ClearAssemblyResult(); + totalAssemblyCategoryGroupControl.ClearMessages(); + + try + { + totalAssemblyCategoryGroupControl.SetAssemblyResult( + AssessmentSectionAssemblyFactory.AssembleAssessmentSection(AssessmentSection, true)); + } + catch (AssemblyException e) + { + totalAssemblyCategoryGroupControl.SetError(e.Message); + } + } + + private void HandleCellStyling(object sender, DataGridViewCellFormattingEventArgs e) + { + dataGridViewControl.FormatCellWithColumnStateDefinition(e.RowIndex, e.ColumnIndex); + } + + #region Failure mechanism assembly result rows + + #region Group 1 + + private FailureMechanismAssemblyResultRow CreateClosingStructuresFailureMechanismAssemblyResultRow() + { + ClosingStructuresFailureMechanism closingStructures = AssessmentSection.ClosingStructures; + return new FailureMechanismAssemblyResultRow(closingStructures, + () => ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(closingStructures, + AssessmentSection, + true)); + } + + private FailureMechanismAssemblyResultRow CreateHeightStructuresFailureMechanismAssemblyResultRow() + { + HeightStructuresFailureMechanism heightStructures = AssessmentSection.HeightStructures; + return new FailureMechanismAssemblyResultRow(heightStructures, + () => HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(heightStructures, + AssessmentSection, + true)); + } + + private FailureMechanismAssemblyResultRow CreateStabilityPointsStructuresFailureMechanismAssemblyResultRow() + { + StabilityPointStructuresFailureMechanism stabilityPointStructures = AssessmentSection.StabilityPointStructures; + return new FailureMechanismAssemblyResultRow(stabilityPointStructures, + () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(stabilityPointStructures, + AssessmentSection, + true)); + } + + private FailureMechanismAssemblyResultRow CreateGrassCoverErosionInwardsFailureMechanismAssemblyResultRow() + { + GrassCoverErosionInwardsFailureMechanism grassCoverErosionInwards = AssessmentSection.GrassCoverErosionInwards; + return new FailureMechanismAssemblyResultRow(grassCoverErosionInwards, + () => GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverErosionInwards, + AssessmentSection, + true)); + } + + #endregion + + #region Group 2 + + private FailureMechanismAssemblyResultRowBase CreatePipingFailureMechanismAssemblyResultRow() + { + PipingFailureMechanism piping = AssessmentSection.Piping; + return new FailureMechanismAssemblyResultRow(piping, + () => PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism(piping, + AssessmentSection, + true)); + } + + private FailureMechanismAssemblyResultRowBase CreateMacroStabilityInwardsFailureMechanismAssemblyResultRow() + { + MacroStabilityInwardsFailureMechanism macroStabilityInwards = AssessmentSection.MacroStabilityInwards; + return new FailureMechanismAssemblyResultRow(macroStabilityInwards, + () => MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(macroStabilityInwards, + AssessmentSection, + true)); + } + + #endregion + + #region Group 3 + + private FailureMechanismAssemblyCategoryGroupResultRow CreateStabilityStoneCoverFailureMechanismAssemblyResultRow() + { + StabilityStoneCoverFailureMechanism stabilityStoneCover = AssessmentSection.StabilityStoneCover; + return new FailureMechanismAssemblyCategoryGroupResultRow(stabilityStoneCover, + () => StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(stabilityStoneCover, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateWaveImpactFailureMechanismAssemblyResultRow() + { + WaveImpactAsphaltCoverFailureMechanism waveImpactAsphaltCover = AssessmentSection.WaveImpactAsphaltCover; + return new FailureMechanismAssemblyCategoryGroupResultRow(waveImpactAsphaltCover, + () => WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waveImpactAsphaltCover, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverErosionOutwardsFailureMechanismAssemblyResultRow() + { + GrassCoverErosionOutwardsFailureMechanism grassCoverErosionOutwards = AssessmentSection.GrassCoverErosionOutwards; + return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverErosionOutwards, + () => GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverErosionOutwards, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateDuneErosionFailureMechanismAssemblyResultRow() + { + DuneErosionFailureMechanism duneErosion = AssessmentSection.DuneErosion; + return new FailureMechanismAssemblyCategoryGroupResultRow(duneErosion, + () => DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(duneErosion, true)); + } + + #endregion + + #region Group 4 + + private FailureMechanismAssemblyResultRowBase CreateMacroStabilityOutwardsFailureMechanismAssemblyResultRow() + { + MacroStabilityOutwardsFailureMechanism macroStabilityOutwards = AssessmentSection.MacroStabilityOutwards; + return new FailureMechanismAssemblyCategoryGroupResultRow(macroStabilityOutwards, + () => MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(macroStabilityOutwards, + AssessmentSection, + true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateMicrostabilityFailureMechanismAssemblyResultRow() + { + MicrostabilityFailureMechanism microstability = AssessmentSection.Microstability; + return new FailureMechanismAssemblyCategoryGroupResultRow(microstability, + () => MicrostabilityFailureMechanismAssemblyFactory.AssembleFailureMechanism(microstability, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateWaterPressureAsphaltCoverFailureMechanismAssemblyResultRow() + { + WaterPressureAsphaltCoverFailureMechanism waterPressureAsphaltCover = AssessmentSection.WaterPressureAsphaltCover; + return new FailureMechanismAssemblyCategoryGroupResultRow(waterPressureAsphaltCover, + () => WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(waterPressureAsphaltCover, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverSlipOffOutwardsFailureMechanismAssemblyResultRow() + { + GrassCoverSlipOffOutwardsFailureMechanism grassCoverSlipOffOutwards = AssessmentSection.GrassCoverSlipOffOutwards; + return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverSlipOffOutwards, + () => GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffOutwards, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateGrassCoverSlipOffInwardsFailureMechanismAssemblyResultRow() + { + GrassCoverSlipOffInwardsFailureMechanism grassCoverSlipOffInwards = AssessmentSection.GrassCoverSlipOffInwards; + return new FailureMechanismAssemblyCategoryGroupResultRow(grassCoverSlipOffInwards, + () => GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(grassCoverSlipOffInwards, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreatePipingStructureFailureMechanismAssemblyResultRow() + { + PipingStructureFailureMechanism pipingStructure = AssessmentSection.PipingStructure; + return new FailureMechanismAssemblyCategoryGroupResultRow(pipingStructure, + () => PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism(pipingStructure, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateStrengthStabilityLengthWiseConstructionFailureMechanismAssemblyResultRow() + { + StrengthStabilityLengthwiseConstructionFailureMechanism strengthStabilityLengthwiseConstruction = AssessmentSection.StrengthStabilityLengthwiseConstruction; + return new FailureMechanismAssemblyCategoryGroupResultRow(strengthStabilityLengthwiseConstruction, + () => StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleFailureMechanism(strengthStabilityLengthwiseConstruction, true)); + } + + private FailureMechanismAssemblyCategoryGroupResultRow CreateTechnicalInnovationFailureMechanismAssemblyResultRow() + { + TechnicalInnovationFailureMechanism technicalInnovation = AssessmentSection.TechnicalInnovation; + return new FailureMechanismAssemblyCategoryGroupResultRow(technicalInnovation, + () => TechnicalInnovationFailureMechanismAssemblyFactory.AssembleFailureMechanism(technicalInnovation, true)); + } + + #endregion + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssemblyResultTotalView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,67 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssessmentSectionAssemblyCategoriesView + { + + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AssessmentSectionAssemblyCategoriesView)); + this.assemblyCategoriesTable = new AssemblyCategoriesTable(); + this.SuspendLayout(); + // + // assessmentSectionAssemblyCategoriesTable + // + resources.ApplyResources(this.assemblyCategoriesTable, "assemblyCategoriesTable"); + this.assemblyCategoriesTable.MultiSelect = true; + this.assemblyCategoriesTable.Name = "assemblyCategoriesTable"; + this.assemblyCategoriesTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // FailureMechanismSectionsView + // + this.Controls.Add(this.assemblyCategoriesTable); + this.Name = "AssessmentSectionAssemblyCategoriesView"; + resources.ApplyResources(this, "$this"); + this.ResumeLayout(false); + + } + + + #endregion + + private AssemblyCategoriesTable assemblyCategoriesTable; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,99 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Controls.Views; +using Ringtoets.Common.Data.AssemblyTool; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// View for a to show + /// a collection of . + /// + public partial class AssessmentSectionAssemblyCategoriesView : UserControl, IView + { + private readonly Observer failureMechanismContributionObserver; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism contribution belonging to the view. + /// Thrown when + /// is null. + public AssessmentSectionAssemblyCategoriesView(FailureMechanismContribution failureMechanismContribution) + { + if (failureMechanismContribution == null) + { + throw new ArgumentNullException(nameof(failureMechanismContribution)); + } + + InitializeComponent(); + + failureMechanismContributionObserver = new Observer(UpdateTableData) + { + Observable = failureMechanismContribution + }; + + FailureMechanismContribution = failureMechanismContribution; + + UpdateTableData(); + } + + /// + /// Gets the the view belongs to. + /// + public FailureMechanismContribution FailureMechanismContribution { get; } + + public object Data { get; set; } + + protected override void Dispose(bool disposing) + { + failureMechanismContributionObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void UpdateTableData() + { + assemblyCategoriesTable.SetData( + AssemblyToolCategoriesFactory.CreateAssessmentSectionAssemblyCategories( + FailureMechanismContribution.SignalingNorm, + FailureMechanismContribution.LowerLimitNorm) + .Select(category => new Tuple( + category, + AssemblyCategoryGroupColorHelper.GetAssessmentSectionAssemblyCategoryGroupColor(category.Group), + category.Group)).ToArray()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionAssemblyCategoriesView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Fill + + + + 0, 0 + + + 750, 420 + + + + 0 + + + assemblyCategoriesTable + + + Ringtoets.Integration.Forms.Views.AssessmentSectionAssemblyCategoriesTable, Ringtoets.Common.Forms, Version=18.1.1.1, Culture=neutral, PublicKeyToken=null + + + $this + + + 0 + + + True + + + 750, 420 + + + AssessmentSectionAssemblyCategoriesView + + + System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,64 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.Integration.Forms.Views +{ + partial class AssessmentSectionView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ringtoetsMapControl = new Ringtoets.Common.Forms.Views.RingtoetsMapControl(); + this.SuspendLayout(); + // + // ringtoetsMapControl + // + this.ringtoetsMapControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.ringtoetsMapControl.Location = new System.Drawing.Point(0, 0); + this.ringtoetsMapControl.Name = "ringtoetsMapControl"; + this.ringtoetsMapControl.Size = new System.Drawing.Size(150, 150); + this.ringtoetsMapControl.TabIndex = 0; + // + // AssessmentSectionView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.ringtoetsMapControl); + this.Name = "AssessmentSectionView"; + this.ResumeLayout(false); + + } + + #endregion + + private Ringtoets.Common.Forms.Views.RingtoetsMapControl ringtoetsMapControl; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,190 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Components.Gis.Data; +using Core.Components.Gis.Forms; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Forms.Factories; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.Integration.Forms.Properties; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class is a view showing map data for an assessment section. + /// + public partial class AssessmentSectionView : UserControl, IMapView + { + private readonly IAssessmentSection assessmentSection; + + private readonly MapLineData referenceLineMapData; + private readonly MapPointData hydraulicBoundaryLocationsMapData; + + private Observer assessmentSectionObserver; + private Observer referenceLineObserver; + private Observer hydraulicBoundaryLocationsObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; + + /// + /// Creates a new instance of . + /// + /// The assessment section to show the data for. + /// Thrown when + /// is null. + public AssessmentSectionView(IAssessmentSection assessmentSection) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + InitializeComponent(); + + this.assessmentSection = assessmentSection; + + CreateObservers(); + + var mapDataCollection = new MapDataCollection(Resources.AssessmentSectionMap_DisplayName); + referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); + hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); + + mapDataCollection.Add(referenceLineMapData); + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); + + SetAllMapDataFeatures(); + ringtoetsMapControl.SetAllData(mapDataCollection, assessmentSection.BackgroundData); + } + + public object Data { get; set; } + + public IMapControl Map + { + get + { + return ringtoetsMapControl.MapControl; + } + } + + protected override void Dispose(bool disposing) + { + assessmentSectionObserver.Dispose(); + referenceLineObserver.Dispose(); + waterLevelCalculationsForFactorizedSignalingNormObserver.Dispose(); + waterLevelCalculationsForSignalingNormObserver.Dispose(); + waterLevelCalculationsForLowerLimitNormObserver.Dispose(); + waterLevelCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedSignalingNormObserver.Dispose(); + waveHeightCalculationsForSignalingNormObserver.Dispose(); + waveHeightCalculationsForLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + hydraulicBoundaryLocationsObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void CreateObservers() + { + assessmentSectionObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = assessmentSection + }; + + referenceLineObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = assessmentSection.ReferenceLine + }; + + waterLevelCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaterLevelCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaterLevelCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaveHeightCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaveHeightCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = assessmentSection.HydraulicBoundaryDatabase.Locations + }; + } + + private void SetAllMapDataFeatures() + { + SetReferenceLineMapData(); + SetHydraulicBoundaryLocationsMapData(); + } + + #region ReferenceLine MapData + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); + referenceLineMapData.NotifyObservers(); + } + + private void SetReferenceLineMapData() + { + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures(assessmentSection.ReferenceLine, assessmentSection.Id, assessmentSection.Name); + } + + #endregion + + #region HydraulicBoundaryLocations MapData + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } + + private void SetHydraulicBoundaryLocationsMapData() + { + hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeatures(assessmentSection); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/AssessmentSectionView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/CombinedFailureMechanismSectionAssemblyResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/CombinedFailureMechanismSectionAssemblyResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/CombinedFailureMechanismSectionAssemblyResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,380 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Drawing; +using Core.Common.Base.Data; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Forms.Helpers; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.Assembly; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row displaying the properties of the . + /// + public class CombinedFailureMechanismSectionAssemblyResultRow : IHasColumnStateDefinitions + { + private const int totalResultIndex = 3; + private const int pipingIndex = 4; + private const int grassCoverErosionInwardsIndex = 5; + private const int macroStabilityInwardsIndex = 6; + private const int macroStabilityOutwardsIndex = 7; + private const int microstabililityIndex = 8; + private const int stabilityStoneCoverIndex = 9; + private const int waveImpactAsphaltCoverIndex = 10; + private const int waterPressureAsphaltCoverIndex = 11; + private const int grassCoverErosionOutwardsIndex = 12; + private const int grassCoverSlipOffOutwardsIndex = 13; + private const int grassCoverSlipOffInwardsIndex = 14; + private const int heightStructuresIndex = 15; + private const int closingStructuresIndex = 16; + private const int pipingStructureIndex = 17; + private const int stabilityPointStructuresIndex = 18; + private const int strengthStabilityLengthwiseConstructionIndex = 19; + private const int duneErosionIndex = 20; + private const int technicalInnovationIndex = 21; + + private readonly CombinedFailureMechanismSectionAssemblyResult combinedFailureMechanismSectionAssemblyResult; + + /// + /// Creates a new instance of . + /// + /// The + /// to wrap so that it can be displayed as a row. + /// Thrown when + /// is null. + public CombinedFailureMechanismSectionAssemblyResultRow( + CombinedFailureMechanismSectionAssemblyResult combinedFailureMechanismSectionAssemblyResult) + { + if (combinedFailureMechanismSectionAssemblyResult == null) + { + throw new ArgumentNullException(nameof(combinedFailureMechanismSectionAssemblyResult)); + } + + this.combinedFailureMechanismSectionAssemblyResult = combinedFailureMechanismSectionAssemblyResult; + + ColumnStateDefinitions = new Dictionary(); + CreateColumnStateDefinitions(); + SetColumnStateDefinitionColors(); + } + + /// + /// Gets the number of the section. + /// + public int SectionNumber + { + get + { + return combinedFailureMechanismSectionAssemblyResult.SectionNumber; + } + } + + /// + /// Gets the start of the section from the beginning of the reference line. + /// [m] + /// + public RoundedDouble SectionStart + { + get + { + return new RoundedDouble(2, combinedFailureMechanismSectionAssemblyResult.SectionStart); + } + } + + /// + /// Gets the end of the section from the beginning of the reference line. + /// [m] + /// + public RoundedDouble SectionEnd + { + get + { + return new RoundedDouble(2, combinedFailureMechanismSectionAssemblyResult.SectionEnd); + } + } + + /// + /// Gets the total assembly result. + /// + public string TotalResult + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.TotalResult); + } + } + + /// + /// Gets the assembly result for piping. + /// + public string Piping + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.Piping); + } + } + + /// + /// Gets the assembly result for grass cover erosion inwards. + /// + public string GrassCoverErosionInwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionInwards); + } + } + + /// + /// Gets the assembly result for macro stability inwards. + /// + public string MacroStabilityInwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.MacroStabilityInwards); + } + } + + /// + /// Gets the assembly result for macro stability outwards. + /// + public string MacroStabilityOutwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.MacroStabilityOutwards); + } + } + + /// + /// Gets the assembly result for microstability. + /// + public string Microstability + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.Microstability); + } + } + + /// + /// Gets the assembly result for stability stone cover. + /// + public string StabilityStoneCover + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.StabilityStoneCover); + } + } + + /// + /// Gets the assembly result for wave impact asphalt cover. + /// + public string WaveImpactAsphaltCover + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.WaveImpactAsphaltCover); + } + } + + /// + /// Gets the assembly result for water pressure asphalt cover. + /// + public string WaterPressureAsphaltCover + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.WaterPressureAsphaltCover); + } + } + + /// + /// Gets the assembly result for grass cover erosion outwards. + /// + public string GrassCoverErosionOutwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionOutwards); + } + } + + /// + /// Gets the assembly result for grass cover slip off outwards. + /// + public string GrassCoverSlipOffOutwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffOutwards); + } + } + + /// + /// Gets the assembly result for grass cover slip off inwards. + /// + public string GrassCoverSlipOffInwards + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffInwards); + } + } + + /// + /// Gets the assembly result for height structures. + /// + public string HeightStructures + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.HeightStructures); + } + } + + /// + /// Gets the assembly result for closing structures. + /// + public string ClosingStructures + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.ClosingStructures); + } + } + + /// + /// Gets the assembly result for piping structure. + /// + public string PipingStructure + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.PipingStructure); + } + } + + /// + /// Gets the assembly result for stability point structures. + /// + public string StabilityPointStructures + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.StabilityPointStructures); + } + } + + /// + /// Gets the assembly result for strength stability lengthwise construction. + /// + public string StrengthStabilityLengthwiseConstruction + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.StrengthStabilityLengthwiseConstruction); + } + } + + /// + /// Gets the assembly result for dune erosion. + /// + public string DuneErosion + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.DuneErosion); + } + } + + /// + /// Gets the assembly result for technical innovation. + /// + public string TechnicalInnovation + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedFailureMechanismSectionAssemblyResult.TechnicalInnovation); + } + } + + public IDictionary ColumnStateDefinitions { get; } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(totalResultIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(pipingIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(grassCoverErosionInwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(macroStabilityInwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(macroStabilityOutwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(microstabililityIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(stabilityStoneCoverIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(waveImpactAsphaltCoverIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(waterPressureAsphaltCoverIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(grassCoverErosionOutwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(grassCoverSlipOffOutwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(grassCoverSlipOffInwardsIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(heightStructuresIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(closingStructuresIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(pipingStructureIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(stabilityPointStructuresIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(strengthStabilityLengthwiseConstructionIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(duneErosionIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(technicalInnovationIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + } + + private void SetColumnStateDefinitionColors() + { + ColumnStateDefinitions[totalResultIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.TotalResult); + ColumnStateDefinitions[pipingIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.Piping); + ColumnStateDefinitions[grassCoverErosionInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionInwards); + ColumnStateDefinitions[macroStabilityInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.MacroStabilityInwards); + ColumnStateDefinitions[macroStabilityOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.MacroStabilityOutwards); + ColumnStateDefinitions[microstabililityIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.Microstability); + ColumnStateDefinitions[stabilityStoneCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StabilityStoneCover); + ColumnStateDefinitions[waveImpactAsphaltCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.WaveImpactAsphaltCover); + ColumnStateDefinitions[waterPressureAsphaltCoverIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.WaterPressureAsphaltCover); + ColumnStateDefinitions[grassCoverErosionOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverErosionOutwards); + ColumnStateDefinitions[grassCoverSlipOffOutwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffOutwards); + ColumnStateDefinitions[grassCoverSlipOffInwardsIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.GrassCoverSlipOffInwards); + ColumnStateDefinitions[heightStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.HeightStructures); + ColumnStateDefinitions[closingStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.ClosingStructures); + ColumnStateDefinitions[pipingStructureIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.PipingStructure); + ColumnStateDefinitions[stabilityPointStructuresIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StabilityPointStructures); + ColumnStateDefinitions[strengthStabilityLengthwiseConstructionIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.StrengthStabilityLengthwiseConstruction); + ColumnStateDefinitions[duneErosionIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.DuneErosion); + ColumnStateDefinitions[technicalInnovationIndex].Style = CreateCellStyle(combinedFailureMechanismSectionAssemblyResult.TechnicalInnovation); + } + + private static CellStyle CreateCellStyle(FailureMechanismSectionAssemblyCategoryGroup assemblyCategoryGroup) + { + return new CellStyle(Color.FromKnownColor(KnownColor.ControlText), + AssemblyCategoryGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(assemblyCategoryGroup)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,119 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + partial class FailureMechanismAssemblyCategoriesView + { + + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.failureMechanismSectionAssemblyCategoriesTable = new AssemblyCategoriesTable(); + this.failureMechanismAssemblyCategoriesTable = new AssemblyCategoriesTable(); + this.failureMechanismAssemblyGroupBox = new System.Windows.Forms.GroupBox(); + this.failureMechanismSectionAssemblyGroupBox = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.failureMechanismAssemblyGroupBox.SuspendLayout(); + this.failureMechanismSectionAssemblyGroupBox.SuspendLayout(); + this.tableLayoutPanel.SuspendLayout(); + this.SuspendLayout(); + // + // failureMechanismSectionAssemblyCategoriesTable + // + this.failureMechanismSectionAssemblyCategoriesTable.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismSectionAssemblyCategoriesTable.MultiSelect = true; + this.failureMechanismSectionAssemblyCategoriesTable.Name = "failureMechanismSectionAssemblyCategoriesTable"; + this.failureMechanismSectionAssemblyCategoriesTable.Padding = new System.Windows.Forms.Padding(5); + this.failureMechanismSectionAssemblyCategoriesTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // failureMechanismAssemblyCategoriesTable + // + this.failureMechanismAssemblyCategoriesTable.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismAssemblyCategoriesTable.MultiSelect = true; + this.failureMechanismAssemblyCategoriesTable.Name = "failureMechanismAssemblyCategoriesTable"; + this.failureMechanismAssemblyCategoriesTable.Padding = new System.Windows.Forms.Padding(5); + this.failureMechanismAssemblyCategoriesTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // failureMechanismAssemblyGroupBox + // + this.failureMechanismAssemblyGroupBox.Controls.Add(this.failureMechanismAssemblyCategoriesTable); + this.failureMechanismAssemblyGroupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismAssemblyGroupBox.Name = "failureMechanismAssemblyGroupBox"; + this.failureMechanismAssemblyGroupBox.Text = global::Riskeer.Integration.Forms.Properties.Resources.FailureMechanismAssemblyCategories_DisplayName; + // + // failureMechanismSectionAssemblyGroupBox + // + this.failureMechanismSectionAssemblyGroupBox.Controls.Add(this.failureMechanismSectionAssemblyCategoriesTable); + this.failureMechanismSectionAssemblyGroupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismSectionAssemblyGroupBox.Name = "failureMechanismSectionAssemblyGroupBox"; + this.failureMechanismSectionAssemblyGroupBox.Text = global::Riskeer.Integration.Forms.Properties.Resources.FailureMechanismSectionAssemblyCategories_DisplayName; + // + // tableLayoutPanel + // + this.tableLayoutPanel.ColumnCount = 2; + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel.Controls.Add(this.failureMechanismSectionAssemblyGroupBox, 1, 0); + this.tableLayoutPanel.Controls.Add(this.failureMechanismAssemblyGroupBox, 0, 0); + this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 1; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.Size = new System.Drawing.Size(750, 420); + this.tableLayoutPanel.TabIndex = 2; + // + // FailureMechanismAssemblyCategoriesView + // + this.Controls.Add(this.tableLayoutPanel); + this.Name = "FailureMechanismAssemblyCategoriesView"; + this.Size = new System.Drawing.Size(750, 420); + this.AutoScrollMinSize = new System.Drawing.Size(400, 100); + this.failureMechanismAssemblyGroupBox.ResumeLayout(false); + this.failureMechanismSectionAssemblyGroupBox.ResumeLayout(false); + this.tableLayoutPanel.ResumeLayout(false); + this.ResumeLayout(false); + + } + + + #endregion + + private AssemblyCategoriesTable failureMechanismSectionAssemblyCategoriesTable; + private AssemblyCategoriesTable failureMechanismAssemblyCategoriesTable; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; + private System.Windows.Forms.GroupBox failureMechanismAssemblyGroupBox; + private System.Windows.Forms.GroupBox failureMechanismSectionAssemblyGroupBox; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,125 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// View for an to show + /// its assembly categories. + /// + public partial class FailureMechanismAssemblyCategoriesView : CloseForFailureMechanismView + { + private readonly Func> getFailureMechanismAssemblyCategoriesFunc; + private readonly Func> getFailureMechanismSectionAssemblyCategoriesFunc; + private readonly Observer failureMechanismObserver; + private readonly Observer assessmentSectionObserver; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism belonging to the view. + /// The assessment section belonging to the view. + /// The function to get a collection + /// of . + /// The function to get a collection + /// of . + /// Thrown when any parameter is null. + public FailureMechanismAssemblyCategoriesView(IFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + Func> getFailureMechanismAssemblyCategoriesFunc, + Func> getFailureMechanismSectionAssemblyCategoriesFunc) + : base(failureMechanism) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (getFailureMechanismAssemblyCategoriesFunc == null) + { + throw new ArgumentNullException(nameof(getFailureMechanismAssemblyCategoriesFunc)); + } + + if (getFailureMechanismSectionAssemblyCategoriesFunc == null) + { + throw new ArgumentNullException(nameof(getFailureMechanismSectionAssemblyCategoriesFunc)); + } + + this.getFailureMechanismAssemblyCategoriesFunc = getFailureMechanismAssemblyCategoriesFunc; + this.getFailureMechanismSectionAssemblyCategoriesFunc = getFailureMechanismSectionAssemblyCategoriesFunc; + + InitializeComponent(); + + failureMechanismObserver = new Observer(UpdateTableData) + { + Observable = failureMechanism + }; + + assessmentSectionObserver = new Observer(UpdateTableData) + { + Observable = assessmentSection + }; + + UpdateTableData(); + } + + protected override void Dispose(bool disposing) + { + failureMechanismObserver.Dispose(); + assessmentSectionObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void UpdateTableData() + { + failureMechanismAssemblyCategoriesTable.SetData( + getFailureMechanismAssemblyCategoriesFunc().Select( + category => new Tuple( + category, + AssemblyCategoryGroupColorHelper.GetFailureMechanismAssemblyCategoryGroupColor(category.Group), + category.Group)).ToArray()); + + failureMechanismSectionAssemblyCategoriesTable.SetData( + getFailureMechanismSectionAssemblyCategoriesFunc().Select( + category => new Tuple( + category, + AssemblyCategoryGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(category.Group), + category.Group)).ToArray()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoriesView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoryGroupResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoryGroupResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyCategoryGroupResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,72 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Data.FailureMechanism; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row displaying the properties of a + /// and its . + /// + internal class FailureMechanismAssemblyCategoryGroupResultRow : FailureMechanismAssemblyResultRowBase + { + private readonly Func getFailureMechanismAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap so that it can be displayed as a row. + /// Gets the + /// of the failure mechanism. + /// Thrown when any parameter is null. + public FailureMechanismAssemblyCategoryGroupResultRow(IFailureMechanism failureMechanism, + Func getFailureMechanismAssemblyCategoryGroup) + : base(failureMechanism) + { + if (getFailureMechanismAssemblyCategoryGroup == null) + { + throw new ArgumentNullException(nameof(getFailureMechanismAssemblyCategoryGroup)); + } + + this.getFailureMechanismAssemblyCategoryGroup = getFailureMechanismAssemblyCategoryGroup; + Probability = double.NaN; + + Update(); + } + + protected override void TryGetDerivedData() + { + try + { + CategoryGroup = getFailureMechanismAssemblyCategoryGroup(); + } + catch (AssemblyException e) + { + CategoryGroup = FailureMechanismAssemblyCategoryGroup.None; + GetCategoryGroupColumnStateDefinition().ErrorText = e.Message; + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,74 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Data.FailureMechanism; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row displaying the properties of a + /// and its . + /// + internal class FailureMechanismAssemblyResultRow : FailureMechanismAssemblyResultRowBase + { + private readonly Func getFailureMechanismAssembly; + + /// + /// Creates a new instance of . + /// + /// The to wrap so that it can be displayed as a row. + /// Gets the + /// of the failure mechanism. + /// Thrown when any parameter is null. + public FailureMechanismAssemblyResultRow(IFailureMechanism failureMechanism, + Func getFailureMechanismAssembly) + : base(failureMechanism) + { + if (getFailureMechanismAssembly == null) + { + throw new ArgumentNullException(nameof(getFailureMechanismAssembly)); + } + + this.getFailureMechanismAssembly = getFailureMechanismAssembly; + + Update(); + } + + protected override void TryGetDerivedData() + { + try + { + FailureMechanismAssembly failureMechanismAssembly = getFailureMechanismAssembly(); + CategoryGroup = failureMechanismAssembly.Group; + Probability = failureMechanismAssembly.Probability; + } + catch (AssemblyException e) + { + CategoryGroup = FailureMechanismAssemblyCategoryGroup.None; + Probability = double.NaN; + GetCategoryGroupColumnStateDefinition().ErrorText = e.Message; + } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRowBase.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRowBase.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismAssemblyResultRowBase.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,147 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using Core.Common.Controls.DataGrid; +using Core.Common.Util; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.TypeConverters; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row displaying the properties of a + /// and its assembly result. + /// + internal abstract class FailureMechanismAssemblyResultRowBase : IHasColumnStateDefinitions + { + private const int categoryIndex = 3; + private readonly IFailureMechanism failureMechanism; + + /// + /// Creates a new instance of . + /// + /// The to wrap so that it can be displayed as a row. + /// Thrown when any parameters is null. + protected FailureMechanismAssemblyResultRowBase(IFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + this.failureMechanism = failureMechanism; + + ColumnStateDefinitions = new Dictionary(); + CreateColumnStateDefinitions(); + } + + /// + /// Gets the name of the failure mechanism. + /// + public string Name + { + get + { + return failureMechanism.Name; + } + } + + /// + /// Gets the code of the failure mechanism. + /// + public string Code + { + get + { + return failureMechanism.Code; + } + } + + /// + /// Gets the group of the failure mechanism. + /// + public int Group + { + get + { + return failureMechanism.Group; + } + } + + /// + /// Gets the group of the failure mechanism assembly. + /// + [TypeConverter(typeof(EnumTypeConverter))] + public FailureMechanismAssemblyCategoryGroup CategoryGroup { get; protected set; } + + /// + /// Gets the probability of the failure mechanism assembly. + /// + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double Probability { get; protected set; } + + public IDictionary ColumnStateDefinitions { get; } + + /// + /// Updates all data and states in the row. + /// + public void Update() + { + ResetErrorTexts(); + TryGetDerivedData(); + + SetCategoryGroupColumnStateDefinition(); + } + + /// + /// Gets the derived data for the failure mechanism. + /// + protected abstract void TryGetDerivedData(); + + protected DataGridViewColumnStateDefinition GetCategoryGroupColumnStateDefinition() + { + return ColumnStateDefinitions[categoryIndex]; + } + + private void SetCategoryGroupColumnStateDefinition() + { + GetCategoryGroupColumnStateDefinition().Style = + new CellStyle(Color.FromKnownColor(KnownColor.ControlText), + AssemblyCategoryGroupColorHelper.GetFailureMechanismAssemblyCategoryGroupColor(CategoryGroup)); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(categoryIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[categoryIndex].ErrorText = string.Empty; + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionItemRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionItemRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionItemRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,251 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Core.Common.Controls.DataGrid; +using Core.Common.Controls.Views; +using Core.Common.Gui.Commands; +using Ringtoets.Common.Data.Contribution; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Forms.Helpers; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class represents a row of . + /// + internal class FailureMechanismContributionItemRow : IHasColumnStateDefinitions + { + private readonly IViewCommands viewCommands; + private readonly IFailureMechanism failureMechanism; + private readonly FailureMechanismContribution failureMechanismContribution; + + private readonly int isRelevantColumnIndex; + private readonly int nameColumnIndex; + private readonly int codeColumnIndex; + private readonly int contributionColumnIndex; + private readonly int probabilitySpaceColumnIndex; + + /// + /// Fired when the row has started updating. + /// + public EventHandler RowUpdated; + + /// + /// Fired when the row has finished updating. + /// + public EventHandler RowUpdateDone; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism this row contains. + /// The failure mechanism contribution to get the norm from. + /// Class responsible for exposing high level + /// related commands. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + internal FailureMechanismContributionItemRow(IFailureMechanism failureMechanism, FailureMechanismContribution failureMechanismContribution, + IViewCommands viewCommands, ConstructionProperties constructionProperties) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (failureMechanismContribution == null) + { + throw new ArgumentNullException(nameof(failureMechanismContribution)); + } + + if (viewCommands == null) + { + throw new ArgumentNullException(nameof(viewCommands)); + } + + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + this.failureMechanism = failureMechanism; + this.failureMechanismContribution = failureMechanismContribution; + this.viewCommands = viewCommands; + + isRelevantColumnIndex = constructionProperties.IsRelevantColumnIndex; + nameColumnIndex = constructionProperties.NameColumnIndex; + codeColumnIndex = constructionProperties.CodeColumnIndex; + contributionColumnIndex = constructionProperties.ContributionColumnIndex; + probabilitySpaceColumnIndex = constructionProperties.ProbabilitySpaceColumnIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets the name of the failure mechanism. + /// + public string Name + { + get + { + return failureMechanism.Name; + } + } + + /// + /// Gets the code of the failure mechanism. + /// + public string Code + { + get + { + return failureMechanism.Code; + } + } + + /// + /// Gets the contribution of the failure mechanism. + /// + public double Contribution + { + get + { + return failureMechanism.Contribution; + } + } + + /// + /// Gets the probability space of the failure mechanism. + /// + public double ProbabilitySpace + { + get + { + return 100 / (failureMechanismContribution.Norm * failureMechanism.Contribution); + } + } + + /// + /// Gets or sets whether the failure mechanism is relevant. + /// + public bool IsRelevant + { + get + { + return failureMechanism.IsRelevant; + } + set + { + if (!value) + { + viewCommands.RemoveAllViewsForItem(failureMechanism); + } + + failureMechanism.IsRelevant = value; + + Update(); + + RowUpdated?.Invoke(this, EventArgs.Empty); + failureMechanism.NotifyObservers(); + RowUpdateDone?.Invoke(this, EventArgs.Empty); + } + } + + public IDictionary ColumnStateDefinitions { get; private set; } + + public void Update() + { + if (!IsRelevant) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[nameColumnIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[codeColumnIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[contributionColumnIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[probabilitySpaceColumnIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.EnableColumn(ColumnStateDefinitions[nameColumnIndex], true); + FailureMechanismSectionResultRowHelper.EnableColumn(ColumnStateDefinitions[codeColumnIndex], true); + FailureMechanismSectionResultRowHelper.EnableColumn(ColumnStateDefinitions[contributionColumnIndex], true); + FailureMechanismSectionResultRowHelper.EnableColumn(ColumnStateDefinitions[probabilitySpaceColumnIndex], true); + } + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions = new Dictionary + { + { + isRelevantColumnIndex, failureMechanism is OtherFailureMechanism + ? DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition() + : new DataGridViewColumnStateDefinition() + }, + { + nameColumnIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition() + }, + { + codeColumnIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition() + }, + { + contributionColumnIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition() + }, + { + probabilitySpaceColumnIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition() + } + }; + } + + /// + /// Class holding the various construction parameters for . + /// + internal class ConstructionProperties + { + /// + /// Gets or sets the relevant column index. + /// + public int IsRelevantColumnIndex { internal get; set; } + + /// + /// Gets or sets the name column index. + /// + public int NameColumnIndex { internal get; set; } + + /// + /// Gets or sets the code column index. + /// + public int CodeColumnIndex { internal get; set; } + + /// + /// Gets or sets the contribution column index. + /// + public int ContributionColumnIndex { internal get; set; } + + /// + /// Gets or sets the probability space column index. + /// + public int ProbabilitySpaceColumnIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,95 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Windows.Forms; + +namespace Riskeer.Integration.Forms.Views +{ + partial class FailureMechanismContributionView + { + + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FailureMechanismContributionView)); + this.groupBoxAssessmentSectionDetails = new System.Windows.Forms.GroupBox(); + this.returnPeriodLabel = new System.Windows.Forms.Label(); + this.assessmentSectionCompositionLabel = new System.Windows.Forms.Label(); + this.probabilityDistributionGrid = new Core.Common.Controls.DataGrid.DataGridViewControl(); + this.groupBoxAssessmentSectionDetails.SuspendLayout(); + this.SuspendLayout(); + // + // groupBoxAssessmentSectionDetails + // + this.groupBoxAssessmentSectionDetails.Controls.Add(this.returnPeriodLabel); + this.groupBoxAssessmentSectionDetails.Controls.Add(this.assessmentSectionCompositionLabel); + resources.ApplyResources(this.groupBoxAssessmentSectionDetails, "groupBoxAssessmentSectionDetails"); + this.groupBoxAssessmentSectionDetails.Name = "groupBoxAssessmentSectionDetails"; + this.groupBoxAssessmentSectionDetails.TabStop = false; + // + // returnPeriodLabel + // + resources.ApplyResources(this.returnPeriodLabel, "returnPeriodLabel"); + this.returnPeriodLabel.Name = "returnPeriodLabel"; + // + // assessmentSectionCompositionLabel + // + resources.ApplyResources(this.assessmentSectionCompositionLabel, "assessmentSectionCompositionLabel"); + this.assessmentSectionCompositionLabel.Name = "assessmentSectionCompositionLabel"; + // + // probabilityDistributionGrid + // + resources.ApplyResources(this.probabilityDistributionGrid, "probabilityDistributionGrid"); + this.probabilityDistributionGrid.MultiSelect = true; + this.probabilityDistributionGrid.Name = "probabilityDistributionGrid"; + this.probabilityDistributionGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // FailureMechanismContributionView + // + this.Controls.Add(this.probabilityDistributionGrid); + this.Controls.Add(this.groupBoxAssessmentSectionDetails); + this.Name = "FailureMechanismContributionView"; + resources.ApplyResources(this, "$this"); + this.groupBoxAssessmentSectionDetails.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private GroupBox groupBoxAssessmentSectionDetails; + private Label returnPeriodLabel; + private Label assessmentSectionCompositionLabel; + private Core.Common.Controls.DataGrid.DataGridViewControl probabilityDistributionGrid; + + + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,291 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Common.Controls.DataGrid; +using Core.Common.Controls.Views; +using Core.Common.Gui.Commands; +using Core.Common.Util; +using Core.Common.Util.Extensions; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Riskeer.Integration.Forms.Properties; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// View for the . + /// + public partial class FailureMechanismContributionView : UserControl, IView + { + private const int isRelevantColumnIndex = 0; + private const int nameColumnIndex = 1; + private const int codeColumnIndex = 2; + private const int contributionColumnIndex = 3; + private const int probabilitySpaceColumnIndex = 4; + + /// + /// Actually only interested in the following changes: + /// + /// + /// + /// + /// + private readonly List failureMechanismObservers; + + private readonly Observer failureMechanismContributionObserver; + private readonly Observer assessmentSectionObserver; + + private readonly IViewCommands viewCommands; + + private bool rowUpdating; + private FailureMechanismContributionItemRow[] failureMechanismContributionItemRows; + + /// + /// Creates a new instance of . + /// + /// The assessment section to get the data from. + /// Objects exposing high level related commands. + /// Thrown when any parameter is null. + public FailureMechanismContributionView(IAssessmentSection assessmentSection, + IViewCommands viewCommands) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (viewCommands == null) + { + throw new ArgumentNullException(nameof(viewCommands)); + } + + InitializeComponent(); + + this.viewCommands = viewCommands; + + failureMechanismObservers = new List(); + failureMechanismContributionObserver = new Observer(() => + { + probabilityDistributionGrid.RefreshDataGridView(); + SetReturnPeriodText(); + }) + { + Observable = assessmentSection.FailureMechanismContribution + }; + assessmentSectionObserver = new Observer(() => + { + DetachFromFailureMechanisms(); + UpdateView(); + AttachToFailureMechanisms(); + }) + { + Observable = assessmentSection + }; + + AssessmentSection = assessmentSection; + AttachToFailureMechanisms(); + } + + /// + /// Gets the assessment section this view belongs to. + /// + public IAssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + InitializeGridColumns(); + + probabilityDistributionGrid.CellFormatting += HandleCellStyling; + probabilityDistributionGrid.CellFormatting += ProbabilityDistributionGridOnCellFormatting; + + UpdateView(); + } + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) + { + components?.Dispose(); + DetachFromFailureMechanisms(); + failureMechanismContributionObserver.Dispose(); + assessmentSectionObserver.Dispose(); + + RemoveRowEvents(); + } + + base.Dispose(disposing); + } + + private void UpdateView() + { + SetAssessmentSectionComposition(); + SetReturnPeriodText(); + SetGridDataSource(); + } + + private Observer CreateFailureMechanismObserver(IFailureMechanism failureMechanism) + { + return new Observer(() => + { + if (rowUpdating) + { + return; + } + + failureMechanismContributionItemRows.ForEachElementDo(row => row.Update()); + probabilityDistributionGrid.RefreshDataGridView(); + }) + { + Observable = failureMechanism + }; + } + + private void DetachFromFailureMechanisms() + { + failureMechanismObservers.ForEachElementDo(o => o.Dispose()); + failureMechanismObservers.Clear(); + } + + private void AttachToFailureMechanisms() + { + failureMechanismObservers.AddRange(AssessmentSection.GetContributingFailureMechanisms() + .Select(CreateFailureMechanismObserver) + .ToArray()); + } + + private void SetGridDataSource() + { + RemoveRowEvents(); + failureMechanismContributionItemRows = AssessmentSection.GetContributingFailureMechanisms() + .Select(fm => new FailureMechanismContributionItemRow( + fm, AssessmentSection.FailureMechanismContribution, + viewCommands, new FailureMechanismContributionItemRow.ConstructionProperties + { + IsRelevantColumnIndex = isRelevantColumnIndex, + NameColumnIndex = nameColumnIndex, + CodeColumnIndex = codeColumnIndex, + ContributionColumnIndex = contributionColumnIndex, + ProbabilitySpaceColumnIndex = probabilitySpaceColumnIndex + })).ToArray(); + + probabilityDistributionGrid.SetDataSource(failureMechanismContributionItemRows); + + failureMechanismContributionItemRows.ForEachElementDo(row => + { + row.RowUpdated += RowUpdated; + row.RowUpdateDone += RowUpdateDone; + }); + } + + private void RemoveRowEvents() + { + failureMechanismContributionItemRows?.ForEachElementDo(row => + { + row.RowUpdated -= RowUpdated; + row.RowUpdateDone -= RowUpdateDone; + }); + } + + private void RowUpdateDone(object sender, EventArgs eventArgs) + { + rowUpdating = false; + } + + private void RowUpdated(object sender, EventArgs eventArgs) + { + rowUpdating = true; + probabilityDistributionGrid.RefreshDataGridView(); + } + + private void SetReturnPeriodText() + { + returnPeriodLabel.Text = string.Format(Resources.FailureMechanismContributionView_ReturnPeriodLabelText_Norm_is_one_over_ReturnPeriod_0_, + Convert.ToInt32(1.0 / AssessmentSection.FailureMechanismContribution.Norm)); + } + + private void SetAssessmentSectionComposition() + { + string assessmentSectionComposition = new EnumDisplayWrapper(AssessmentSection.Composition).DisplayName; + assessmentSectionCompositionLabel.Text = string.Format(Resources.FailureMechanismContributionView_AssessmentSectionCompositionLabelText_AssessmentSectionComposition_0_, + assessmentSectionComposition); + } + + private void InitializeGridColumns() + { + probabilityDistributionGrid.AddCheckBoxColumn(nameof(FailureMechanismContributionItemRow.IsRelevant), + Resources.FailureMechanism_IsRelevant_DisplayName); + + probabilityDistributionGrid.AddTextBoxColumn(nameof(FailureMechanismContributionItemRow.Name), + Resources.FailureMechanism_Name_DisplayName, + true); + + probabilityDistributionGrid.AddTextBoxColumn(nameof(FailureMechanismContributionItemRow.Code), + RingtoetsCommonFormsResources.FailureMechanism_Code_DisplayName, + true); + + probabilityDistributionGrid.AddTextBoxColumn(nameof(FailureMechanismContributionItemRow.Contribution), + Resources.FailureMechanismContributionView_GridColumn_Contribution, + true); + + probabilityDistributionGrid.AddTextBoxColumn(nameof(FailureMechanismContributionItemRow.ProbabilitySpace), + Resources.FailureMechanismContributionView_GridColumn_ProbabilitySpace, + true, + DataGridViewAutoSizeColumnMode.Fill, + 100, + "1/#,#"); + } + + #region Event handling + + private void HandleCellStyling(object sender, DataGridViewCellFormattingEventArgs e) + { + probabilityDistributionGrid.FormatCellWithColumnStateDefinition(e.RowIndex, e.ColumnIndex); + } + + private void ProbabilityDistributionGridOnCellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + if (e.ColumnIndex == probabilitySpaceColumnIndex) + { + var row = (FailureMechanismContributionItemRow) probabilityDistributionGrid.Rows[e.RowIndex].DataBoundItem; + if (Math.Abs(row.Contribution) < 1e-6) + { + e.Value = Resources.FailureMechanismContributionView_ProbabilityPerYear_Not_applicable; + e.FormattingApplied = true; + } + } + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismContributionView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Microsoft Sans Serif, 8.25pt + + + + NoControl + + + 9, 43 + + + 200, 18 + + + + 10 + + + Norm van het dijktraject: 1 / jaar + + + returnPeriodLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxAssessmentSectionDetails + + + 0 + + + Microsoft Sans Serif, 8.25pt + + + NoControl + + + 9, 24 + + + 190, 26 + + + 9 + + + Trajecttype: Dijk + + + assessmentSectionCompositionLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxAssessmentSectionDetails + + + 1 + + + Top + + + Microsoft Sans Serif, 8.25pt + + + 0, 0 + + + 750, 65 + + + 7 + + + Trajectgegevens + + + groupBoxAssessmentSectionDetails + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Fill + + + 0, 65 + + + 4, 4, 4, 4 + + + 750, 355 + + + 6 + + + probabilityDistributionGrid + + + Core.Common.Controls.DataGrid.DataGridViewControl, Core.Common.Controls, Culture=neutral, PublicKeyToken=null + + + $this + + + 0 + + + True + + + 750, 420 + + + FailureMechanismContributionView + + + System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,66 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Ringtoets.Common.Forms.Views; + +namespace Riskeer.Integration.Forms.Views +{ + partial class FailureMechanismWithDetailedAssessmentView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ringtoetsMapControl = new Ringtoets.Common.Forms.Views.RingtoetsMapControl(); + this.SuspendLayout(); + // + // ringtoetsMapControl + // + this.ringtoetsMapControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.ringtoetsMapControl.Location = new System.Drawing.Point(0, 0); + this.ringtoetsMapControl.Name = "ringtoetsMapControl"; + this.ringtoetsMapControl.Size = new System.Drawing.Size(150, 150); + this.ringtoetsMapControl.TabIndex = 0; + // + // FailureMechanismWithDetailedAssessmentView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.ringtoetsMapControl); + this.Name = "FailureMechanismWithDetailedAssessmentView"; + this.ResumeLayout(false); + + } + + #endregion + + private RingtoetsMapControl ringtoetsMapControl; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,347 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Components.Gis.Data; +using Core.Components.Gis.Features; +using Core.Components.Gis.Forms; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Forms.Factories; +using Ringtoets.Common.Forms.Helpers; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class is a view showing map data for a failure mechanism with a detailed assessment. + /// + public partial class FailureMechanismWithDetailedAssessmentView : UserControl, IMapView + where TFailureMechanism : IHasSectionResults + where TSectionResult : FailureMechanismSectionResult + { + private readonly Func> getSimpleAssemblyFeaturesFunc; + private readonly Func> getDetailedAssemblyFeaturesFunc; + private readonly Func> getTailorMadeAssemblyFeaturesFunc; + private readonly Func> getCombinedAssemblyFeaturesFunc; + + private MapDataCollection mapDataCollection; + private MapLineData referenceLineMapData; + private MapPointData hydraulicBoundaryLocationsMapData; + + private MapLineData sectionsMapData; + private MapPointData sectionsStartPointMapData; + private MapPointData sectionsEndPointMapData; + + private MapLineData simpleAssemblyMapData; + private MapLineData detailedAssemblyMapData; + private MapLineData tailorMadeAssemblyMapData; + private MapLineData combinedAssemblyMapData; + + private Observer failureMechanismObserver; + private Observer assessmentSectionObserver; + private Observer referenceLineObserver; + private Observer hydraulicBoundaryLocationsObserver; + + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, TSectionResult> sectionResultObserver; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism to show the data for. + /// The assessment section to show the data for. + /// The that returns a collection of representing + /// the simple assembly results for this failure mechanism. + /// The that returns a collection of representing + /// the detailed assembly results for this failure mechanism. + /// The that returns a collection of representing + /// the tailor made assembly results for this failure mechanism. + /// The that returns a collection of representing + /// the combined assembly results for this failure mechanism. + /// Thrown when any parameter is null. + public FailureMechanismWithDetailedAssessmentView(TFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + Func> getSimpleAssemblyFeaturesFunc, + Func> getDetailedAssemblyFeaturesFunc, + Func> getTailorMadeAssemblyFeaturesFunc, + Func> getCombinedAssemblyFeaturesFunc) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (getSimpleAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getSimpleAssemblyFeaturesFunc)); + } + + if (getDetailedAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getDetailedAssemblyFeaturesFunc)); + } + + if (getTailorMadeAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getTailorMadeAssemblyFeaturesFunc)); + } + + if (getCombinedAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getCombinedAssemblyFeaturesFunc)); + } + + this.getSimpleAssemblyFeaturesFunc = getSimpleAssemblyFeaturesFunc; + this.getDetailedAssemblyFeaturesFunc = getDetailedAssemblyFeaturesFunc; + this.getTailorMadeAssemblyFeaturesFunc = getTailorMadeAssemblyFeaturesFunc; + this.getCombinedAssemblyFeaturesFunc = getCombinedAssemblyFeaturesFunc; + + InitializeComponent(); + + FailureMechanism = failureMechanism; + AssessmentSection = assessmentSection; + + CreateObservers(); + + CreateMapData(); + SetAllMapDataFeatures(); + ringtoetsMapControl.SetAllData(mapDataCollection, assessmentSection.BackgroundData); + } + + /// + /// Gets the failure mechanism. + /// + public TFailureMechanism FailureMechanism { get; } + + /// + /// Gets the assessment section. + /// + public IAssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + public IMapControl Map + { + get + { + return ringtoetsMapControl.MapControl; + } + } + + protected override void Dispose(bool disposing) + { + failureMechanismObserver.Dispose(); + assessmentSectionObserver.Dispose(); + referenceLineObserver.Dispose(); + hydraulicBoundaryLocationsObserver.Dispose(); + waterLevelCalculationsForFactorizedSignalingNormObserver.Dispose(); + waterLevelCalculationsForSignalingNormObserver.Dispose(); + waterLevelCalculationsForLowerLimitNormObserver.Dispose(); + waterLevelCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedSignalingNormObserver.Dispose(); + waveHeightCalculationsForSignalingNormObserver.Dispose(); + waveHeightCalculationsForLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + sectionResultObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void CreateMapData() + { + mapDataCollection = new MapDataCollection(FailureMechanism.Name); + referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); + hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); + + MapDataCollection sectionsMapDataCollection = RingtoetsMapDataFactory.CreateSectionsMapDataCollection(); + sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); + sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); + sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); + + MapDataCollection assemblyMapDataCollection = AssemblyMapDataFactory.CreateAssemblyMapDataCollection(); + tailorMadeAssemblyMapData = AssemblyMapDataFactory.CreateTailorMadeAssemblyMapData(); + detailedAssemblyMapData = AssemblyMapDataFactory.CreateDetailedAssemblyMapData(); + simpleAssemblyMapData = AssemblyMapDataFactory.CreateSimpleAssemblyMapData(); + combinedAssemblyMapData = AssemblyMapDataFactory.CreateCombinedAssemblyMapData(); + + mapDataCollection.Add(referenceLineMapData); + + sectionsMapDataCollection.Add(sectionsMapData); + sectionsMapDataCollection.Add(sectionsStartPointMapData); + sectionsMapDataCollection.Add(sectionsEndPointMapData); + mapDataCollection.Add(sectionsMapDataCollection); + + assemblyMapDataCollection.Add(tailorMadeAssemblyMapData); + assemblyMapDataCollection.Add(detailedAssemblyMapData); + assemblyMapDataCollection.Add(simpleAssemblyMapData); + assemblyMapDataCollection.Add(combinedAssemblyMapData); + mapDataCollection.Add(assemblyMapDataCollection); + + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); + } + + private void CreateObservers() + { + failureMechanismObserver = new Observer(UpdateFailureMechanismMapData) + { + Observable = FailureMechanism + }; + assessmentSectionObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = AssessmentSection + }; + referenceLineObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = AssessmentSection.ReferenceLine + }; + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; + + waterLevelCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + + sectionResultObserver = new RecursiveObserver, TSectionResult>(UpdateAssemblyMapData, sr => sr) + { + Observable = FailureMechanism.SectionResults + }; + } + + private void SetAllMapDataFeatures() + { + SetReferenceLineMapData(); + SetSectionsMapData(); + SetHydraulicBoundaryLocationsMapData(); + UpdateAssemblyMapData(); + } + + #region Assembly MapData + + private void UpdateAssemblyMapData() + { + SetAssemblyMapData(); + simpleAssemblyMapData.NotifyObservers(); + detailedAssemblyMapData.NotifyObservers(); + tailorMadeAssemblyMapData.NotifyObservers(); + combinedAssemblyMapData.NotifyObservers(); + } + + private void SetAssemblyMapData() + { + simpleAssemblyMapData.Features = getSimpleAssemblyFeaturesFunc(); + detailedAssemblyMapData.Features = getDetailedAssemblyFeaturesFunc(); + tailorMadeAssemblyMapData.Features = getTailorMadeAssemblyFeaturesFunc(); + combinedAssemblyMapData.Features = getCombinedAssemblyFeaturesFunc(); + } + + #endregion + + #region AssessmentSection MapData + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); + referenceLineMapData.NotifyObservers(); + } + + private void SetReferenceLineMapData() + { + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures( + AssessmentSection.ReferenceLine, AssessmentSection.Id, AssessmentSection.Name); + } + + #endregion + + #region FailureMechanism MapData + + private void UpdateFailureMechanismMapData() + { + SetSectionsMapData(); + sectionsMapData.NotifyObservers(); + sectionsStartPointMapData.NotifyObservers(); + sectionsEndPointMapData.NotifyObservers(); + + UpdateAssemblyMapData(); + } + + private void SetSectionsMapData() + { + IEnumerable failureMechanismSections = FailureMechanism.Sections; + + sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); + sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); + sectionsEndPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections); + } + + #endregion + + #region HydraulicBoundaryLocations MapData + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } + + private void SetHydraulicBoundaryLocationsMapData() + { + hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeatures(AssessmentSection); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithDetailedAssessmentView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,66 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Ringtoets.Common.Forms.Views; + +namespace Riskeer.Integration.Forms.Views +{ + partial class FailureMechanismWithoutDetailedAssessmentView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ringtoetsMapControl = new Ringtoets.Common.Forms.Views.RingtoetsMapControl(); + this.SuspendLayout(); + // + // ringtoetsMapControl + // + this.ringtoetsMapControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.ringtoetsMapControl.Location = new System.Drawing.Point(0, 0); + this.ringtoetsMapControl.Name = "ringtoetsMapControl"; + this.ringtoetsMapControl.Size = new System.Drawing.Size(150, 150); + this.ringtoetsMapControl.TabIndex = 0; + // + // FailureMechanismWithoutDetailedAssessmentView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.ringtoetsMapControl); + this.Name = "FailureMechanismWithoutDetailedAssessmentView"; + this.ResumeLayout(false); + + } + + #endregion + + private RingtoetsMapControl ringtoetsMapControl; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,332 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Core.Common.Base; +using Core.Components.Gis.Data; +using Core.Components.Gis.Features; +using Core.Components.Gis.Forms; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Forms.Factories; +using Ringtoets.Common.Forms.Helpers; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// This class is a view showing map data for a failure mechanism without a detailed assessment. + /// + public partial class FailureMechanismWithoutDetailedAssessmentView : UserControl, IMapView + where TFailureMechanism : IHasSectionResults + where TSectionResult : FailureMechanismSectionResult + { + private readonly Func> getSimpleAssemblyFeaturesFunc; + private readonly Func> getTailorMadeAssemblyFeaturesFunc; + private readonly Func> getCombinedAssemblyFeaturesFunc; + + private MapDataCollection mapDataCollection; + private MapLineData referenceLineMapData; + private MapPointData hydraulicBoundaryLocationsMapData; + + private MapLineData sectionsMapData; + private MapPointData sectionsStartPointMapData; + private MapPointData sectionsEndPointMapData; + + private MapLineData simpleAssemblyMapData; + private MapLineData tailorMadeAssemblyMapData; + private MapLineData combinedAssemblyMapData; + + private Observer failureMechanismObserver; + private Observer assessmentSectionObserver; + private Observer referenceLineObserver; + private Observer hydraulicBoundaryLocationsObserver; + + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waterLevelCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForSignalingNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForLowerLimitNormObserver; + private RecursiveObserver, HydraulicBoundaryLocationCalculation> waveHeightCalculationsForFactorizedLowerLimitNormObserver; + private RecursiveObserver, TSectionResult> sectionResultObserver; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism to show the data for. + /// The assessment section to show the data for. + /// The that returns a collection of representing + /// the simple assembly results for this failure mechanism. + /// The that returns a collection of representing + /// the tailor made assembly results for this failure mechanism. + /// The that returns a collection of representing + /// the combined assembly results for this failure mechanism. + /// Thrown when any parameter is null. + public FailureMechanismWithoutDetailedAssessmentView(TFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + Func> getSimpleAssemblyFeaturesFunc, + Func> getTailorMadeAssemblyFeaturesFunc, + Func> getCombinedAssemblyFeaturesFunc) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (getSimpleAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getSimpleAssemblyFeaturesFunc)); + } + + if (getTailorMadeAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getTailorMadeAssemblyFeaturesFunc)); + } + + if (getCombinedAssemblyFeaturesFunc == null) + { + throw new ArgumentNullException(nameof(getCombinedAssemblyFeaturesFunc)); + } + + this.getSimpleAssemblyFeaturesFunc = getSimpleAssemblyFeaturesFunc; + this.getTailorMadeAssemblyFeaturesFunc = getTailorMadeAssemblyFeaturesFunc; + this.getCombinedAssemblyFeaturesFunc = getCombinedAssemblyFeaturesFunc; + + InitializeComponent(); + + FailureMechanism = failureMechanism; + AssessmentSection = assessmentSection; + + CreateObservers(); + + CreateMapData(); + SetAllMapDataFeatures(); + ringtoetsMapControl.SetAllData(mapDataCollection, assessmentSection.BackgroundData); + } + + /// + /// Gets the failure mechanism. + /// + public TFailureMechanism FailureMechanism { get; } + + /// + /// Gets the assessment section. + /// + public IAssessmentSection AssessmentSection { get; } + + public object Data { get; set; } + + public IMapControl Map + { + get + { + return ringtoetsMapControl.MapControl; + } + } + + protected override void Dispose(bool disposing) + { + failureMechanismObserver.Dispose(); + assessmentSectionObserver.Dispose(); + referenceLineObserver.Dispose(); + hydraulicBoundaryLocationsObserver.Dispose(); + waterLevelCalculationsForFactorizedSignalingNormObserver.Dispose(); + waterLevelCalculationsForSignalingNormObserver.Dispose(); + waterLevelCalculationsForLowerLimitNormObserver.Dispose(); + waterLevelCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedSignalingNormObserver.Dispose(); + waveHeightCalculationsForSignalingNormObserver.Dispose(); + waveHeightCalculationsForLowerLimitNormObserver.Dispose(); + waveHeightCalculationsForFactorizedLowerLimitNormObserver.Dispose(); + sectionResultObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void CreateMapData() + { + mapDataCollection = new MapDataCollection(FailureMechanism.Name); + referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); + hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); + + MapDataCollection sectionsMapDataCollection = RingtoetsMapDataFactory.CreateSectionsMapDataCollection(); + sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); + sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); + sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); + + MapDataCollection assemblyMapDataCollection = AssemblyMapDataFactory.CreateAssemblyMapDataCollection(); + tailorMadeAssemblyMapData = AssemblyMapDataFactory.CreateTailorMadeAssemblyMapData(); + simpleAssemblyMapData = AssemblyMapDataFactory.CreateSimpleAssemblyMapData(); + combinedAssemblyMapData = AssemblyMapDataFactory.CreateCombinedAssemblyMapData(); + + mapDataCollection.Add(referenceLineMapData); + + sectionsMapDataCollection.Add(sectionsMapData); + sectionsMapDataCollection.Add(sectionsStartPointMapData); + sectionsMapDataCollection.Add(sectionsEndPointMapData); + mapDataCollection.Add(sectionsMapDataCollection); + + assemblyMapDataCollection.Add(tailorMadeAssemblyMapData); + assemblyMapDataCollection.Add(simpleAssemblyMapData); + assemblyMapDataCollection.Add(combinedAssemblyMapData); + mapDataCollection.Add(assemblyMapDataCollection); + + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); + } + + private void CreateObservers() + { + failureMechanismObserver = new Observer(UpdateFailureMechanismMapData) + { + Observable = FailureMechanism + }; + assessmentSectionObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = AssessmentSection + }; + referenceLineObserver = new Observer(UpdateReferenceLineMapData) + { + Observable = AssessmentSection.ReferenceLine + }; + hydraulicBoundaryLocationsObserver = new Observer(UpdateHydraulicBoundaryLocationsMapData) + { + Observable = AssessmentSection.HydraulicBoundaryDatabase.Locations + }; + + waterLevelCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waterLevelCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForSignalingNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForSignalingNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + waveHeightCalculationsForFactorizedLowerLimitNormObserver = ObserverHelper.CreateHydraulicBoundaryLocationCalculationsObserver( + AssessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm, UpdateHydraulicBoundaryLocationsMapData); + + sectionResultObserver = new RecursiveObserver, TSectionResult>(UpdateAssemblyMapData, sr => sr) + { + Observable = FailureMechanism.SectionResults + }; + } + + private void SetAllMapDataFeatures() + { + SetReferenceLineMapData(); + SetSectionsMapData(); + SetHydraulicBoundaryLocationsMapData(); + UpdateAssemblyMapData(); + } + + #region Assembly MapData + + private void UpdateAssemblyMapData() + { + SetAssemblyMapData(); + simpleAssemblyMapData.NotifyObservers(); + tailorMadeAssemblyMapData.NotifyObservers(); + combinedAssemblyMapData.NotifyObservers(); + } + + private void SetAssemblyMapData() + { + simpleAssemblyMapData.Features = getSimpleAssemblyFeaturesFunc(); + tailorMadeAssemblyMapData.Features = getTailorMadeAssemblyFeaturesFunc(); + combinedAssemblyMapData.Features = getCombinedAssemblyFeaturesFunc(); + } + + #endregion + + #region AssessmentSection MapData + + private void UpdateReferenceLineMapData() + { + SetReferenceLineMapData(); + referenceLineMapData.NotifyObservers(); + } + + private void SetReferenceLineMapData() + { + referenceLineMapData.Features = RingtoetsMapDataFeaturesFactory.CreateReferenceLineFeatures( + AssessmentSection.ReferenceLine, AssessmentSection.Id, AssessmentSection.Name); + } + + #endregion + + #region FailureMechanism MapData + + private void UpdateFailureMechanismMapData() + { + SetSectionsMapData(); + sectionsMapData.NotifyObservers(); + sectionsStartPointMapData.NotifyObservers(); + sectionsEndPointMapData.NotifyObservers(); + + UpdateAssemblyMapData(); + } + + private void SetSectionsMapData() + { + IEnumerable failureMechanismSections = FailureMechanism.Sections; + + sectionsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionFeatures(failureMechanismSections); + sectionsStartPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionStartPointFeatures(failureMechanismSections); + sectionsEndPointMapData.Features = RingtoetsMapDataFeaturesFactory.CreateFailureMechanismSectionEndPointFeatures(failureMechanismSections); + } + + #endregion + + #region HydraulicBoundaryLocations MapData + + private void UpdateHydraulicBoundaryLocationsMapData() + { + SetHydraulicBoundaryLocationsMapData(); + hydraulicBoundaryLocationsMapData.NotifyObservers(); + } + + private void SetHydraulicBoundaryLocationsMapData() + { + hydraulicBoundaryLocationsMapData.Features = RingtoetsMapDataFeaturesFactory.CreateHydraulicBoundaryLocationFeatures(AssessmentSection); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/FailureMechanismWithoutDetailedAssessmentView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.Designer.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.Designer.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.Designer.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,89 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.Integration.Forms.Views +{ + partial class MacroStabilityOutwardsAssemblyCategoriesView + { + + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.failureMechanismSectionAssemblyCategoriesTable = new AssemblyCategoriesTable(); + this.failureMechanismSectionAssemblyGroupBox = new System.Windows.Forms.GroupBox(); + this.groupBoxPanel = new System.Windows.Forms.Panel(); + this.groupBoxPanel.SuspendLayout(); + this.failureMechanismSectionAssemblyGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // failureMechanismSectionAssemblyCategoriesTable + // + this.failureMechanismSectionAssemblyCategoriesTable.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismSectionAssemblyCategoriesTable.MultiSelect = true; + this.failureMechanismSectionAssemblyCategoriesTable.Name = "failureMechanismSectionAssemblyCategoriesTable"; + this.failureMechanismSectionAssemblyCategoriesTable.Padding = new System.Windows.Forms.Padding(5); + this.failureMechanismSectionAssemblyCategoriesTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.RowHeaderSelect; + // + // groupBoxPanel + // + this.groupBoxPanel.Controls.Add(this.failureMechanismSectionAssemblyGroupBox); + this.groupBoxPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxPanel.Name = "groupBoxPanel"; + this.groupBoxPanel.Padding = new System.Windows.Forms.Padding(3); + // + // failureMechanismSectionAssemblyGroupBox + // + this.failureMechanismSectionAssemblyGroupBox.Controls.Add(this.failureMechanismSectionAssemblyCategoriesTable); + this.failureMechanismSectionAssemblyGroupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.failureMechanismSectionAssemblyGroupBox.Name = "failureMechanismSectionAssemblyGroupBox"; + this.failureMechanismSectionAssemblyGroupBox.Text = global::Riskeer.Integration.Forms.Properties.Resources.FailureMechanismSectionAssemblyCategories_DisplayName; + // + // FailureMechanismAssemblyCategoriesView + // + this.Controls.Add(this.groupBoxPanel); + this.Name = "MacroStabilityOutwardsAssemblyCategoriesView"; + this.Size = new System.Drawing.Size(750, 420); + this.AutoScrollMinSize = new System.Drawing.Size(400, 100); + this.groupBoxPanel.ResumeLayout(false); + this.failureMechanismSectionAssemblyGroupBox.ResumeLayout(false); + this.ResumeLayout(false); + } + + + #endregion + + private AssemblyCategoriesTable failureMechanismSectionAssemblyCategoriesTable; + private System.Windows.Forms.GroupBox failureMechanismSectionAssemblyGroupBox; + private System.Windows.Forms.Panel groupBoxPanel; + } +} Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,108 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone; + +namespace Riskeer.Integration.Forms.Views +{ + /// + /// View for a to show + /// its assembly categories. + /// + public partial class MacroStabilityOutwardsAssemblyCategoriesView : CloseForFailureMechanismView + { + private readonly Func> getFailureMechanismSectionAssemblyCategoriesFunc; + private readonly Observer failureMechanismObserver; + private readonly Observer assessmentSectionObserver; + + /// + /// Creates a new instance of . + /// + /// The failure mechanism belonging to the view. + /// The assessment section belonging to the view. + /// The function to get a collection + /// of . + /// Thrown when any parameter is null. + public MacroStabilityOutwardsAssemblyCategoriesView(MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + Func> getFailureMechanismSectionAssemblyCategoriesFunc) + : base(failureMechanism) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (getFailureMechanismSectionAssemblyCategoriesFunc == null) + { + throw new ArgumentNullException(nameof(getFailureMechanismSectionAssemblyCategoriesFunc)); + } + + this.getFailureMechanismSectionAssemblyCategoriesFunc = getFailureMechanismSectionAssemblyCategoriesFunc; + + InitializeComponent(); + + failureMechanismObserver = new Observer(UpdateTableData) + { + Observable = failureMechanism + }; + + assessmentSectionObserver = new Observer(UpdateTableData) + { + Observable = assessmentSection + }; + + UpdateTableData(); + } + + protected override void Dispose(bool disposing) + { + failureMechanismObserver.Dispose(); + assessmentSectionObserver.Dispose(); + + if (disposing) + { + components?.Dispose(); + } + + base.Dispose(disposing); + } + + private void UpdateTableData() + { + failureMechanismSectionAssemblyCategoriesTable.SetData( + getFailureMechanismSectionAssemblyCategoriesFunc().Select( + category => new Tuple( + category, + AssemblyCategoryGroupColorHelper.GetFailureMechanismSectionAssemblyCategoryGroupColor(category.Group), + category.Group)).ToArray()); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.resx =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.resx (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/MacroStabilityOutwardsAssemblyCategoriesView.resx (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffInwardsSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffInwardsSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffInwardsSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,390 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class GrassCoverSlipOffInwardsSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int detailedAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int detailedAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal GrassCoverSlipOffInwardsSectionResultRow(GrassCoverSlipOffInwardsFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the detailed assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResult + { + get + { + return SectionResult.DetailedAssessmentResult; + } + set + { + SectionResult.DetailedAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the detailed assembly category group. + /// + public string DetailedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetDetailedAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetDetailedAssemblyCategoryGroup() + { + try + { + detailedAssemblyCategoryGroup = GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment(SectionResult); + } + catch (AssemblyException e) + { + detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex], + detailedAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment result index. + /// + public int DetailedAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the detailed assembly category group index. + /// + public int DetailedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffOutwardsSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffOutwardsSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/GrassCoverSlipOffOutwardsSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,390 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class GrassCoverSlipOffOutwardsSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int detailedAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int detailedAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal GrassCoverSlipOffOutwardsSectionResultRow(GrassCoverSlipOffOutwardsFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the detailed assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResult + { + get + { + return SectionResult.DetailedAssessmentResult; + } + set + { + SectionResult.DetailedAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the detailed assembly category group. + /// + public string DetailedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetDetailedAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetDetailedAssemblyCategoryGroup() + { + try + { + detailedAssemblyCategoryGroup = GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment(SectionResult); + } + catch (AssemblyException e) + { + detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex], + detailedAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment result index. + /// + public int DetailedAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the detailed assembly category group index. + /// + public int DetailedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MacroStabilityOutwardsSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,488 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.TypeConverters; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class MacroStabilityOutwardsSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int detailedAssessmentResultIndex; + private readonly int detailedAssessmentProbabilityIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int tailorMadeAssessmentProbabilityIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int detailedAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private readonly MacroStabilityOutwardsFailureMechanism failureMechanism; + private readonly IAssessmentSection assessmentSection; + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The failure mechanism the section result belongs to. + /// The assessment section the section result belongs to. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal MacroStabilityOutwardsSectionResultRow(MacroStabilityOutwardsFailureMechanismSectionResult sectionResult, + MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + this.failureMechanism = failureMechanism; + this.assessmentSection = assessmentSection; + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex; + detailedAssessmentProbabilityIndex = constructionProperties.DetailedAssessmentProbabilityIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + tailorMadeAssessmentProbabilityIndex = constructionProperties.TailorMadeAssessmentProbabilityIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the detailed assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentProbabilityOnlyResultType DetailedAssessmentResult + { + get + { + return SectionResult.DetailedAssessmentResult; + } + set + { + SectionResult.DetailedAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the detailed assessment probability of the . + /// + /// Thrown when is + /// not in the range [0,1]. + /// Thrown when + /// is a valid value, but unsupported. + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double DetailedAssessmentProbability + { + get + { + return SectionResult.DetailedAssessmentProbability; + } + set + { + SectionResult.DetailedAssessmentProbability = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentProbabilityAndDetailedCalculationResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the tailor made assessment probability of the . + /// + /// Thrown when is + /// not in the range [0,1]. + /// Thrown when + /// is a valid value, but unsupported. + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + public double TailorMadeAssessmentProbability + { + get + { + return SectionResult.TailorMadeAssessmentProbability; + } + set + { + SectionResult.TailorMadeAssessmentProbability = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the detailed assembly category group. + /// + public string DetailedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentProbabilityIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentProbabilityIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetDetailedAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetDetailedAssemblyCategoryGroup() + { + try + { + detailedAssemblyCategoryGroup = MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment( + SectionResult, + failureMechanism, + assessmentSection); + } + catch (AssemblyException e) + { + detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment( + SectionResult, + failureMechanism, + assessmentSection); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + SectionResult, + failureMechanism, + assessmentSection); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentProbabilityIndex], + simpleAssessmentSufficient + || !FailureMechanismSectionResultRowHelper.DetailedAssessmentResultIsProbability(DetailedAssessmentResult) + || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentProbabilityIndex], + simpleAssessmentSufficient + || !FailureMechanismSectionResultRowHelper.TailorMadeAssessmentResultIsProbability(TailorMadeAssessmentResult) + || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex], + detailedAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment result index. + /// + public int DetailedAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment probability index. + /// + public int DetailedAssessmentProbabilityIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment probability index. + /// + public int TailorMadeAssessmentProbabilityIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the detailed assembly category group index. + /// + public int DetailedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/MicrostabilitySectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,391 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying + /// as a row in a grid view. + /// + public class MicrostabilitySectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int detailedAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int detailedAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal MicrostabilitySectionResultRow(MicrostabilityFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the detailed assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResult + { + get + { + return SectionResult.DetailedAssessmentResult; + } + set + { + SectionResult.DetailedAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the detailed assembly category group. + /// + public string DetailedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetDetailedAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = MicrostabilityFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetDetailedAssemblyCategoryGroup() + { + try + { + detailedAssemblyCategoryGroup = MicrostabilityFailureMechanismAssemblyFactory.AssembleDetailedAssessment(SectionResult); + } + catch (AssemblyException e) + { + detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = MicrostabilityFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = MicrostabilityFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex], + detailedAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment result index. + /// + public int DetailedAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the detailed assembly category group index. + /// + public int DetailedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/PipingStructureSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/PipingStructureSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/PipingStructureSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,390 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class PipingStructureSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int detailedAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int detailedAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup detailedAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal PipingStructureSectionResultRow(PipingStructureFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + detailedAssessmentResultIndex = constructionProperties.DetailedAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + detailedAssemblyCategoryGroupIndex = constructionProperties.DetailedAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the detailed assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public DetailedAssessmentResultType DetailedAssessmentResult + { + get + { + return SectionResult.DetailedAssessmentResult; + } + set + { + SectionResult.DetailedAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the detailed assembly category group. + /// + public string DetailedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(detailedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetDetailedAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = PipingStructureFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetDetailedAssemblyCategoryGroup() + { + try + { + detailedAssemblyCategoryGroup = PipingStructureFailureMechanismAssemblyFactory.AssembleDetailedAssessment(SectionResult); + } + catch (AssemblyException e) + { + detailedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = PipingStructureFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = PipingStructureFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[detailedAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[detailedAssemblyCategoryGroupIndex], + detailedAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the detailed assessment result index. + /// + public int DetailedAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the detailed assembly category group index. + /// + public int DetailedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/StrengthStabilityLengthwiseConstructionSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/StrengthStabilityLengthwiseConstructionSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/StrengthStabilityLengthwiseConstructionSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,325 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class StrengthStabilityLengthwiseConstructionSectionResultRow + : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal StrengthStabilityLengthwiseConstructionSectionResultRow(StrengthStabilityLengthwiseConstructionFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/TechnicalInnovationSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/TechnicalInnovationSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/TechnicalInnovationSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,324 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class TechnicalInnovationSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal TechnicalInnovationSectionResultRow(TechnicalInnovationFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = TechnicalInnovationFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = TechnicalInnovationFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = TechnicalInnovationFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/WaterPressureAsphaltCoverSectionResultRow.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/WaterPressureAsphaltCoverSectionResultRow.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultRows/WaterPressureAsphaltCoverSectionResultRow.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,324 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.DataGrid; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.Views; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; + +namespace Riskeer.Integration.Forms.Views.SectionResultRows +{ + /// + /// Class for displaying as a row in a grid view. + /// + public class WaterPressureAsphaltCoverSectionResultRow : FailureMechanismSectionResultRow + { + private readonly int simpleAssessmentResultIndex; + private readonly int tailorMadeAssessmentResultIndex; + private readonly int simpleAssemblyCategoryGroupIndex; + private readonly int tailorMadeAssemblyCategoryGroupIndex; + private readonly int combinedAssemblyCategoryGroupIndex; + private readonly int manualAssemblyCategoryGroupIndex; + + private FailureMechanismSectionAssemblyCategoryGroup simpleAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssemblyCategoryGroup; + private FailureMechanismSectionAssemblyCategoryGroup combinedAssemblyCategoryGroup; + + /// + /// Creates a new instance of . + /// + /// The to wrap + /// so that it can be displayed as a row. + /// The property values required to create an instance of + /// . + /// Thrown when any parameter is null. + /// Thrown when + /// is a valid value, but unsupported. + internal WaterPressureAsphaltCoverSectionResultRow(WaterPressureAsphaltCoverFailureMechanismSectionResult sectionResult, + ConstructionProperties constructionProperties) + : base(sectionResult) + { + if (constructionProperties == null) + { + throw new ArgumentNullException(nameof(constructionProperties)); + } + + simpleAssessmentResultIndex = constructionProperties.SimpleAssessmentResultIndex; + tailorMadeAssessmentResultIndex = constructionProperties.TailorMadeAssessmentResultIndex; + simpleAssemblyCategoryGroupIndex = constructionProperties.SimpleAssemblyCategoryGroupIndex; + tailorMadeAssemblyCategoryGroupIndex = constructionProperties.TailorMadeAssemblyCategoryGroupIndex; + combinedAssemblyCategoryGroupIndex = constructionProperties.CombinedAssemblyCategoryGroupIndex; + manualAssemblyCategoryGroupIndex = constructionProperties.ManualAssemblyCategoryGroupIndex; + + CreateColumnStateDefinitions(); + + Update(); + } + + /// + /// Gets or sets the value representing the simple assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public SimpleAssessmentResultType SimpleAssessmentResult + { + get + { + return SectionResult.SimpleAssessmentResult; + } + set + { + SectionResult.SimpleAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the value representing the tailor made assessment result. + /// + /// Thrown when + /// is a valid value, but unsupported. + public TailorMadeAssessmentResultType TailorMadeAssessmentResult + { + get + { + return SectionResult.TailorMadeAssessmentResult; + } + set + { + SectionResult.TailorMadeAssessmentResult = value; + UpdateInternalData(); + } + } + + /// + /// Gets the simple assembly category group. + /// + public string SimpleAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); + } + } + + /// + /// Gets the tailor made assembly category group. + /// + public string TailorMadeAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); + } + } + + /// + /// Gets the combined assembly category group. + /// + public string CombinedAssemblyCategoryGroup + { + get + { + return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); + } + } + + /// + /// Gets or sets the indicator whether the combined assembly should be overwritten by . + /// + /// Thrown when + /// is a valid value, but unsupported. + public bool UseManualAssembly + { + get + { + return SectionResult.UseManualAssembly; + } + set + { + SectionResult.UseManualAssembly = value; + UpdateInternalData(); + } + } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is a valid value, but unsupported. + public ManualFailureMechanismSectionAssemblyCategoryGroup ManualAssemblyCategoryGroup + { + get + { + return SectionResult.ManualAssemblyCategoryGroup; + } + set + { + SectionResult.ManualAssemblyCategoryGroup = value; + UpdateInternalData(); + } + } + + public override void Update() + { + UpdateDerivedData(); + UpdateColumnStateDefinitionStates(); + } + + private void CreateColumnStateDefinitions() + { + ColumnStateDefinitions.Add(simpleAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssessmentResultIndex, new DataGridViewColumnStateDefinition()); + ColumnStateDefinitions.Add(simpleAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(tailorMadeAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(combinedAssemblyCategoryGroupIndex, DataGridViewColumnStateDefinitionFactory.CreateReadOnlyColumnStateDefinition()); + ColumnStateDefinitions.Add(manualAssemblyCategoryGroupIndex, new DataGridViewColumnStateDefinition()); + } + + private void UpdateDerivedData() + { + ResetErrorTexts(); + TryGetSimpleAssemblyCategoryGroup(); + TryGetTailorMadeAssemblyCategoryGroup(); + TryGetCombinedAssemblyCategoryGroup(); + } + + private void ResetErrorTexts() + { + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = string.Empty; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = string.Empty; + } + + private void TryGetSimpleAssemblyCategoryGroup() + { + try + { + simpleAssemblyCategoryGroup = WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleSimpleAssessment(SectionResult); + } + catch (AssemblyException e) + { + simpleAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetTailorMadeAssemblyCategoryGroup() + { + try + { + tailorMadeAssemblyCategoryGroup = WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(SectionResult); + } + catch (AssemblyException e) + { + tailorMadeAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + private void TryGetCombinedAssemblyCategoryGroup() + { + try + { + combinedAssemblyCategoryGroup = WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleCombinedAssessment(SectionResult); + } + catch (AssemblyException e) + { + combinedAssemblyCategoryGroup = FailureMechanismSectionAssemblyCategoryGroup.None; + ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex].ErrorText = e.Message; + } + } + + /// + /// Updates the column state definitions. + /// + /// Thrown when + /// is a valid value, but unsupported. + private void UpdateColumnStateDefinitionStates() + { + bool simpleAssessmentSufficient = FailureMechanismSectionResultRowHelper.SimpleAssessmentIsSufficient(SimpleAssessmentResult); + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[simpleAssessmentResultIndex], UseManualAssembly); + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[tailorMadeAssessmentResultIndex], + simpleAssessmentSufficient || UseManualAssembly); + + if (UseManualAssembly) + { + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex]); + FailureMechanismSectionResultRowHelper.DisableColumn(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex]); + } + else + { + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[simpleAssemblyCategoryGroupIndex], + simpleAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[tailorMadeAssemblyCategoryGroupIndex], + tailorMadeAssemblyCategoryGroup); + FailureMechanismSectionResultRowHelper.SetAssemblyCategoryGroupStyle(ColumnStateDefinitions[combinedAssemblyCategoryGroupIndex], + combinedAssemblyCategoryGroup); + } + + FailureMechanismSectionResultRowHelper.SetColumnState(ColumnStateDefinitions[manualAssemblyCategoryGroupIndex], !UseManualAssembly); + } + + /// + /// Class holding the various construction parameters for . + /// + public class ConstructionProperties + { + /// + /// Sets the simple assessment result index. + /// + public int SimpleAssessmentResultIndex { internal get; set; } + + /// + /// Sets the tailor made assessment result index. + /// + public int TailorMadeAssessmentResultIndex { internal get; set; } + + /// + /// Sets the simple assembly category group index. + /// + public int SimpleAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the tailor made assembly category group index. + /// + public int TailorMadeAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the combined assembly category group index. + /// + public int CombinedAssemblyCategoryGroupIndex { internal get; set; } + + /// + /// Sets the manual assembly category group index. + /// + public int ManualAssemblyCategoryGroupIndex { internal get; set; } + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffInwardsResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffInwardsResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffInwardsResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,124 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class GrassCoverSlipOffInwardsResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int tailorMadeAssessmentResultIndex = 3; + private const int simpleAssemblyCategoryGroupIndex = 4; + private const int detailedAssemblyCategoryGroupIndex = 5; + private const int tailorMadeAssemblyCategoryGroupIndex = 6; + private const int combinedAssemblyCategoryGroupIndex = 7; + private const int manualAssemblyCategoryGroupIndex = 9; + + /// + /// + /// Creates a new instance of . + /// + public GrassCoverSlipOffInwardsResultView(IObservableEnumerable failureMechanismSectionResults, + GrassCoverSlipOffInwardsFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override GrassCoverSlipOffInwardsSectionResultRow CreateFailureMechanismSectionResultRow( + GrassCoverSlipOffInwardsFailureMechanismSectionResult sectionResult) + { + return new GrassCoverSlipOffInwardsSectionResultRow( + sectionResult, + new GrassCoverSlipOffInwardsSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + DetailedAssessmentResultIndex = detailedAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.DetailedAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffInwardsSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffOutwardsResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffOutwardsResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/GrassCoverSlipOffOutwardsResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,124 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class GrassCoverSlipOffOutwardsResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int tailorMadeAssessmentResultIndex = 3; + private const int simpleAssemblyCategoryGroupIndex = 4; + private const int detailedAssemblyCategoryGroupIndex = 5; + private const int tailorMadeAssemblyCategoryGroupIndex = 6; + private const int combinedAssemblyCategoryGroupIndex = 7; + private const int manualAssemblyCategoryGroupIndex = 9; + + /// + /// + /// Creates a new instance of . + /// + public GrassCoverSlipOffOutwardsResultView( + IObservableEnumerable failureMechanismSectionResults, + GrassCoverSlipOffOutwardsFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override GrassCoverSlipOffOutwardsSectionResultRow CreateFailureMechanismSectionResultRow(GrassCoverSlipOffOutwardsFailureMechanismSectionResult sectionResult) + { + return new GrassCoverSlipOffOutwardsSectionResultRow( + sectionResult, + new GrassCoverSlipOffOutwardsSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + DetailedAssessmentResultIndex = detailedAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.DetailedAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(GrassCoverSlipOffOutwardsSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MacroStabilityOutwardsResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MacroStabilityOutwardsResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MacroStabilityOutwardsResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,154 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class MacroStabilityOutwardsResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int detailedAssessmentProbabilityIndex = 3; + private const int tailorMadeAssessmentResultIndex = 4; + private const int tailorMadeAssessmentProbabilityIndex = 5; + private const int simpleAssemblyCategoryGroupIndex = 6; + private const int detailedAssemblyCategoryGroupIndex = 7; + private const int tailorMadeAssemblyCategoryGroupIndex = 8; + private const int combinedAssemblyCategoryGroupIndex = 9; + private const int manualAssemblyCategoryGroupIndex = 11; + + private readonly IAssessmentSection assessmentSection; + + /// + /// Creates a new instance of . + /// + /// The collection of to + /// show in the view. + /// The failure mechanism the results belong to. + /// The assessment section the failure mechanism results belong to. + /// Thrown when any parameter is null. + public MacroStabilityOutwardsResultView(IObservableEnumerable failureMechanismSectionResults, + MacroStabilityOutwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + : base(failureMechanismSectionResults, failureMechanism) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + this.assessmentSection = assessmentSection; + } + + protected override MacroStabilityOutwardsSectionResultRow CreateFailureMechanismSectionResultRow(MacroStabilityOutwardsFailureMechanismSectionResult sectionResult) + { + return new MacroStabilityOutwardsSectionResultRow( + sectionResult, FailureMechanism, assessmentSection, + new MacroStabilityOutwardsSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + DetailedAssessmentResultIndex = detailedAssessmentResultIndex, + DetailedAssessmentProbabilityIndex = detailedAssessmentProbabilityIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + TailorMadeAssessmentProbabilityIndex = tailorMadeAssessmentProbabilityIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentProbabilityOnlyResultColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.DetailedAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentProbabilityColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.DetailedAssessmentProbability)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentProbabilityAndDetailedCalculationResultColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentProbabilityColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.TailorMadeAssessmentProbability)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MacroStabilityOutwardsSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, + assessmentSection, + true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/MicrostabilityResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,123 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class MicrostabilityResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int tailorMadeAssessmentResultIndex = 3; + private const int simpleAssemblyCategoryGroupIndex = 4; + private const int detailedAssemblyCategoryGroupIndex = 5; + private const int tailorMadeAssemblyCategoryGroupIndex = 6; + private const int combinedAssemblyCategoryGroupIndex = 7; + private const int manualAssemblyCategoryGroupIndex = 9; + + /// + /// + /// Creates a new instance of . + /// + public MicrostabilityResultView(IObservableEnumerable failureMechanismSectionResults, + MicrostabilityFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override MicrostabilitySectionResultRow CreateFailureMechanismSectionResultRow(MicrostabilityFailureMechanismSectionResult sectionResult) + { + return new MicrostabilitySectionResultRow( + sectionResult, + new MicrostabilitySectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + DetailedAssessmentResultIndex = detailedAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.DetailedAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(MicrostabilitySectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(MicrostabilityFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/PipingStructureResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/PipingStructureResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/PipingStructureResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,123 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class PipingStructureResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int detailedAssessmentResultIndex = 2; + private const int tailorMadeAssessmentResultIndex = 3; + private const int simpleAssemblyCategoryGroupIndex = 4; + private const int detailedAssemblyCategoryGroupIndex = 5; + private const int tailorMadeAssemblyCategoryGroupIndex = 6; + private const int combinedAssemblyCategoryGroupIndex = 7; + private const int manualAssemblyCategoryGroupIndex = 9; + + /// + /// + /// Creates a new instance of . + /// + public PipingStructureResultView(IObservableEnumerable failureMechanismSectionResults, + PipingStructureFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override PipingStructureSectionResultRow CreateFailureMechanismSectionResultRow(PipingStructureFailureMechanismSectionResult sectionResult) + { + return new PipingStructureSectionResultRow( + sectionResult, + new PipingStructureSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + DetailedAssessmentResultIndex = detailedAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + DetailedAssemblyCategoryGroupIndex = detailedAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssessmentResultColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.DetailedAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddDetailedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.DetailedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(PipingStructureSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/StrengthStabilityLengthwiseConstructionResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/StrengthStabilityLengthwiseConstructionResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/StrengthStabilityLengthwiseConstructionResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,114 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class StrengthStabilityLengthwiseConstructionResultView + : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int tailorMadeAssessmentResultIndex = 2; + private const int simpleAssemblyCategoryGroupIndex = 3; + private const int tailorMadeAssemblyCategoryGroupIndex = 4; + private const int combinedAssemblyCategoryGroupIndex = 5; + private const int manualAssemblyCategoryGroupIndex = 7; + + /// + /// + /// Creates a new instance of . + /// + public StrengthStabilityLengthwiseConstructionResultView( + IObservableEnumerable failureMechanismSectionResults, + StrengthStabilityLengthwiseConstructionFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override StrengthStabilityLengthwiseConstructionSectionResultRow CreateFailureMechanismSectionResultRow( + StrengthStabilityLengthwiseConstructionFailureMechanismSectionResult sectionResult) + { + return new StrengthStabilityLengthwiseConstructionSectionResultRow( + sectionResult, + new StrengthStabilityLengthwiseConstructionSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(StrengthStabilityLengthwiseConstructionSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/TechnicalInnovationResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/TechnicalInnovationResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/TechnicalInnovationResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,112 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class TechnicalInnovationResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int tailorMadeAssessmentResultIndex = 2; + private const int simpleAssemblyCategoryGroupIndex = 3; + private const int tailorMadeAssemblyCategoryGroupIndex = 4; + private const int combinedAssemblyCategoryGroupIndex = 5; + private const int manualAssemblyCategoryGroupIndex = 7; + + /// + /// + /// Creates a new instance of . + /// + public TechnicalInnovationResultView( + IObservableEnumerable failureMechanismSectionResults, + TechnicalInnovationFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override TechnicalInnovationSectionResultRow CreateFailureMechanismSectionResultRow(TechnicalInnovationFailureMechanismSectionResult sectionResult) + { + return new TechnicalInnovationSectionResultRow( + sectionResult, + new TechnicalInnovationSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(TechnicalInnovationSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(TechnicalInnovationFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/WaterPressureAsphaltCoverResultView.cs =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/WaterPressureAsphaltCoverResultView.cs (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/Views/SectionResultViews/WaterPressureAsphaltCoverResultView.cs (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,112 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Base; +using Ringtoets.Common.Forms.Builders; +using Ringtoets.Common.Forms.Controls; +using Ringtoets.Common.Forms.Views; +using Riskeer.Integration.Data.StandAlone; +using Riskeer.Integration.Data.StandAlone.AssemblyFactories; +using Riskeer.Integration.Data.StandAlone.SectionResults; +using Riskeer.Integration.Forms.Views.SectionResultRows; + +namespace Riskeer.Integration.Forms.Views.SectionResultViews +{ + /// + /// The view for a collection of . + /// + public class WaterPressureAsphaltCoverResultView : FailureMechanismResultView + { + private const int simpleAssessmentResultIndex = 1; + private const int tailorMadeAssessmentResultIndex = 2; + private const int simpleAssemblyCategoryGroupIndex = 3; + private const int tailorMadeAssemblyCategoryGroupIndex = 4; + private const int combinedAssemblyCategoryGroupIndex = 5; + private const int manualAssemblyCategoryGroupIndex = 7; + + /// + /// + /// Creates a new instance of . + /// + public WaterPressureAsphaltCoverResultView( + IObservableEnumerable failureMechanismSectionResults, + WaterPressureAsphaltCoverFailureMechanism failureMechanism) + : base(failureMechanismSectionResults, failureMechanism) {} + + protected override WaterPressureAsphaltCoverSectionResultRow CreateFailureMechanismSectionResultRow(WaterPressureAsphaltCoverFailureMechanismSectionResult sectionResult) + { + return new WaterPressureAsphaltCoverSectionResultRow( + sectionResult, + new WaterPressureAsphaltCoverSectionResultRow.ConstructionProperties + { + SimpleAssessmentResultIndex = simpleAssessmentResultIndex, + TailorMadeAssessmentResultIndex = tailorMadeAssessmentResultIndex, + SimpleAssemblyCategoryGroupIndex = simpleAssemblyCategoryGroupIndex, + TailorMadeAssemblyCategoryGroupIndex = tailorMadeAssemblyCategoryGroupIndex, + CombinedAssemblyCategoryGroupIndex = combinedAssemblyCategoryGroupIndex, + ManualAssemblyCategoryGroupIndex = manualAssemblyCategoryGroupIndex + }); + } + + protected override void AddDataGridColumns() + { + FailureMechanismSectionResultViewColumnBuilder.AddSectionNameColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.Name)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssessmentResultColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.SimpleAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssessmentResultColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.TailorMadeAssessmentResult)); + + FailureMechanismSectionResultViewColumnBuilder.AddSimpleAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.SimpleAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddTailorMadeAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.TailorMadeAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddCombinedAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.CombinedAssemblyCategoryGroup)); + + FailureMechanismSectionResultViewColumnBuilder.AddUseManualAssemblyColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.UseManualAssembly)); + + FailureMechanismSectionResultViewColumnBuilder.AddManualAssemblyCategoryGroupColumn( + DataGridViewControl, + nameof(WaterPressureAsphaltCoverSectionResultRow.ManualAssemblyCategoryGroup)); + } + + protected override void UpdateAssemblyResultControl() + { + FailureMechanismAssemblyResultControl.SetAssemblyResult(WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(FailureMechanism, true)); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Riskeer.Integration.Forms/packages.config =================================================================== diff -u --- Ringtoets/Integration/src/Riskeer.Integration.Forms/packages.config (revision 0) +++ Ringtoets/Integration/src/Riskeer.Integration.Forms/packages.config (revision 0585edaba71d05905dd6196ded7356dbd5155214) @@ -0,0 +1,25 @@ + + + + \ No newline at end of file