Index: src/Deltares.DSoilModel.Forms/DSoilModelContext.cs =================================================================== diff -u -r647 -r652 --- src/Deltares.DSoilModel.Forms/DSoilModelContext.cs (.../DSoilModelContext.cs) (revision 647) +++ src/Deltares.DSoilModel.Forms/DSoilModelContext.cs (.../DSoilModelContext.cs) (revision 652) @@ -413,6 +413,19 @@ } } + var geometryEditor = source as GeometryEditor; + if (geometryEditor != null) + { + if (member == "DeleteSelectedObjects") + { + var selection = geometryEditor.SpatialEditor.EmptySelection; + if (selection != null && (selection.DataObject is ConePenetrationTestData || selection.DataObject is Boring)) + { + return false; + } + } + } + return base.IsEnabled(source, member); } @@ -524,7 +537,6 @@ { return ParameterView != ParameterViewSettings.ProbabilisticParameters; } - return null; } } Index: src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs =================================================================== diff -u -r647 -r652 --- src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs (.../DSoilModelContextTest.cs) (revision 647) +++ src/Deltares.DSoilModel.Forms.Tests/DSoilModelContextTest.cs (.../DSoilModelContextTest.cs) (revision 652) @@ -8,6 +8,7 @@ using Deltares.Geotechnics.Mechanisms; using Deltares.Standard; using Deltares.Standard.Attributes; +using Deltares.Standard.Forms; using Deltares.Standard.Forms.DExpress; using Deltares.Standard.Reflection; using NUnit.Framework; @@ -472,11 +473,27 @@ [TestCase(typeof(CharacteristicPoint), "X", false)] [TestCase(typeof(CharacteristicPoint), "Z", false)] - public void IsEnabledTest(Type senderType, string memberName, bool expectedVisible) + public void IsEnabledTest(Type senderType, string memberName, bool? expectedVisible) { var sender = Activator.CreateInstance(senderType); var context = new DSoilModelContext(); Assert.AreEqual(expectedVisible, context.IsEnabled(sender, memberName)); } + + [TestCase(typeof(ConePenetrationTestData))] + [TestCase(typeof(Boring))] + public void DisableDeletingSelectedObjectInGeometryEditor(Type selectedType) + { + var geometryEditor = new GeometryEditor(); + var context = new DSoilModelContext(); + + // response depends on selected object in geometry editor + Assert.AreEqual(null, context.IsEnabled(geometryEditor, "DeleteSelectedObjects")); + + var selection = Activator.CreateInstance(selectedType); + geometryEditor.SpatialEditor.EmptySelection = new Shape { DataObject = selection }; + + Assert.AreEqual(false, context.IsEnabled(geometryEditor, "DeleteSelectedObjects")); + } } }