Index: src/Common/DelftTools.Controls.Swf/DataEditorGenerator/Metadata/FieldUIDescription.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/Common/DelftTools.Controls.Swf/DataEditorGenerator/Metadata/FieldUIDescription.cs (.../FieldUIDescription.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/Common/DelftTools.Controls.Swf/DataEditorGenerator/Metadata/FieldUIDescription.cs (.../FieldUIDescription.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -4,90 +4,104 @@ { public class FieldUIDescription { - public FieldUIDescription(Func getValueFunc, Action setValueFunc, - Func isEnabledFunc = null, Func isVisibleFunc = null, Func validationMethod = null) - { - this.getValueFunc = getValueFunc; - this.setValueFunc = setValueFunc; - this.isEnabledFunc = isEnabledFunc; - this.isVisibleFunc = isVisibleFunc; - this.validationMethod = validationMethod; - } + private readonly Func getValueFunc; + private readonly Action setValueFunc; + private readonly Func isEnabledFunc; + private readonly Func isVisibleFunc; public ICustomControlHelper CustomControlHelper; public string Name; public string Category; public string SubCategory; public string Label; - + public string ToolTip; public string DocUrl; public bool IsReadOnly; public Type ValueType; public bool AlwaysRefresh; - + //more.. eg Unit, etc public string UnitSymbol; - private readonly Func getValueFunc; - private readonly Action setValueFunc; - private readonly Func isEnabledFunc; - private readonly Func isVisibleFunc; - private Func validationMethod; - - public Func ValidationMethod + public FieldUIDescription(Func getValueFunc, Action setValueFunc, + Func isEnabledFunc = null, Func isVisibleFunc = null, Func validationMethod = null) { - get { return validationMethod; } - set { validationMethod = value; } + this.getValueFunc = getValueFunc; + this.setValueFunc = setValueFunc; + this.isEnabledFunc = isEnabledFunc; + this.isVisibleFunc = isVisibleFunc; + this.ValidationMethod = validationMethod; } + public Func ValidationMethod { get; set; } + public bool HasDependencyFunctions { - get { return isEnabledFunc != null || isVisibleFunc != null; } + get + { + return isEnabledFunc != null || isVisibleFunc != null; + } } public object GetValue(object data) { if (getValueFunc == null) + { throw new InvalidOperationException(); + } return getValueFunc(data); } public void SetValue(object data, object value) { if (IsReadOnly) + { throw new InvalidOperationException("readonly"); + } if (setValueFunc == null) + { throw new InvalidOperationException("setter not set"); + } setValueFunc(data, value); } public bool IsEnabled(object data) { if (IsReadOnly) + { return false; + } if (isEnabledFunc == null) + { return true; + } return isEnabledFunc(data); } public bool IsVisible(object data) { if (IsReadOnly) + { return false; + } if (isVisibleFunc == null) + { return true; + } return isVisibleFunc(data); } public bool Validate(object data, object value, out string message) { message = ""; if (ValidationMethod == null) + { return true; + } message = ValidationMethod(data, value); return string.IsNullOrEmpty(message);