Index: src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs =================================================================== diff -u -r157 -r220 --- src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 157) +++ src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 220) @@ -360,7 +360,8 @@ case "SoilSegmentsShapeImport": // needs soilprofiles + segment csv return (project != null && project.SoilSegments.Count > 0 && (project.SoilProfiles1D.Count > 0 || project.SoilProfiles2D.Count > 0)); - + case "ExecuteClearGeometryCommand": + return GeometryEditor.SpatialEditor.EmptySelection != null; default: return true; } @@ -772,6 +773,15 @@ }); BindSupport.Bind(pluginPanel, importOldProjectItemMenuItem, p => p.OldProjectImport()); } + + + var clearGeometryMenuItem = new BarButtonItem + { + Caption = LocalizationManager.GetTranslatedText(this, "Clear geometry"), + Name = "clearGeometryMenuItem" + }; + mainForm.EditMenu.AddItems(new BarItem[] { clearGeometryMenuItem }); + BindSupport.Bind(pluginPanel, clearGeometryMenuItem, p => p.ExecuteClearGeometryCommand()); } private void FilmStripContainer_OnSizeChanged(object sender, EventArgs e) @@ -1836,5 +1846,20 @@ filmStrip.Refresh(false); } + + private void ExecuteClearGeometryCommand() + { + var selected = (GeometryEditor.SpatialEditor.EmptySelection.DataObject as SoilProfile2D); + if (selected == null) + { + return; + } + selected.Geometry.Clear(); + selected.Surfaces.Clear(); + + DataEventPublisher.DataListModified(selected.Geometry.Points); + DataEventPublisher.DataListModified(selected.Geometry.Curves); + DataEventPublisher.DataListModified(selected.Surfaces); + } } } \ No newline at end of file