#if FRAMEWORK20 using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; namespace DevComponents.DotNetBar.Validator { public class RangeValidator : ValidatorBase { #region Constructors /// /// Initializes a new instance of the RangeValidator class. /// public RangeValidator() { } /// /// Initializes a new instance of the RangeValidator class. /// public RangeValidator(string errorMessage, object minimumValue, object maximumValue) { this.ErrorMessage = errorMessage; this.MinimumValue = minimumValue; this.MaximumValue = maximumValue; } /// /// Initializes a new instance of the RangeValidator class. /// public RangeValidator(string errorMessage, string optionalValidationGroup, object minimumValue, object maximumValue) { this.ErrorMessage = errorMessage; this.OptionalValidationGroup = optionalValidationGroup; this.MinimumValue = minimumValue; this.MaximumValue = maximumValue; } #endregion #region Implementation public override bool Validate(System.Windows.Forms.Control input) { if (_MaximumValue == null && _MinimumValue == null) return true; object value = GetControlValue(input); if (value == null) { if (_MinimumValue == null) return true; return false; } if(value == "" && _IsEmptyStringValid) return true; bool isMinimumValid = true; if (_MinimumValue != null) { isMinimumValid = CompareValidator.Compare(value, _MinimumValue, eValidationCompareOperator.GreaterThanEqual); if (!isMinimumValid) return false; } bool isMaximumValid = true; if (_MaximumValue != null) { isMaximumValid = CompareValidator.Compare(value, _MaximumValue, eValidationCompareOperator.LessThanEqual); } this.LastValidationResult = isMinimumValid & isMaximumValid; return this.LastValidationResult; } private object _MaximumValue = null; /// /// Gets or sets the maximum value control may have. /// [DefaultValue((string)null), Category("Behavior"), Description("Indicates maximum value control may have."), TypeConverter(typeof(StringConverter))] public object MaximumValue { get { return _MaximumValue; } set { _MaximumValue = value; } } private object _MinimumValue = null; /// /// Gets or sets the minimum value control may have. /// [DefaultValue((string)null), Category("Behavior"), Description("Indicates minimum value control may have."), TypeConverter(typeof(StringConverter))] public object MinimumValue { get { return _MinimumValue; } set { _MinimumValue = value; } } private bool _IsEmptyStringValid = false; /// /// Indicates whether empty string of zero length is considered valid input. /// [DefaultValue(false), Category("Behavior"), Description("Indicates whether empty string of zero length is considered valid input.")] public bool IsEmptyStringValid { get { return _IsEmptyStringValid; } set { _IsEmptyStringValid = value; } } #endregion } } #endif