Author: abelevich
Date: 2010-05-28 08:01:32 -0400 (Fri, 28 May 2010)
New Revision: 17350
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableToggleControlRendererBase.java
Log:
https://jira.jboss.org/browse/RF-8686
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableToggleControlRendererBase.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableToggleControlRendererBase.java 2010-05-28
11:10:03 UTC (rev 17349)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableToggleControlRendererBase.java 2010-05-28
12:01:32 UTC (rev 17350)
@@ -26,6 +26,7 @@
import java.util.HashMap;
import java.util.Map;
+import javax.faces.application.Resource;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
@@ -53,6 +54,10 @@
private static final String COLLAPSE_STATE = "collapse";
+ private static final String UP_ICON_URL = "up_icon.gif";
+
+ private static final String DOWN_ICON_URL = "down_icon.gif";
+
@Override
protected void doDecode(FacesContext context, UIComponent component) {
context.getPartialViewContext().getRenderIds().add(component.getClientId(context));
@@ -104,6 +109,7 @@
writer.writeAttribute(HTML.CLASS_ATTRIBUTE, styleClass, null);
writer.writeAttribute(HTML.STYLE_ATTRIBUTE, style, null);
+ boolean encodeDefault = true;
UIComponent controlFacet = control.getFacet(state);
if(controlFacet != null && controlFacet.isRendered()) {
@@ -112,29 +118,53 @@
facetStyle = facetStyle != null ? facetStyle + "; display:
none" : "; display: none";
controlFacet.getAttributes().put("style", facetStyle);
}
-
controlFacet.encodeAll(context);
+ encodeDefault = false;
+ }
+
+ String expandIcon = control.getExpandIcon();
+ String collapseIcon = control.getCollapseIcon();
+
+ if((expandIcon != null && collapseIcon != null)
+ && (expandIcon.trim().length() > 0 &&
collapseIcon.trim().length() > 0)) {
- } else {
+ String image = expanded ? expandIcon : collapseIcon;
+ if (image != null && image.trim().length() > 0) {
+ writer.startElement(HTML.IMG_ELEMENT, control);
+ writer.writeAttribute(HTML.SRC_ATTRIBUTE, image, null);
+ writer.writeAttribute(HTML.ALT_ATTRIBUTE, "", null);
+ writer.endElement(HTML.IMG_ELEMENT);
+ }
+ encodeDefault = false;
+ }
+
+ String label = expanded ? control.getExpandLabel() : control.getCollapseLabel();
+ if(label != null && label.trim().length() > 0) {
+ writer.startElement(HTML.A_ELEMENT, control);
+ writer.writeAttribute(HTML.HREF_ATTR, "javascript:void(0);",
null);
+ writer.writeText(label, null);
+ writer.endElement(HTML.A_ELEMENT);
+ encodeDefault = false;
+ }
+
+ if(encodeDefault) {
+ expandIcon =
context.getApplication().getResourceHandler().createResource(UP_ICON_URL).getRequestPath();
+ collapseIcon =
context.getApplication().getResourceHandler().createResource(DOWN_ICON_URL).getRequestPath();
- String image = expanded ? control.getExpandIcon() :
control.getCollapseIcon();
+ String image = expanded ? expandIcon : collapseIcon;
if (image != null && image.trim().length() > 0) {
writer.startElement(HTML.IMG_ELEMENT, control);
writer.writeAttribute(HTML.SRC_ATTRIBUTE, image, null);
writer.writeAttribute(HTML.ALT_ATTRIBUTE, "", null);
writer.endElement(HTML.IMG_ELEMENT);
- }
+ }
- String label = expanded ? control.getExpandLabel() :
control.getCollapseLabel();
- if(label != null && label.trim().length() > 0) {
- writer.startElement(HTML.A_ELEMENT, control);
- writer.writeAttribute(HTML.HREF_ATTR, "javascript:void(0);",
null);
- writer.writeText(label, null);
- writer.endElement(HTML.A_ELEMENT);
- }
}
+
writer.endElement(HTML.SPAN_ELEM);
}
+
+
public HashMap<String, Object> encodeOptions(FacesContext context,
UISubTableToggleControl toggleControl, UISubTable subTable) {
String forId = subTable.getClientId(context);