Hello. Could you help me, please?
I don't see DefaultValue annotations for elements of interface.
As example I see "DatePopupButtonToolTip" instead of the annotation [DefaultValue("Open the calendar popup.")]
public class DateTimePicker : RadDateTimePicker
{
private DateTimePicker.BDDatePickingCalendar _calendar;
private DateTimePicker.BDRadDateInput _dateInput;
public override RadCalendar Calendar
{
get
{
if (_calendar == null)
{
_calendar = new DateTimePicker.BDDatePickingCalendar();
}
return _calendar;
}
}
public override RadDateInput DateInput
{
get
{
if (_dateInput == null)
{
_dateInput = new DateTimePicker.BDRadDateInput();
}
return _dateInput;
}
}
public override DateTime? SelectedDate
{
get
{
return DateInput.SelectedDate;
}
set
{
base.SelectedDate = value;
DateInput.SelectedDate = value;
}
}
private class BDRadDateInput : RadDateInput
{
private string GetClientControlType()
{
Attribute clientScriptResource = TypeDescriptor.GetAttributes(this)[typeof(ClientScriptResourceAttribute)];
return ((ClientScriptResourceAttribute)clientScriptResource).ComponentType;
}
protected override IEnumerable<
ScriptDescriptor
> GetScriptDescriptors()
{
var descriptor = new DateTimePicker.BDControlScriptDescriptor(GetClientControlType(), ClientID);
((IControl)this).DescribeComponent(descriptor);
return new List<
ScriptDescriptor
>(new ScriptDescriptor[] { descriptor });
}
}
private class BDDatePickingCalendar : DatePickingCalendar
{
private string GetClientControlType()
{
Attribute clientScriptResource = TypeDescriptor.GetAttributes(this)[typeof(ClientScriptResourceAttribute)];
return ((ClientScriptResourceAttribute)clientScriptResource).ComponentType;
}
protected override IEnumerable<
ScriptDescriptor
> GetScriptDescriptors()
{
var descriptor = new DateTimePicker.BDControlScriptDescriptor(GetClientControlType(), ClientID);
((IControl)this).DescribeComponent(descriptor);
return new List<
ScriptDescriptor
>(new ScriptDescriptor[] { descriptor });
}
}
private class BDControlScriptDescriptor : ScriptControlDescriptor, IScriptDescriptor
{
public BDControlScriptDescriptor(string type, string elementID)
: base(type, elementID)
{
}
protected override string GetScript()
{
return base.GetScript().Replace(@" ", " ");
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
EnableAjaxSkinRendering = true;
Calendar.EnableAjaxSkinRendering = true;
DateInput.EnableAjaxSkinRendering = true;
}
}