_script = source.getScript(location);
}
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
{
IForm form = getForm(cycle);
if (form.wasPrerendered(writer, this))
return;
String name = form.getElementId(this);
String format = getFormat();
if (format == null)
format = "dd MMM yyyy";
SimpleDateFormat formatter = new SimpleDateFormat(format, getPage().getLocale());
boolean disabled = isDisabled();
if (!cycle.isRewinding())
{
PageRenderSupport pageRenderSupport = TapestryUtils.getPageRenderSupport(cycle, this);
Locale locale = getPage().getLocale();
DateFormatSymbols dfs = new DateFormatSymbols(locale);
Calendar cal = Calendar.getInstance(locale);
Date value = getValue();
Map symbols = new HashMap();
symbols.put(SYM_NAME, name);
symbols.put(SYM_FORMAT, format);
symbols.put(SYM_INCL_WEEK, getIncludeWeek() ? Boolean.TRUE : Boolean.FALSE);
symbols.put(SYM_MONTHNAMES, makeStringList(dfs.getMonths(), 0, 12));
symbols.put(SYM_SHORT_MONTHNAMES, makeStringList(dfs.getShortMonths(), 0, 12));
symbols.put(SYM_WEEKDAYNAMES, makeStringList(dfs.getWeekdays(), 1, 8));
symbols.put(SYM_SHORT_WEEKDAYNAMES, makeStringList(dfs.getShortWeekdays(), 1, 8));
symbols.put(SYM_FIRSTDAYINWEEK, new Integer(cal.getFirstDayOfWeek() - 1));
symbols.put(SYM_MINDAYSINFIRSTWEEK, new Integer(cal.getMinimalDaysInFirstWeek()));
symbols.put(SYM_FORMNAME, form.getName());
symbols.put(SYM_VALUE, value);
_script.execute(cycle, pageRenderSupport, symbols);
writer.beginEmpty("input");
writer.attribute("type", "text");
writer.attribute("name", name);
writer.attribute("title", formatter.toLocalizedPattern());
if (value != null)
writer.attribute("value", formatter.format(value));
if (disabled)
writer.attribute("disabled", "disabled");
renderInformalParameters(writer, cycle);
writer.printRaw(" ");
if (!disabled)
{
writer.begin("a");
writer.attribute("href", (String) symbols.get(SYM_BUTTONONCLICKHANDLER));
}
IAsset icon = getIcon();
writer.beginEmpty("img");
writer.attribute("src", icon.buildURL(cycle));
writer.attribute("border", 0);
if (!disabled)
writer.end(); // <a>
}
if (form.isRewinding())
{
if (disabled)
return;
String textValue = cycle.getParameter(name);