Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79 -rf690272ef922b7cefaac34021bceca21947004c0 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision f690272ef922b7cefaac34021bceca21947004c0) @@ -43,6 +43,7 @@ using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Forms; using Ringtoets.Common.Forms.ChangeHandlers; +using Ringtoets.Common.Forms.ExportInfos; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; @@ -71,7 +72,7 @@ yield return new PropertyInfo { CreateInstance = context => new ClosingStructuresInputContextProperties( - context, + context, new ObservablePropertyChangeHandler(context.Calculation, context.WrappedData)) }; } @@ -87,16 +88,16 @@ }; yield return new ViewInfo< - FailureMechanismSectionResultContext, - IEnumerable, - ClosingStructuresFailureMechanismResultView> - { - GetViewName = (view, results) => RingtoetsCommonFormsResources.FailureMechanism_AssessmentResult_DisplayName, - Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, - CloseForData = CloseFailureMechanismResultViewForData, - GetViewData = context => context.WrappedData, - AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism - }; + FailureMechanismSectionResultContext, + IEnumerable, + ClosingStructuresFailureMechanismResultView> + { + GetViewName = (view, results) => RingtoetsCommonFormsResources.FailureMechanism_AssessmentResult_DisplayName, + Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, + CloseForData = CloseFailureMechanismResultViewForData, + GetViewData = context => context.WrappedData, + AfterCreate = (view, context) => view.FailureMechanism = context.FailureMechanism + }; yield return new ViewInfo { @@ -200,6 +201,19 @@ }; } + public override IEnumerable GetExportInfos() + { + yield return RingtoetsExportInfoFactory.CreateCalculationGroupConfigurationExportInfo( + (context, filePath) => new ClosingStructuresCalculationConfigurationExporter(context.WrappedData.Children, filePath), + context => context.WrappedData.Children.Any()); + + yield return RingtoetsExportInfoFactory.CreateCalculationConfigurationExportInfo( + (context, filePath) => new ClosingStructuresCalculationConfigurationExporter(new[] + { + context.WrappedData + }, filePath)); + } + private static string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, IFailureMechanism failureMechanism) { if (failureMechanism.Contribution <= 0.0) @@ -447,6 +461,9 @@ var builder = new RingtoetsContextMenuBuilder(Gui.Get(context, treeViewControl)); var isNestedGroup = parentData is ClosingStructuresCalculationGroupContext; + builder.AddExportItem() + .AddSeparator(); + if (!isNestedGroup) { builder.AddCustomItem(CreateGenerateClosingStructuresCalculationsItem(context)) @@ -613,7 +630,9 @@ StructuresCalculation calculation = context.WrappedData; - return builder.AddRenameItem() + return builder.AddExportItem() + .AddSeparator() + .AddRenameItem() .AddValidateCalculationItem( context, ValidateAll,