using System;
using CMS.FormControls;
using CMS.GlobalHelper;
public partial class CMSModules_Content_FormControls_Relationships_RelationshipConfiguration : FormEngineUserControl
{
#region "Public properties"
///
/// Gets or sets the enabled state of the control.
///
public override bool Enabled
{
get
{
return base.Enabled;
}
set
{
base.Enabled = value;
radCurrentDoc.Enabled = value;
radNoRel.Enabled = value;
radDocWithNodeID.Enabled = value;
txtNodeID.Enabled = value;
}
}
///
/// Gets or sets field value.
///
public override object Value
{
get
{
if (radNoRel.Checked)
{
return Guid.Empty;
}
if (radCurrentDoc.Checked)
{
return new Guid("11111111-1111-1111-1111-111111111111");
}
return txtNodeID.Text;
}
set
{
// No relationship
if (ValidationHelper.GetGuid(value, Guid.Empty) == Guid.Empty)
{
radNoRel.Checked = true;
radCurrentDoc.Checked = false;
radDocWithNodeID.Checked = false;
txtNodeID.Enabled = false;
}
else // Relationship with curren document
{
if (ValidationHelper.GetGuid(value, Guid.Empty) == new Guid("11111111-1111-1111-1111-111111111111"))
{
radCurrentDoc.Checked = true;
radNoRel.Checked = false;
radDocWithNodeID.Checked = false;
txtNodeID.Enabled = false;
}
else // Selected relationship GUID
{
radDocWithNodeID.Checked = true;
radNoRel.Checked = false;
radCurrentDoc.Checked = false;
txtNodeID.Enabled = true;
txtNodeID.Text = Convert.ToString(value);
}
}
}
}
///
/// Gets ClientID of the textbox with relationship guid.
///
public override string ValueElementID
{
get
{
return txtNodeID.ClientID;
}
}
///
/// Returns true if user control is valid.
///
public override bool IsValid()
{
if ((!radDocWithNodeID.Checked) || ((radDocWithNodeID.Checked) && (ValidationHelper.IsGuid(txtNodeID.Text))))
{
return true;
}
else
{
ValidationError = GetString("RelationshipConfiguration.ValidationError");
return false;
}
}
#endregion
#region "Page events"
///
/// Page load.
///
protected void Page_Load(object sender, EventArgs e)
{
if (!RequestHelper.IsPostBack())
{
radNoRel.Checked = true;
}
// Initialize javascript functionality
radNoRel.Attributes.Add("OnClick", "RadiobuttonChange()");
radCurrentDoc.Attributes.Add("OnClick", "RadiobuttonChange()");
radDocWithNodeID.Attributes.Add("OnClick", "RadiobuttonChange()");
ltlScript.Text = ScriptHelper.GetScript("var radValueElem = document.getElementById('" + radDocWithNodeID.ClientID + "');" + " var txtValueElem = document.getElementById('" + txtNodeID.ClientID + "');");
// Enable/diable textbox
txtNodeID.Enabled = radDocWithNodeID.Checked;
}
#endregion
}