Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsMapDataFeaturesFactory.cs =================================================================== diff -u -r16559315c0a64fffd05827d249200c62e353231f -rdf5853e34e5c42f878c5ceccdada111743837ba4 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsMapDataFeaturesFactory.cs (.../RingtoetsMapDataFeaturesFactory.cs) (revision 16559315c0a64fffd05827d249200c62e353231f) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Factories/RingtoetsMapDataFeaturesFactory.cs (.../RingtoetsMapDataFeaturesFactory.cs) (revision df5853e34e5c42f878c5ceccdada111743837ba4) @@ -100,11 +100,16 @@ /// /// The /// to create the location features for. - /// A collection of features or an empty collection when - /// is null. + /// A collection of features. + /// Thrown when is null. public static IEnumerable CreateHydraulicBoundaryDatabaseFeatures(HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { - return CreateHydraulicBoundaryLocationFeatures(hydraulicBoundaryDatabase?.Locations.ToArray() ?? new HydraulicBoundaryLocation[0], + if (hydraulicBoundaryDatabase == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); + } + + return CreateHydraulicBoundaryLocationFeatures(hydraulicBoundaryDatabase.Locations.ToArray(), Resources.DesignWaterLevel_DisplayName, Resources.MetaData_WaveHeight); } Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -rffba5900acc192187346a9ad73acea5e8b9d0bf5 -rdf5853e34e5c42f878c5ceccdada111743837ba4 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision ffba5900acc192187346a9ad73acea5e8b9d0bf5) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision df5853e34e5c42f878c5ceccdada111743837ba4) @@ -372,7 +372,7 @@ yield return new ViewInfo, DesignWaterLevelLocationsView> { GetViewName = (view, context) => RingtoetsFormsResources.DesignWaterLevelLocationsContext_DisplayName, - GetViewData = context => context.WrappedData.HydraulicBoundaryDatabase?.Locations, + GetViewData = context => context.WrappedData.HydraulicBoundaryDatabase.Locations, Image = RingtoetsCommonFormsResources.GenericInputOutputIcon, CloseForData = CloseHydraulicBoundaryLocationsViewForData, CreateInstance = context => new DesignWaterLevelLocationsView(context.WrappedData), @@ -382,7 +382,7 @@ yield return new ViewInfo, WaveHeightLocationsView> { GetViewName = (view, context) => RingtoetsFormsResources.WaveHeightLocationsContext_DisplayName, - GetViewData = context => context.WrappedData.HydraulicBoundaryDatabase?.Locations, + GetViewData = context => context.WrappedData.HydraulicBoundaryDatabase.Locations, Image = RingtoetsCommonFormsResources.GenericInputOutputIcon, CloseForData = CloseHydraulicBoundaryLocationsViewForData, CreateInstance = context => new WaveHeightLocationsView(context.WrappedData), @@ -516,7 +516,7 @@ CreateFileExporter = (context, filePath) => new HydraulicBoundaryLocationsExporter( context.WrappedData.HydraulicBoundaryDatabase.Locations, filePath, RingtoetsIntegrationPluginResources.DesignWaterLevel_Description, RingtoetsIntegrationPluginResources.WaveHeight_Description), - IsEnabled = context => context.WrappedData.HydraulicBoundaryDatabase != null, + IsEnabled = context => context.WrappedData.HydraulicBoundaryDatabase.IsCoupled(), FileFilterGenerator = new FileFilterGenerator(RingtoetsCommonIOResources.Shape_file_filter_Extension, RingtoetsCommonIOResources.Shape_file_filter_Description) }; @@ -654,9 +654,9 @@ { Text = hydraulicBoundaryDatabase => RingtoetsFormsResources.HydraulicBoundaryDatabase_DisplayName, Image = hydraulicBoundaryDatabase => RingtoetsCommonFormsResources.GenericInputOutputIcon, - ForeColor = context => context.WrappedData.HydraulicBoundaryDatabase == null - ? Color.FromKnownColor(KnownColor.GrayText) - : Color.FromKnownColor(KnownColor.ControlText), + ForeColor = context => context.WrappedData.HydraulicBoundaryDatabase.IsCoupled() + ? Color.FromKnownColor(KnownColor.ControlText) + : Color.FromKnownColor(KnownColor.GrayText), ChildNodeObjects = HydraulicBoundaryDatabaseChildNodeObjects, ContextMenuStrip = HydraulicBoundaryDatabaseContextMenuStrip }; @@ -1376,15 +1376,16 @@ private static object[] HydraulicBoundaryDatabaseChildNodeObjects(HydraulicBoundaryDatabaseContext nodeData) { - if (nodeData.WrappedData.HydraulicBoundaryDatabase == null) + if (nodeData.WrappedData.HydraulicBoundaryDatabase.IsCoupled()) { - return new object[0]; + return new object[] + { + new DesignWaterLevelLocationsContext(nodeData.WrappedData), + new WaveHeightLocationsContext(nodeData.WrappedData) + }; } - return new object[] - { - new DesignWaterLevelLocationsContext(nodeData.WrappedData), - new WaveHeightLocationsContext(nodeData.WrappedData) - }; + + return new object[0]; } private ContextMenuStrip DesignWaterLevelLocationsContextMenuStrip(DesignWaterLevelLocationsContext nodeData, object parentData, TreeViewControl treeViewControl) @@ -1523,29 +1524,25 @@ { HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; - bool isHydraulicBoundaryDatabaseSet = hydraulicBoundaryDatabase != null; - bool isClearConfirmationRequired = isHydraulicBoundaryDatabaseSet && !HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile); - bool isClearConfirmationGiven = isClearConfirmationRequired && IsClearCalculationConfirmationGiven(); - - if (isHydraulicBoundaryDatabaseSet && isClearConfirmationRequired && !isClearConfirmationGiven) + bool haveEqualVersion = HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile); + bool isClearConfirmationRequired = hydraulicBoundaryDatabase.IsCoupled() && !haveEqualVersion; + if (isClearConfirmationRequired && !IsClearCalculationConfirmationGiven()) { return; } - HydraulicBoundaryDatabase previousHydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; using (var hydraulicBoundaryLocationsImporter = new HydraulicBoundaryDatabaseImporter()) { if (hydraulicBoundaryLocationsImporter.Import(assessmentSection, databaseFile)) { - if (isClearConfirmationGiven) + if (isClearConfirmationRequired) { ClearCalculations(assessmentSection); } - if (!ReferenceEquals(previousHydraulicBoundaryDatabase, assessmentSection.HydraulicBoundaryDatabase)) + if (!haveEqualVersion) { - HydraulicBoundaryLocation[] hydraulicBoundaryLocations = assessmentSection.HydraulicBoundaryDatabase?.Locations.ToArray() - ?? new HydraulicBoundaryLocation[0]; + HydraulicBoundaryLocation[] hydraulicBoundaryLocations = assessmentSection.HydraulicBoundaryDatabase.Locations.ToArray(); assessmentSection.GrassCoverErosionOutwards.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(hydraulicBoundaryLocations); assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.NotifyObservers(); @@ -1556,6 +1553,7 @@ assessmentSection.DuneErosion.DuneLocations.NotifyObservers(); } + log.InfoFormat(RingtoetsFormsResources.RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked, assessmentSection.HydraulicBoundaryDatabase.FilePath); }