using System;
using CMS.ExtendedControls;
using CMS.FormEngine;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.UIControls;
public partial class CMSModules_AdminControls_Controls_Class_FieldEditor_ValidationSettings : CMSUserControl
{
#region "Variables"
private string mAttributeType;
private string mFieldType;
private FieldEditorModeEnum mMode = FieldEditorModeEnum.General;
#endregion
#region "Properties"
///
/// Type of current attribute.
///
public string AttributeType
{
get
{
return !String.IsNullOrEmpty(mAttributeType) ? mAttributeType.ToLowerCSafe() : "";
}
set
{
mAttributeType = value;
}
}
///
/// Type of current field.
///
public string FieldType
{
get
{
return !String.IsNullOrEmpty(mFieldType) ? mFieldType.ToLowerCSafe() : "";
}
set
{
mFieldType = value;
}
}
///
/// Gets or sets value indicating if current item is primary.
///
public bool IsPrimary
{
get;
set;
}
///
/// Field editor mode.
///
public FieldEditorModeEnum Mode
{
get
{
return mMode;
}
set
{
mMode = value;
}
}
///
/// FormFieldInfo of given field.
///
public FormFieldInfo FieldInfo
{
get;
set;
}
///
/// Gets value set in Minimum length textbox.
///
public string MinLengthText
{
get
{
return txtMinLength.Text.Trim();
}
}
///
/// Gets value set in Maximum length textbox.
///
public string MaxLengthText
{
get
{
return txtMaxLength.Text.Trim();
}
}
///
/// Gets value set in Minimum value textbox.
///
public string MinValueText
{
get
{
return txtMinValue.Text.Trim();
}
}
///
/// Gets value set in Maximum value textbox.
///
public string MaxValueText
{
get
{
return txtMaxValue.Text.Trim();
}
}
///
/// Gets value indicating if Specll-check is checked.
///
public bool SpellCheck
{
get
{
return chkSpellCheck.Checked;
}
}
///
/// Gets value which is contained in Regular expression textbox.
///
public string RegularExpression
{
get
{
return txtRegExpr.Text.Trim();
}
}
///
/// Gets value which indicates which value is selected in 'Date from' control.
///
public DateTime DateFrom
{
get
{
return dateFrom.SelectedDateTime;
}
}
///
/// Gets value which indicates which value is selected in 'Date to' control .
///
public DateTime DateTo
{
get
{
return dateTo.SelectedDateTime;
}
}
///
/// Gets value which is contained in Error message textbox.
///
public string ErrorMessage
{
get
{
return txtErrorMessage.Text.Trim();
}
}
#endregion
#region "Methods"
public void Page_Load(object sender, EventArgs e)
{
pnlSectionValidation.GroupingText = GetString("TemplateDesigner.Section.Validation");
}
///
/// Show validation options according to selected attribute type.
///
public void Reload()
{
if (FieldInfo != null)
{
chkSpellCheck.Checked = FieldInfo.SpellCheck;
if (pnlSectionValidation.Visible)
{
// Validation section
txtRegExpr.Text = FieldInfo.RegularExpression;
switch (FieldInfo.DataType)
{
case FormFieldDataTypeEnum.Integer:
txtMinValue.Text = ValidationHelper.IsInteger(FieldInfo.MinValue) ? FieldInfo.MinValue : "";
txtMaxValue.Text = ValidationHelper.IsInteger(FieldInfo.MaxValue) ? FieldInfo.MaxValue : "";
break;
case FormFieldDataTypeEnum.LongInteger:
txtMinValue.Text = ValidationHelper.IsLong(FieldInfo.MinValue) ? FieldInfo.MinValue : "";
txtMaxValue.Text = ValidationHelper.IsLong(FieldInfo.MaxValue) ? FieldInfo.MaxValue : "";
break;
case FormFieldDataTypeEnum.Decimal:
txtMinValue.Text = ValidationHelper.IsDouble(FieldInfo.MinValue) ? FieldInfo.MinValue : "";
txtMaxValue.Text = ValidationHelper.IsDouble(FieldInfo.MaxValue) ? FieldInfo.MaxValue : "";
break;
}
txtMinLength.Text = (FieldInfo.MinStringLength > -1) ? Convert.ToString(FieldInfo.MinStringLength) : "";
txtMaxLength.Text = (FieldInfo.MaxStringLength > -1) ? Convert.ToString(FieldInfo.MaxStringLength) : "";
dateFrom.SelectedDateTime = FieldInfo.MinDateTimeValue;
dateTo.SelectedDateTime = FieldInfo.MaxDateTimeValue;
txtErrorMessage.Text = FieldInfo.ValidationErrorMessage;
}
}
else
{
chkSpellCheck.Checked = true;
txtRegExpr.Text = null;
txtMinLength.Text = null;
txtMaxLength.Text = null;
txtMinValue.Text = null;
txtMaxValue.Text = null;
dateFrom.SelectedDateTime = DateTimePicker.NOT_SELECTED;
dateTo.SelectedDateTime = DateTimePicker.NOT_SELECTED;
txtErrorMessage.Text = null;
}
}
///
/// Displays controls according to current field settings.
///
public void DisplayControls()
{
Visible = true;
plcMinMaxLengthValidation.Visible = true;
if (!IsPrimary)
{
switch (AttributeType)
{
case "text":
case "longtext":
pnlSectionValidation.Visible = true;
plcTextValidation.Visible = true;
plcErrorMessageValidation.Visible = true;
if (Mode == FieldEditorModeEnum.ClassFormDefinition)
{
plcSpellCheck.Visible = true;
}
plcDateTimeValidation.Visible = false;
plcNumberValidation.Visible = false;
Visible = true;
break;
case "datetime":
pnlSectionValidation.Visible = true;
plcDateTimeValidation.Visible = true;
plcErrorMessageValidation.Visible = true;
plcTextValidation.Visible = false;
plcNumberValidation.Visible = false;
plcSpellCheck.Visible = false;
Visible = true;
break;
case "integer":
case "longinteger":
case "double":
pnlSectionValidation.Visible = true;
plcNumberValidation.Visible = true;
plcErrorMessageValidation.Visible = true;
plcTextValidation.Visible = false;
plcDateTimeValidation.Visible = false;
plcSpellCheck.Visible = false;
Visible = true;
break;
case "guid":
pnlSectionValidation.Visible = true;
plcNumberValidation.Visible = false;
plcErrorMessageValidation.Visible = true;
plcTextValidation.Visible = false;
plcDateTimeValidation.Visible = false;
plcSpellCheck.Visible = false;
Visible = true;
break;
default:
Visible = false;
break;
}
}
else
{
Visible = false;
}
string loweredFieldType = FieldType.ToLowerCSafe();
// Hide Min max length for selection controls
if ((loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.DropDownListControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.RadioButtonsControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.MultipleChoiceControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.ListBoxControl).ToLowerCSafe()))
{
plcMinMaxLengthValidation.Visible = false;
}
// Hide the whole validation section
else if ((loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.ImageSelectionControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.FileSelectionControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.MediaSelectionControl).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.SelectColumns).ToLowerCSafe()) ||
(loweredFieldType == Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.EncryptedPassword).ToLowerCSafe()))
{
pnlSectionValidation.Visible = false;
}
if (!plcTextValidation.Visible && !plcErrorMessageValidation.Visible && !plcDateTimeValidation.Visible && !plcNumberValidation.Visible && !plcSpellCheck.Visible)
{
Visible = false;
}
}
#endregion
}