Author: akushunin
Date: 2007-09-10 11:24:56 -0400 (Mon, 10 Sep 2007)
New Revision: 2838
Modified:
trunk/ui/calendar/src/main/config/component/calendar.xml
trunk/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
Log:
RF-854 done
Modified: trunk/ui/calendar/src/main/config/component/calendar.xml
===================================================================
--- trunk/ui/calendar/src/main/config/component/calendar.xml 2007-09-10 15:17:04 UTC (rev
2837)
+++ trunk/ui/calendar/src/main/config/component/calendar.xml 2007-09-10 15:24:56 UTC (rev
2838)
@@ -204,15 +204,8 @@
months. Should accept list with the month names
</description>
</property>
+
<property>
- <name>buttonLabel</name>
- <classname>java.lang.String</classname>
- <description>
- Defines label for the popup button element
- </description>
- <defaultvalue>"popupButton"</defaultvalue>
- </property>
- <property>
<name>toolTipMode</name>
<classname>java.lang.String</classname>
<description>
@@ -447,6 +440,25 @@
<name>data</name>
<classname>java.lang.Object</classname>
</property>
+
+ <property>
+ <name>buttonIcon</name>
+ <classname>java.lang.String</classname>
+ <description>Defines icon for the popup button element</description>
+ </property>
+
+ <property>
+ <name>buttonLabel</name>
+ <classname>java.lang.String</classname>
+ <description>Defines label for the popup button element</description>
+ </property>
+
+ <property>
+ <name>buttonIconDisabled</name>
+ <classname>java.lang.String</classname>
+ <description>Defines disabled icon for the popup button
element</description>
+ </property>
+
</component>
&listeners;
</components>
Modified: trunk/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
===================================================================
--- trunk/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-09-10
15:17:04 UTC (rev 2837)
+++ trunk/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-09-10
15:24:56 UTC (rev 2838)
@@ -10,11 +10,11 @@
component="org.richfaces.component.UICalendar">
<f:clientid var="clientId" />
<h:scripts>new org.ajax4jsf.javascript.PrototypeScript(),new
org.ajax4jsf.javascript.AjaxScript(),/org/richfaces/renderkit/html/scripts/events.js,/org/richfaces/renderkit/html/scripts/utils.js,/org/richfaces/renderkit/html/scripts/json/json-dom.js,/org/richfaces/renderkit/html/scripts/scriptaculous/effects.js,/org/richfaces/renderkit/html/scripts/calendar.js</h:scripts>
-
+
<h:styles>/org/richfaces/renderkit/html/css/calendar.xcss</h:styles>
<div id="#{clientId}"
- style="z-index:#{component.attributes['zindex']};
#{component.attributes['style']}"
+ style="z-index: #{ component . attributes [ 'zindex' ]"
class="#{component.attributes['styleClass']}"
x:passThruWithExclusions="value,name,type,id"><script
type="text/javascript">
@@ -91,19 +91,18 @@
writePreloadBody(context, component);
/*]]>*/</jsp:scriptlet>
);
- </script>
- </div>
+ </script></div>
<f:call name="addPopupToAjaxRendered" />
-
- <span id="#{clientId}Popup" >
+
+ <span id="#{clientId}Popup">
<jsp:scriptlet>
<![CDATA[
boolean popup = getUtils().isBooleanAttribute(component, "popup");
if (!popup) {
getUtils().writeAttribute(writer, "style", "display: none");
} else {
-
+ boolean disabled = getUtils().isBooleanAttribute(component,
"disabled");
boolean showInput = getUtils().isBooleanAttribute(component, "showInput");
boolean manualInput = getUtils().isBooleanAttribute(component,
"enableManualInput");
String onfieldclick =null;
@@ -121,45 +120,98 @@
variables.setVariable("onfieldclick",onfieldclick);
variables.setVariable("type",type);
+ variables.setVariable("disabled",new Boolean(disabled));
]]>
+ </jsp:scriptlet>
+ <f:resource name="org.richfaces.renderkit.html.iconimages.CalendarIcon"
var="icon"/>
+ <f:resource name="org.richfaces.renderkit.html.iconimages.DisabledCalendarIcon"
var="disabledIcon"/>
+ <input id="#{clientId}InputDate" name="#{clientId}InputDate"
+ value="#{this:getInputValue(context,component)}" type="#{type}"
+ readonly="#{manualInput}"
+ disabled="#{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="#{onfieldclick} #{component.attributes['oninputclick']}"
+ onkeypress="#{component.attributes['oninputkeypress']}"
+ onkeydown="#{component.attributes['oninputkeydown']}"
+ onkeyup="#{component.attributes['oninputkeyup']}"
+ size="#{component.attributes['inputSize']}"
+ style="vertical-align: middle;"
+ class="rich-calendar-input #{component.attributes['inputClass']}"
+ tabindex="#{component.attributes['tabindex']}"> </input>
+ <jsp:scriptlet>
+ <![CDATA[
+ String buttonIcon = (String) component.getAttributes().get("buttonIcon");
+ String buttonLabel = (String) component.getAttributes().get("buttonLabel");
+ String buttonIconDisabled = (String)
component.getAttributes().get("buttonIconDisabled");
+ variables.setVariable("buttonIcon",buttonIcon);
+ variables.setVariable("buttonLabel",buttonLabel);
+ variables.setVariable("buttonIconDisabled",buttonIconDisabled);
+ if(buttonLabel==null){
+ ]]>
+ </jsp:scriptlet>
+ <img id="#{clientId}PopupButton"
class="rich-calendar-popupicon"
+ accesskey="#{component.attributes['accesskey']}"
+ name="#{clientId}"
+ style="vertical-align: middle"
+ tabindex="#{component.attributes['tabindex']}">
+
+ <jsp:scriptlet>
+ <![CDATA[
+ if(!disabled){
+
+ getUtils().writeAttribute(writer, "onclick",
"$('"+clientId+"').component.doSwitch();");
+ 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>
- <f:resource name="org.richfaces.renderkit.html.iconimages.CalendarIcon"
var="icon" />
- <input
- id="#{clientId}InputDate"
- name="#{clientId}InputDate"
- value="#{this:getInputValue(context,component)}"
- type="#{type}"
- readonly="#{manualInput}"
- 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="#{onfieldclick} #{component.attributes['oninputclick']}"
- onkeypress="#{component.attributes['oninputkeypress']}"
- onkeydown="#{component.attributes['oninputkeydown']}"
- onkeyup="#{component.attributes['oninputkeyup']}"
- size="#{component.attributes['inputSize']}"
- style="vertical-align: middle;
#{component.attributes['inputStyle']}"
- class="rich-calendar-input #{component.attributes['inputClass']}"
- tabindex="#{component.attributes['tabindex']}">
- </input>
- <img id="#{clientId}PopupButton"
- class="rich-calendar-popupicon"
- src="#{icon}"
- accesskey="#{component.attributes['accesskey']}"
- name="#{clientId}"
- onclick="$('#{clientId}').component.doSwitch();return true;"
- style="vertical-align: middle"
- tabindex="#{component.attributes['tabindex']}">
- </img>
+
+ </img>
+ <jsp:scriptlet>
+ <![CDATA[
+ }
+ else{
+ ]]>
+ </jsp:scriptlet>
+ <button
+ type="button"
+ id="#{clientId}PopupButton"
+ name="#{clientId}"
+ onclick="$('#{clientId}').component.doSwitch();return true;
#{component.attributes['oninputclick']}"
+ style="vertical-align: middle"
+ tabindex="#{component.attributes['tabindex']}"
+ disabled="#{disabled}">
+ #{buttonLabel}
+ </button>
<jsp:scriptlet>
<![CDATA[
}
]]>
- </jsp:scriptlet>
- </span>
+ </jsp:scriptlet>
+
+ <jsp:scriptlet>
+ <![CDATA[
+ }
+ ]]>
+ </jsp:scriptlet> </span>
</f:root>
Modified:
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
===================================================================
---
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2007-09-10
15:17:04 UTC (rev 2837)
+++
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2007-09-10
15:24:56 UTC (rev 2838)
@@ -171,7 +171,7 @@
*/
HtmlPage page = renderView();
assertNotNull(page);
- System.out.println(page.asXml());
+ //System.out.println(page.asXml());
HtmlElement htmlCalendar = page.getHtmlElementById(calendar
.getClientId(facesContext));
@@ -180,7 +180,7 @@
HtmlInput htmlCalendarInput = (HtmlInput) page
.getHtmlElementById(calendar.getClientId(facesContext)
+ "InputDate");
- HtmlImage htmlCalendarButton = (HtmlImage) page
+ HtmlButton htmlCalendarButton = (HtmlButton) page
.getHtmlElementById(calendar.getClientId(facesContext)
+ "PopupButton");
HtmlSpan htmlCalendarSpan = (HtmlSpan) page.getHtmlElementById(calendar