110 lines
3.7 KiB
C#

#if FRAMEWORK20
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace DevComponents.DotNetBar.Validator
{
public class RangeValidator : ValidatorBase
{
#region Constructors
/// <summary>
/// Initializes a new instance of the RangeValidator class.
/// </summary>
public RangeValidator()
{
}
/// <summary>
/// Initializes a new instance of the RangeValidator class.
/// </summary>
public RangeValidator(string errorMessage, object minimumValue, object maximumValue)
{
this.ErrorMessage = errorMessage;
this.MinimumValue = minimumValue;
this.MaximumValue = maximumValue;
}
/// <summary>
/// Initializes a new instance of the RangeValidator class.
/// </summary>
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;
/// <summary>
/// Gets or sets the maximum value control may have.
/// </summary>
[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;
/// <summary>
/// Gets or sets the minimum value control may have.
/// </summary>
[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;
/// <summary>
/// Indicates whether empty string of zero length is considered valid input.
/// </summary>
[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