Index: DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs
===================================================================
diff -u -r6436 -r6656
--- DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs (.../DamContext.cs) (revision 6436)
+++ DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs (.../DamContext.cs) (revision 6656)
@@ -49,6 +49,22 @@
public bool Wti { get; set; } = true;
///
+ /// Returns a flag to indicate that this property must be validated
+ ///
+ /// The source
+ /// The member
+ /// the flag
+ public override bool? ShouldValidate(object source, string member)
+ {
+ if (source is Soil soil)
+ {
+ return ShouldValidateSoil(member, soil);
+ }
+
+ return base.ShouldValidate(source, member);
+ }
+
+ ///
/// Method indicating a visibility override value for a given instance object.
///
/// Object being evaluated.
@@ -121,11 +137,6 @@
}
bool? isVisible = base.IsVisible(source, member);
- if (member.Equals("Cohesion"))
- {
- return true;
- }
-
if (isVisible != null && isVisible.Value)
{
return true;
@@ -189,6 +200,12 @@
{
return soil.ShearStrengthModel == ShearStrengthModel.CuCalculated;
}
+
+ if (member == StaticReflection.GetMemberName(s => s.Cohesion) ||
+ member == StaticReflection.GetMemberName(s => s.FrictionAngle))
+ {
+ return soil.ShearStrengthModel == ShearStrengthModel.CPhi;
+ }
return true;
}
@@ -266,6 +283,24 @@
return base.GetFormat(type, source, member);
}
+ private static bool ShouldValidateSoil(string member, Soil soil)
+ {
+ if (member == StaticReflection.GetMemberName(s => s.POP) ||
+ member == StaticReflection.GetMemberName(s => s.RatioCuPc) ||
+ member == StaticReflection.GetMemberName(s => s.StrengthIncreaseExponent))
+ {
+ return soil.ShearStrengthModel == ShearStrengthModel.CuCalculated;
+ }
+
+ if (member == StaticReflection.GetMemberName(s => s.Cohesion) ||
+ member == StaticReflection.GetMemberName(s => s.FrictionAngle))
+ {
+ return soil.ShearStrengthModel == ShearStrengthModel.CPhi;
+ }
+
+ return true;
+ }
+
private bool? VisibleAccordingSoilUserFilter(string member)
{
if (alwaysVisibleProperties.Contains(member))