Index: src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs
===================================================================
diff -u -r405 -r417
--- src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 405)
+++ src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 417)
@@ -971,6 +971,7 @@
};
mainForm.RegisterTableControl(typeof(Soil), materialsTable, "Materials");
BindSupport.Bind(projectPanel, materialsTable, typeof(DSoilModelProject), "Soils.Soils");
+ materialsTable.CanDelete += CanDelete;
var cptsTable = new GridViewControl
{
@@ -1077,6 +1078,33 @@
mainForm.DynamicOutputControl.LogMessagesGridViewControl.ShowToolbar = true;
}
+ private void LogErrorCannotDelete(IName objToDelete, IName objUses)
+ {
+ var formattedErrorStr = LocalizationManager.GetTranslatedText(this, "CannotDeleteObjectThatInUse");
+ // Cannot delete {0} [{1}] because it's used in {2} [{3}]"
+ var msg = string.Format(formattedErrorStr, objToDelete.Name, objToDelete.GetType().Name, objUses.Name, objUses.GetType().Name);
+ LogManager.Add(new LogMessage(LogMessageType.Error, objUses, msg));
+ }
+
+ private bool CanDelete(object o)
+ {
+ var result = true;
+ var soil = o as Soil;
+ if (soil != null)
+ {
+ foreach (var sp1d in project.SoilProfiles1D)
+ {
+ if (sp1d.Layers.Any(l => l.Soil == o))
+ {
+ LogErrorCannotDelete(soil, sp1d);
+ result = false;
+ }
+ }
+ }
+
+ return result;
+ }
+
private void RemoveBarButtonItem(GridViewControl gridViewTable, string buttonName)
{
var manager = gridViewTable.Toolbar.Manager;
Index: src/Deltares.DSoilModel.Forms/Translations.xml
===================================================================
diff -u -r342 -r417
--- src/Deltares.DSoilModel.Forms/Translations.xml (.../Translations.xml) (revision 342)
+++ src/Deltares.DSoilModel.Forms/Translations.xml (.../Translations.xml) (revision 417)
@@ -92,4 +92,6 @@
+
+