Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -r58e63d129c58c0247ce8918486f4e68120876bd9 -r673bf2f4f4de6006444aae3a10183f9442eb0f23 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 58e63d129c58c0247ce8918486f4e68120876bd9) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 673bf2f4f4de6006444aae3a10183f9442eb0f23) @@ -19,13 +19,16 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; using Core.Common.Base; +using Core.Common.Base.Service; using Core.Common.Controls.TreeView; +using Core.Common.Controls.TreeView.Properties; using Core.Common.Gui.ContextMenu; using Core.Common.Gui.Forms; using Core.Common.Gui.Forms.ProgressDialog; @@ -239,14 +242,7 @@ ForeColor = stochasticSoilModelContext => stochasticSoilModelContext.WrappedData.Any() ? Color.FromKnownColor(KnownColor.ControlText) : Color.FromKnownColor(KnownColor.GrayText), ChildNodeObjects = stochasticSoilModelContext => stochasticSoilModelContext.WrappedData.Cast().ToArray(), - ContextMenuStrip = (nodeData, parentData, treeViewControl) => Gui.Get(nodeData, treeViewControl) - .AddImportItem() - .AddSeparator() - .AddDeleteChildrenItem() - .AddSeparator() - .AddCollapseAllItem() - .AddExpandAllItem() - .Build() + ContextMenuStrip = StochasticSoilModelCollectionContextContextMenuStrip() }; yield return new TreeNodeInfo @@ -494,6 +490,43 @@ return null; } + #region StochasticSoilModelCollectionContext TreeNodeInfo + + private Func StochasticSoilModelCollectionContextContextMenuStrip() + { + return (nodeData, parentData, treeViewControl) => Gui.Get(nodeData, treeViewControl) + .AddImportItem() + .AddCustomItem( + CreateUpdateStochasticSoilModelsItem(nodeData.WrappedData)) + .AddSeparator() + .AddDeleteChildrenItem() + .AddSeparator() + .AddCollapseAllItem() + .AddExpandAllItem() + .Build(); + } + + private StrictContextMenuItem CreateUpdateStochasticSoilModelsItem(StochasticSoilModelCollection nodeDataWrappedData) + { + return new StrictContextMenuItem( + "&Bijwerken...", + "Werk de reeds bekende lijst van stochastische ondergrondmodellen bij.", + PipingPluginResources.RefreshIcon, + (sender, args) => + { + var importer = new StochasticSoilModelImporter(nodeDataWrappedData, + nodeDataWrappedData.SourcePath, + new StochasticSoilModelUpdateData()); + var activity = new FileImportActivity(importer, "Bijwerken van stochastische ondergrondmodellen."); + ActivityProgressDialogRunner.Run(Gui.MainWindow, activity); + }) + { + Enabled = nodeDataWrappedData.SourcePath != null + }; + } + + #endregion + #region RingtoetsPipingSurfaceLine TreeNodeInfo private static bool CanRemoveSurfaceLine(RingtoetsPipingSurfaceLine nodeData, object parentData)