Author: amarkhel
Date: 2010-10-19 12:05:14 -0400 (Tue, 19 Oct 2010)
New Revision: 19605
Added:
sandbox/trunk/ui/calendar/ui/src/main/java/org/
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/component/
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/component/AbstractCalendar.java
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/html/
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/html/images/
sandbox/trunk/ui/calendar/ui/src/main/resources/META-INF/resources/org.richfaces/calendar.ecss
Modified:
sandbox/trunk/ui/calendar/ui/pom.xml
sandbox/trunk/ui/calendar/ui/src/main/templates/calendar.template.xml
Log:
calendar renderer/ui/template initial commit
Modified: sandbox/trunk/ui/calendar/ui/pom.xml
===================================================================
--- sandbox/trunk/ui/calendar/ui/pom.xml 2010-10-19 12:56:00 UTC (rev 19604)
+++ sandbox/trunk/ui/calendar/ui/pom.xml 2010-10-19 16:05:14 UTC (rev 19605)
@@ -52,6 +52,10 @@
<artifactId>richfaces-core-api</artifactId>
</dependency>
<dependency>
+ <groupId>org.richfaces.core</groupId>
+ <artifactId>richfaces-core-impl</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.richfaces.ui.common</groupId>
<artifactId>richfaces-ui-common-ui</artifactId>
</dependency>
Added:
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/component/AbstractCalendar.java
===================================================================
---
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/component/AbstractCalendar.java
(rev 0)
+++
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/component/AbstractCalendar.java 2010-10-19
16:05:14 UTC (rev 19605)
@@ -0,0 +1,172 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+
+package org.richfaces.component;
+
+import java.util.Locale;
+import java.util.TimeZone;
+
+import javax.faces.component.UIInput;
+
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.JsfComponent;
+import org.richfaces.cdk.annotations.JsfRenderer;
+import org.richfaces.cdk.annotations.Tag;
+
+/**
+ * @author amarkhel
+ *
+ */
+
+@JsfComponent(
+ type = AbstractCalendar.COMPONENT_TYPE,
+ family = AbstractCalendar.COMPONENT_FAMILY,
+ generate = "org.richfaces.component.UICalendar",
+ renderer = @JsfRenderer(type = "org.richfaces.CalendarRenderer"),
+ tag = @Tag(name="calendar")
+)
+public abstract class AbstractCalendar extends UIInput{
+
+ public static final String COMPONENT_TYPE = "org.richfaces.Calendar";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
+
+ private static final String DEFAULT_TIME_PATTERN = "HH:mm";
+
+
+ @Attribute(defaultValue=DEFAULT_TIME_PATTERN)
+ public abstract String getDatePattern();
+
+ @Attribute
+ public abstract Object getLocale();
+
+ @Attribute
+ public abstract TimeZone getTimeZone();
+
+ @Attribute
+ public abstract boolean isDisabled();
+
+ @Attribute
+ public abstract boolean isShowInput();
+
+ @Attribute
+ public abstract boolean isPopup();
+
+ @Attribute
+ public abstract boolean isEnableManualInput();
+
+ @Attribute
+ public abstract String getTabindex();
+
+ @Attribute
+ public abstract String getInputStyle();
+
+ @Attribute
+ public abstract String getButtonClass();
+
+ @Attribute
+ public abstract String getInputClass();
+
+ @Attribute
+ public abstract String getButtonLabel();
+
+ @Attribute
+ public abstract String getInputSize();
+
+ @Attribute
+ public abstract Object getCurrentDate();
+
+ @Attribute
+ public abstract String getButtonIcon();
+
+ @Attribute
+ public abstract String getButtonIconDisabled();
+
+ @Attribute(events=@EventName("inputclick"))
+ public abstract String getOninputclick();
+
+ @Attribute(events=@EventName("inputdblclick"))
+ public abstract String getOninputdblclick();
+
+ @Attribute(events=@EventName("inputchange"))
+ public abstract String getOninputchange();
+
+ @Attribute(events=@EventName("inputselect"))
+ public abstract String getOninputselect();
+
+ @Attribute(events=@EventName("inputmousedown"))
+ public abstract String getOninputmousedown();
+
+ @Attribute(events=@EventName("inputmousemove"))
+ public abstract String getOninputmousemove();
+
+ @Attribute(events=@EventName("inputmouseout"))
+ public abstract String getOninputmouseout();
+
+ @Attribute(events=@EventName("inputmouseover"))
+ public abstract String getOninputmouseover();
+
+ @Attribute(events=@EventName("inputmouseup"))
+ public abstract String getOninputmouseup();
+
+ @Attribute(events=@EventName("inputkeydown"))
+ public abstract String getOninputkeydown();
+
+ @Attribute(events=@EventName("inputkeypress"))
+ public abstract String getOninputkeypress();
+
+ @Attribute(events=@EventName("inputkeyup"))
+ public abstract String getOninputkeypup();
+
+ @Attribute(events=@EventName("inputfocus"))
+ public abstract String getOninputfocus();
+
+ @Attribute(events=@EventName("inputblur"))
+ public abstract String getOninputblur();
+
+ public Locale getAsLocale(Object locale) {
+ /*
+ if (locale instanceof Locale) {
+ return (Locale) locale;
+
+ } else if (locale instanceof String) {
+
+ return parseLocale((String) locale);
+
+ } else {
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ Application application = context.getApplication();
+ Converter converter = application .createConverter(locale.getClass());
+ if (null != converter) {
+ return parseLocale(converter.getAsString(context, this, locale));
+ } else {
+ throw new FacesException(
+ "Wrong locale attibute type or there is no converter for
custom attibute type");
+ }
+ }*/
+ return null;
+ }
+
+}
Added:
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
===================================================================
---
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
(rev 0)
+++
sandbox/trunk/ui/calendar/ui/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java 2010-10-19
16:05:14 UTC (rev 19605)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Map;
+
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.convert.DateTimeConverter;
+
+import org.richfaces.component.AbstractCalendar;
+import org.richfaces.component.util.SelectUtils;
+import org.richfaces.component.util.ViewUtil;
+
+/**
+ * @author amarkhel
+ *
+ */
+
+@ResourceDependencies({ @ResourceDependency(library = "javax.faces", name =
"jsf.js"),
+ @ResourceDependency(name = "jquery.position.js"),
+ @ResourceDependency(name = "richfaces-event.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"json-dom.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"jquery.effects.core.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"jquery.effects.highlight.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"JQuerySpinBtn.js.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"calendar-utils.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"calendar.js"),
+ @ResourceDependency(library = "org.richfaces", name =
"calendar.ecss") })
+public class CalendarRendererBase extends InputRendererBase {
+
+ protected static final Map<String, ComponentAttribute>
CALENDAR_INPUT_HANDLER_ATTRIBUTES =
Collections.unmodifiableMap(ComponentAttribute.createMap(
+ new ComponentAttribute(HtmlConstants.ONCLICK_ATTRIBUTE)
+ .setEventNames("inputclick")
+ .setComponentAttributeName("oninputclick"),
+ new ComponentAttribute(HtmlConstants.ONDBLCLICK_ATTRIBUTE)
+ .setEventNames("inputdblclick")
+ .setComponentAttributeName("oninputdblclick"),
+ new ComponentAttribute(HtmlConstants.ONMOUSEDOWN_ATTRIBUTE)
+ .setEventNames("inputmousedown")
+ .setComponentAttributeName("oninputmousedown"),
+ new ComponentAttribute(HtmlConstants.ONMOUSEUP_ATTRIBUTE)
+ .setEventNames("inputmouseup")
+ .setComponentAttributeName("oninputmouseup"),
+ new ComponentAttribute(HtmlConstants.ONMOUSEOVER_ATTRIBUTE)
+ .setEventNames("inputmouseover")
+ .setComponentAttributeName("oninputmouseover"),
+ new ComponentAttribute(HtmlConstants.ONMOUSEMOVE_ATTRIBUTE)
+ .setEventNames("inputmousemove")
+ .setComponentAttributeName("oninputmousemove"),
+ new ComponentAttribute(HtmlConstants.ONMOUSEOUT_ATTRIBUTE)
+ .setEventNames("inputmouseout")
+ .setComponentAttributeName("oninputmouseout"),
+ new ComponentAttribute(HtmlConstants.ONKEYPRESS_ATTRIBUTE)
+ .setEventNames("inputkeypress")
+ .setComponentAttributeName("oninputkeypress"),
+ new ComponentAttribute(HtmlConstants.ONKEYDOWN_ATTRIBUTE)
+ .setEventNames("inputkeydown")
+ .setComponentAttributeName("oninputkeydown"),
+ new ComponentAttribute(HtmlConstants.ONKEYUP_ATTRIBUTE)
+ .setEventNames("inputkeyup")
+ .setComponentAttributeName("oninputkeyup"),
+ new ComponentAttribute(HtmlConstants.ONBLUR_ATTRIBUTE)
+ .setEventNames("inputblur")
+ .setComponentAttributeName("oninputblur"),
+ new ComponentAttribute(HtmlConstants.ONFOCUS_ATTRIBUTE)
+ .setEventNames("inputfocus")
+ .setComponentAttributeName("oninputfocus"),
+ new ComponentAttribute(HtmlConstants.ONCHANGE_ATTRIBUTE)
+ .setEventNames("inputchange")
+ .setComponentAttributeName("oninputchange"),
+ new ComponentAttribute(HtmlConstants.ONSELECT_ATTRIBUTE)
+ .setEventNames("inputselect")
+ .setComponentAttributeName("oninputselect")));
+
+
+ public void renderInputHandlers(FacesContext facesContext, UIComponent component)
throws IOException {
+ RenderKitUtils.renderPassThroughAttributesOptimized(facesContext, component,
CALENDAR_INPUT_HANDLER_ATTRIBUTES);
+ }
+
+ @Override
+ public Object getConvertedValue(FacesContext context, UIComponent component, Object
submittedValue) throws ConverterException {
+ if ((context == null) || (component == null)) {
+ throw new NullPointerException();
+ }
+
+ // skip conversion of already converted date
+ if (submittedValue instanceof Date) {
+ return (Date) submittedValue;
+ }
+
+ // Store submitted value in the local variable as a string
+ String newValue = (String) submittedValue;
+ // if we have no local value, try to get the valueExpression.
+ AbstractCalendar calendar = (AbstractCalendar) component;
+ Converter converter = SelectUtils.getConverterForProperty(context, calendar,
"value");
+
+ // in case the converter hasn't been set, try to use default
+ // DateTimeConverter
+ if (converter == null) {
+ converter = createDefaultConverter();
+ }
+ setupDefaultConverter(converter, calendar);
+
+ return converter.getAsObject(context, component, newValue);
+ }
+
+ public String getButtonIcon(FacesContext facesContext, UIComponent component) {
+ boolean disable = (Boolean)component.getAttributes().get("disable");
+ String buttonIcon =
(String)component.getAttributes().get("buttonIcon");
+ if(disable) {
+ buttonIcon =
(String)component.getAttributes().get("buttonIconDisabled");
+ }
+ //TODO: add default icon
+ return (buttonIcon != null && !"".equals(buttonIcon)) ?
getResourcePath(facesContext, buttonIcon) : "";
+ }
+
+ protected String getResourcePath(FacesContext facesContext, String source) {
+ return (source != null && !"".equals(source)) ?
ViewUtil.getResourceURL(source, facesContext) :"" ;
+ }
+
+ public boolean isUseIcons(FacesContext facesContext, UIComponent component) {
+ Object label = component.getAttributes().get("buttonLabel");
+ return (label == null || ((String)label).trim().length() == 0);
+ }
+
+ protected static Converter createDefaultConverter() {
+ return new DateTimeConverter();
+ }
+
+ protected static Converter setupDefaultConverter(Converter converter,
AbstractCalendar calendar) {
+ // skip id converter is null
+ if(converter == null) {
+ return null;
+ }
+
+ if(converter instanceof DateTimeConverter) {
+ DateTimeConverter defaultConverter = (DateTimeConverter) converter;
+ defaultConverter.setPattern(calendar.getDatePattern());
+ defaultConverter.setLocale(calendar.getAsLocale(calendar.getLocale()));
+ defaultConverter.setTimeZone(calendar.getTimeZone());
+ }
+
+ return converter;
+ }
+}
\ No newline at end of file
Added:
sandbox/trunk/ui/calendar/ui/src/main/resources/META-INF/resources/org.richfaces/calendar.ecss
===================================================================
Modified: sandbox/trunk/ui/calendar/ui/src/main/templates/calendar.template.xml
===================================================================
--- sandbox/trunk/ui/calendar/ui/src/main/templates/calendar.template.xml 2010-10-19
12:56:00 UTC (rev 19604)
+++ sandbox/trunk/ui/calendar/ui/src/main/templates/calendar.template.xml 2010-10-19
16:05:14 UTC (rev 19605)
@@ -1,38 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-JBoss, Home of Professional Open Source
-Copyright ${year}, Red Hat, Inc. and individual contributors
-by the @authors tag. See the copyright.txt in the distribution for a
-full listing of individual contributors.
-
-
-This is free software; you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as
-published by the Free Software Foundation; either version 2.1 of
-the License, or (at your option) any later version.
-
-
-This software is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-
-You should have received a copy of the GNU Lesser General Public
-License along with this software; if not, write to the Free
-Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
-->
<cdk:root
xmlns="http://jboss.org/schema/richfaces/cdk/xhtml-el"
xmlns:cdk="http://jboss.org/schema/richfaces/cdk/core"
xmlns:cc="http://jboss.org/schema/richfaces/cdk/jsf/composite"
xmlns:c="http://jboss.org/schema/richfaces/cdk/jstl/core"
xmlns:xi="http://www.w3.org/2001/XInclude">
<cc:interface>
<cdk:class>org.richfaces.renderkit.html.CalendarRenderer</cdk:class>
- <cdk:superclass>org.richfaces.renderkit.InputRendererBase</cdk:superclass>
- <cdk:component-family>javax.faces.Input</cdk:component-family>
+ <cdk:superclass>org.richfaces.renderkit.CalendarRendererBase</cdk:superclass>
<cdk:renderer-type>org.richfaces.CalendarRenderer</cdk:renderer-type>
<cdk:resource-dependency library="org.richfaces"
name="base-component.reslib" />
- <cdk:resource-dependency name="jquery.position.js" />
</cc:interface>
<cc:implementation>
<span id="#{clientId}" class="rf-ca
#{component.attributes['styleClass']}" cdk:passThroughWithExclusions="id
class">
@@ -45,77 +42,37 @@
<c:otherwise>
<input id="#{clientId}InputDate"
name="#{clientId}InputDate"
- value="#{this:getInputValue(facesContext,component)}"
type="#{component.attributes['showInput'] ? 'text' :
'hidden'}"
+ value="#{this:getInputValue(facesContext,component)}"
+ type="#{component.attributes['showInput'] ? 'text' :
'hidden'}"
disabled="#{component.attributes['disabled']}"
accesskey="#{component.attributes['accesskey']}"
maxlength="#{component.attributes['maxlength']}"
- onchange="#{component.attributes['oninputchange']}"
- onselect="#{component.attributes['oninputselect']}"
- onfocus="#{component.attributes['oninputfocus']}"
- onblur="#{component.attributes['oninputblur']}"
- onclick="#{component.attributes['oninputclick']}"
- onkeypress="#{component.attributes['oninputkeypress']}"
- onkeydown="#{component.attributes['oninputkeydown']}"
- onkeyup="#{component.attributes['oninputkeyup']}"
- onmouseover="#{component.attributes['oninputmouseover']}"
- onmouseout="#{component.attributes['oninputmouseout']}"
size="#{component.attributes['inputSize']}"
style="vertical-align: middle;
#{component.attributes['inputStyle']}"
class="rich-calendar-input
#{component.attributes['inputClass']}"
tabindex="#{component.attributes['tabindex']}"
- readonly="#{!component.attributes['enableManualInput'] ||
component.attributes['readonly']}" />
-
- <!--jsp:scriptlet>
- <![CDATA[
- String buttonIconAttr = (String)
component.getAttributes().get("buttonIcon");
- String buttonIcon = buttonIconAttr == null || buttonIconAttr.length() < 1 ?
null :
-
org.richfaces.component.util.ViewUtil.getResourceURL(buttonIconAttr, facesContext);
- String buttonIconDisabledAttr =(String)
component.getAttributes().get("buttonIconDisabled");
- String buttonIconDisabled = buttonIconDisabledAttr == null ||
buttonIconDisabledAttr.length() < 1 ? null :
-
org.richfaces.component.util.ViewUtil.getResourceURL(buttonIconDisabledAttr,
facesContext);
- String buttonLabel = (String)
component.getAttributes().get("buttonLabel");
- variables.setVariable("buttonLabel",buttonLabel);
- variables.setVariable("buttonIconDisabled",buttonIconDisabled);
- variables.setVariable("buttonIcon",buttonIcon);
- if(buttonLabel==null || buttonLabel.length()==0){
- ]]>
- </jsp:scriptlet><img id="#{clientId}PopupButton"
alt=""
- class="rich-calendar-button
#{component.attributes['buttonClass']}"
- accesskey="#{component.attributes['accesskey']}"
- style="vertical-align: middle"
- tabindex="#{component.attributes['tabindex']}">
- <jsp:scriptlet>
- <![CDATA[
- if(!disabled){
- if(buttonIcon==null){
- getUtils().writeAttribute(writer, "src",
variables.getVariable("icon"));
- }
- else{
- getUtils().writeAttribute(writer, "src", buttonIcon);
- }
- }
- else{
-
- //getUtils().writeAttribute(writer, "onclick", null);
- if(buttonIconDisabled==null){
- getUtils().writeAttribute(writer, "src",
variables.getVariable("disabledIcon"));
- }
- else{
- getUtils().writeAttribute(writer, "src", buttonIconDisabled);
- }
- }
- ]]>
- </jsp:scriptlet> </img> <jsp:scriptlet>
- <![CDATA[
- }
- else{
- ]]>
- </jsp:scriptlet-->
- <button type="button" id="#{clientId}PopupButton"
name="#{clientId}PopupButton"
- style="vertical-align: middle"
- class="rich-calendar-button
#{component.attributes['buttonClass']}"
- tabindex="#{component.attributes['tabindex']}"
disabled="#{component.attributes['disabled']}">
- #{component.attributes['buttonLabel']}</button>
+ readonly="#{(!component.attributes['enableManualInput'] ||
component.attributes['readonly']) ? 'readonly' : ''}">
+ <cdk:call expression="renderInputHandlers(facesContext,
component);"/>
+ </input>
+ <c:choose>
+ <c:when test="#{isUseIcons(facesContext, component)}">
+ <img id="#{clientId}PopupButton" alt=""
+ class="rich-calendar-button
#{component.attributes['buttonClass']}"
+ accesskey="#{component.attributes['accesskey']}"
+ style="vertical-align: middle"
+ tabindex="#{component.attributes['tabindex']}"
src="#{getButtonIcon(facesContext, component)}"/>
+ </c:when>
+ <c:otherwise>
+ <button type="button"
+ id="#{clientId}PopupButton"
+ name="#{clientId}PopupButton"
+ style="vertical-align: middle"
+ class="rich-calendar-button
#{component.attributes['buttonClass']}"
+ tabindex="#{component.attributes['tabindex']}"
disabled="#{component.attributes['disabled']}">
+ #{component.attributes['buttonLabel']}
+ </button>
+ </c:otherwise>
+ </c:choose>
</c:otherwise>
</c:choose>
<input id="#{clientId}InputCurrentDate"
@@ -126,6 +83,7 @@
</span>
<div style="display: none;" id="#{clientId}">
</div>
+
<!--cdk:scriptObject var="options" >
<cdk:scriptOption attributes="enableManualInput, disabled, readonly,
resetTimeOnDateSelect, showApplyButton, styleClass, minDaysInFirstWeek" />
<cdk:scriptOption attributes="popup" defaultValue="true"
/>