You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ar...@apache.org on 2009/12/17 03:33:11 UTC
svn commit: r891522 [6/28] - in /myfaces/trinidad/branches/trinidad-2.0.x:
./ trinidad-api/ trinidad-api/src/main/java/org/apache/myfaces/trinidad/bean/
trinidad-api/src/main/java/org/apache/myfaces/trinidad/bean/util/
trinidad-api/src/main/java/org/ap...
Modified: myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java?rev=891522&r1=891521&r2=891522&view=diff
==============================================================================
--- myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java (original)
+++ myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java Thu Dec 17 02:33:05 2009
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -22,7 +22,6 @@
import java.io.IOException;
-
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
@@ -30,8 +29,8 @@
import org.apache.myfaces.trinidad.bean.FacesBean;
import org.apache.myfaces.trinidad.bean.PropertyKey;
import org.apache.myfaces.trinidad.component.html.HtmlBody;
-import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidad.context.RenderingContext;
+import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
import org.apache.myfaces.trinidad.skin.Skin;
import org.apache.myfaces.trinidad.util.Service;
@@ -49,13 +48,15 @@
this(HtmlBody.TYPE);
}
- protected BodyRenderer(FacesBean.Type type)
+ protected BodyRenderer(
+ FacesBean.Type type)
{
super(type);
}
@Override
- protected void findTypeConstants(FacesBean.Type type)
+ protected void findTypeConstants(
+ FacesBean.Type type)
{
super.findTypeConstants(type);
_firstClickPassedKey = type.findKey("firstClickPassed");
@@ -66,51 +67,54 @@
@Override
protected void encodeAll(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("body", component);
renderId(context, component);
- renderAllAttributes(context, arc, bean);
- super.encodeAll(context, arc, component, bean);
+ renderAllAttributes(context, rc, component, bean);
+ super.encodeAll(context, rc, component, bean);
// Output a version comment at the bottom of the body
- _writeVersionInformation(context, arc);
+ _writeVersionInformation(context, rc);
}
@Override
protected void renderAtEnd(
- FacesContext context,
- RenderingContext arc) throws IOException
+ FacesContext context,
+ RenderingContext rc
+ ) throws IOException
{
_encodeServiceScripts(context);
// trigger the rendering of targeted resource
- // for the BODY, on UIViewRoot - if there are
+ // for the BODY, on UIViewRoot - if there are
// any...
encodeComponentResources(context, "body");
context.getResponseWriter().endElement("body");
- _renderInitialFocusScript(context, arc);
+ _renderInitialFocusScript(context, rc);
}
@Override
protected void renderPPRSupport(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
- super.renderPPRSupport(context, arc, component, bean);
- if (getFirstClickPassed(bean))
+ super.renderPPRSupport(context, rc, component, bean);
+ if (getFirstClickPassed(component, bean))
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("script", null);
- renderScriptDeferAttribute(context, arc);
- renderScriptTypeAttribute(context, arc);
+ renderScriptDeferAttribute(context, rc);
+ renderScriptTypeAttribute(context, rc);
writer.writeText("var _pprFirstClickPass=true;", null);
writer.endElement("script");
}
@@ -118,64 +122,67 @@
@Override
protected void renderContent(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
- boolean isPartialPass = PartialPageUtils.isPartialRenderingPass(arc);
+ boolean isPartialPass = PartialPageUtils.isPartialRenderingPass(rc);
_renderAnchorForTop(context);
-
- // Since we are supporting Non-JavaScript browsers of generic PDA,
- // we don't need to prompt any message in the client side regarding
+
+ // Since we are supporting Non-JavaScript browsers of generic PDA,
+ // we don't need to prompt any message in the client side regarding
// the JavaScript capability of generic PDA browsers.
- if (supportsScripting(arc))
+ if (supportsScripting(rc))
{
- _renderNoScript(context, arc);
- _storeInitialFocus(arc, bean);
+ _renderNoScript(context, rc);
+ _storeInitialFocus(rc, component, bean);
}
if (!isPartialPass)
{
// start the span here, and end it in postrender
- _renderPartialBackSupportSpan(context, arc, true);
+ _renderPartialBackSupportSpan(context, rc, true);
}
- super.renderContent(context, arc, component, bean);
+ super.renderContent(context, rc, component, bean);
if (!isPartialPass)
{
// end the span for PPR Back button support (and render the hidden fields)
- _renderPartialBackSupportSpan(context, arc, false);
+ _renderPartialBackSupportSpan(context, rc, false);
}
}
@Override
protected void renderEventHandlers(
FacesContext context,
- FacesBean bean) throws IOException
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
- super.renderEventHandlers(context, bean);
- RenderingContext arc = RenderingContext.getCurrentInstance();
+ super.renderEventHandlers(context, component, bean);
+ RenderingContext rc = RenderingContext.getCurrentInstance();
ResponseWriter rw = context.getResponseWriter();
- if (PartialPageUtils.isPartialRenderingPass(arc))
+ if (PartialPageUtils.isPartialRenderingPass(rc))
{
rw.writeAttribute("onunload", _PARTIAL_ONUNLOAD_HANDLER, null);
}
else
{
- rw.writeAttribute("onload", getOnload(arc, bean), "onload");
- rw.writeAttribute("onunload", getOnunload(arc, bean), "onunload");
+ rw.writeAttribute("onload", getOnload(rc, component, bean), "onload");
+ rw.writeAttribute("onunload", getOnunload(rc, component, bean), "onunload");
// If partial back is supported,
// render an onbeforeunload event handler. This javascript function
// will save the page's state when the page is unloaded. This way if the
// user goes back to the page via the Back button, we'll be able to
// restore the state: the html and the javascript.
- if (_isPartialBackSupported(arc))
+ if (_isPartialBackSupported(rc))
{
rw.writeAttribute("onbeforeunload",
_PPR_BACK_UNLOAD_SCRIPT,
@@ -184,7 +191,9 @@
}
}
- protected boolean getFirstClickPassed(FacesBean bean)
+ protected boolean getFirstClickPassed(
+ UIComponent component,
+ FacesBean bean)
{
// =-=AEW firstClickPassed is not currently supported on document
if (_firstClickPassedKey == null)
@@ -196,12 +205,17 @@
return Boolean.TRUE.equals(o);
}
- protected String getInitialFocusId(FacesBean bean)
+ protected String getInitialFocusId(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_initialFocusIdKey));
}
- protected String getOnload(RenderingContext arc, FacesBean bean)
+ protected String getOnload(
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean)
{
String onload;
if (_onloadKey == null)
@@ -217,7 +231,7 @@
//Therefore, created another function _checkLoadNoPPR() This function is
//called by the onLoad JS handler of body tag when device does not support
//PPR
- if (PartialPageUtils.supportsPartialRendering(arc))
+ if (PartialPageUtils.supportsPartialRendering(rc))
{
// Don't short circuit...
//PH:_checkLoad(event) is replaced by _checkLoad() because on certain
@@ -230,23 +244,25 @@
{
//HKuhn - in printable mode we don't need PPR checking
// Check only, if Agents supports Navigation or Editing
- if (supportsNavigation(arc) || supportsEditing(arc))
+ if (supportsNavigation(rc) || supportsEditing(rc))
checkLoad = "_checkLoadNoPPR()";
}
-
- onload = XhtmlUtils.getChainedJS(checkLoad, onload, false);
- return onload;
+ return XhtmlUtils.getClientEventHandler(FacesContext.getCurrentInstance(), component,
+ "load", null, XhtmlUtils.getChainedJS(checkLoad, onload, false), null);
}
- protected String getOnunload(RenderingContext arc, FacesBean bean)
+ protected String getOnunload(
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean)
{
String onunload;
if (_onunloadKey == null)
onunload = null;
else
onunload = toString(bean.getProperty(_onunloadKey));
- if (PartialPageUtils.supportsPartialRendering(arc))
+ if (PartialPageUtils.supportsPartialRendering(rc))
{
// Don't short circuit...
onunload = XhtmlUtils.getChainedJS("_checkUnload(event)",
@@ -254,11 +270,10 @@
false);
}
- return onunload;
+ return XhtmlUtils.getClientEventHandler(FacesContext.getCurrentInstance(), component,
+ "unload", null, onunload, null);
}
-
-
/**
* Renders a top anchor at the top of the page
* In quirks mode this is not required,but Mozilla will complain
@@ -266,7 +281,9 @@
* @param context
* @throws IOException
*/
- private void _renderAnchorForTop(FacesContext context) throws IOException
+ private void _renderAnchorForTop(
+ FacesContext context
+ ) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("a",null);
@@ -275,8 +292,9 @@
}
private void _renderNoScript(
- FacesContext context,
- RenderingContext arc) throws IOException
+ FacesContext context,
+ RenderingContext rc
+ ) throws IOException
{
// Some accessibility standards rather oddly claim that NOSCRIPT
// tags are essential for compliance. So, render NOSCRIPT, at
@@ -286,24 +304,25 @@
// largely there for JDev 10.1.3 preview, which was rendering
// the contents of any NOSCRIPT tags in the VE, but it's
// a check that does no harm.
- if (!isInaccessibleMode(arc) && !Beans.isDesignTime())
+ if (!isInaccessibleMode(rc) && !Beans.isDesignTime())
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("noscript",null);
- String message = arc.getTranslatedString("NO_SCRIPT_MESSAGE");
+ String message = rc.getTranslatedString("NO_SCRIPT_MESSAGE");
writer.writeText(message, null);
writer.endElement("noscript");
}
}
private void _storeInitialFocus(
- RenderingContext arc,
- FacesBean bean)
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean)
{
// The initialFocus functionality is only supported in inaccessible mode,
// and only platforms that support scripting.
- if (!isInaccessibleMode(arc) || !supportsScripting(arc))
+ if (!isInaccessibleMode(rc) || !supportsScripting(rc))
{
return;
}
@@ -311,7 +330,7 @@
// initial focus is the id of the component to which you want the
// focus to be when the page full-page loads. In a PPR, the focus is
// not set, which is a good thing.
- String initialFocusID = getInitialFocusId(bean);
+ String initialFocusID = getInitialFocusId(component, bean);
if (initialFocusID != null)
{
// Put the initial focus id on the rendering context for use in
@@ -322,7 +341,7 @@
// NavigationBar creates a special id for the Next button, and sticks
// this id back on the AdfRenderingContext for the body to know about in
// postrender.
- arc.getProperties().put(XhtmlConstants.INITIAL_FOCUS_CONTEXT_PROPERTY,
+ rc.getProperties().put(XhtmlConstants.INITIAL_FOCUS_CONTEXT_PROPERTY,
initialFocusID);
}
}
@@ -331,14 +350,14 @@
// Writes a small script that sets the _initialFocusID variable on the page.
//
private void _renderInitialFocusScript(
- FacesContext context,
- RenderingContext arc
+ FacesContext context,
+ RenderingContext rc
) throws IOException
{
// The initialFocus functionality is not supported if not inaccessible mode
// nor on Netscape nor on platforms that do not support scripting.
- if (!isInaccessibleMode(arc) || !supportsScripting(arc))
+ if (!isInaccessibleMode(rc) || !supportsScripting(rc))
{
return;
}
@@ -346,14 +365,14 @@
// Render the initial focus id, if it exists on the rendering context.
// The initial focus id was initially set in prerender, and may have
// been overwritten by the component's renderer if need be.
- String initialFocusID = (String) arc.getProperties().get(
+ String initialFocusID = (String) rc.getProperties().get(
XhtmlConstants.INITIAL_FOCUS_CONTEXT_PROPERTY);
if (initialFocusID != null)
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("script", null);
- XhtmlRenderer.renderScriptTypeAttribute(context, arc);
+ XhtmlRenderer.renderScriptTypeAttribute(context, rc);
writer.writeText("_initialFocusID='", null);
writer.writeText(initialFocusID, null);
writer.writeText("';", null);
@@ -367,12 +386,12 @@
// when the user leaves the page. This way we can restore the html if
// the user used the Back button to go back to the page.
private static void _renderPartialBackSupportSpan(
- FacesContext context,
- RenderingContext arc,
- boolean isStart
+ FacesContext context,
+ RenderingContext rc,
+ boolean isStart
) throws IOException
{
- if (_isPartialBackSupported(arc))
+ if (_isPartialBackSupported(rc))
{
ResponseWriter writer = context.getResponseWriter();
@@ -400,10 +419,9 @@
// not go to the server when the form is submitted.
private static void _renderPartialBackSupportHiddenFields(
ResponseWriter writer,
- String fieldName
+ String fieldName
) throws IOException
{
-
writer.startElement("input", null);
writer.writeAttribute("id", fieldName, null);
@@ -415,8 +433,7 @@
private static boolean _isPartialBackSupported(
- RenderingContext arc
- )
+ RenderingContext rc)
{
/*
// Only supported on IE - but comment this out while
@@ -434,9 +451,9 @@
// Writes version information about the page.
//
static private void _writeVersionInformation(
- FacesContext context,
- RenderingContext arc)
- throws IOException
+ FacesContext context,
+ RenderingContext rc
+ ) throws IOException
{
String comment = _VERSION_COMMENT;
@@ -451,9 +468,9 @@
comment += versionInfo;
String accessibilityMode = null;
- if (isInaccessibleMode(arc))
+ if (isInaccessibleMode(rc))
accessibilityMode = "disabled";
- else if (isScreenReaderMode(arc))
+ else if (isScreenReaderMode(rc))
accessibilityMode = "enhanced";
if (accessibilityMode != null)
@@ -462,7 +479,7 @@
}
// Tack on the Skin id
- Skin skin = arc.getSkin();
+ Skin skin = rc.getSkin();
String skinId = skin.getId();
if (skinId != null)
{
@@ -478,9 +495,9 @@
context.getResponseWriter().writeComment(comment);
}
-
- static private void _encodeServiceScripts(FacesContext context)
- throws IOException
+ static private void _encodeServiceScripts(
+ FacesContext context
+ ) throws IOException
{
ExtendedRenderKitService service =
Service.getRenderKitService(context, ExtendedRenderKitService.class);
@@ -490,7 +507,9 @@
}
}
- static private String _getVersionInfo(Package apiPackage, Package implPackage)
+ static private String _getVersionInfo(
+ Package apiPackage,
+ Package implPackage)
{
String versionInfo = "";
Modified: myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java?rev=891522&r1=891521&r2=891522&view=diff
==============================================================================
--- myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java (original)
+++ myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BreadCrumbsRenderer.java Thu Dec 17 02:33:05 2009
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,7 +19,9 @@
package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml;
import java.io.IOException;
+
import java.text.Bidi;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -35,8 +37,9 @@
import org.apache.myfaces.trinidad.component.core.nav.CoreBreadCrumbs;
import org.apache.myfaces.trinidad.component.core.nav.CoreCommandLink;
import org.apache.myfaces.trinidad.context.RenderingContext;
-import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext;
import org.apache.myfaces.trinidad.skin.Icon;
+import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext;
+
public class BreadCrumbsRenderer extends XhtmlRenderer
{
@@ -44,9 +47,10 @@
{
super(CoreBreadCrumbs.TYPE);
}
-
+
@Override
- protected void findTypeConstants(FacesBean.Type type)
+ protected void findTypeConstants(
+ FacesBean.Type type)
{
super.findTypeConstants(type);
_orientationKey = type.findKey("orientation");
@@ -57,30 +61,31 @@
{
return true;
}
-
+
@Override
protected void encodeAll(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
-
+
writer.startElement("span", component);
- renderAllAttributes(context, arc, bean);
+ renderAllAttributes(context, rc, component, bean);
renderId(context, component);
-
+
int renderedItemCount = _getItemCount((UIXHierarchy)component);
- int minItemCount = _getMinItemCount(arc);
+ int minItemCount = _getMinItemCount(rc);
// no kids, no NavigationPath -- but you still get the span.
if (renderedItemCount > minItemCount )
{
- renderContent(context, arc,
+ renderContent(context, rc,
(UIXHierarchy)component, bean);
}
-
+
writer.endElement("span");
}
@@ -88,47 +93,47 @@
* Gets the stamp to use to render each link
*/
protected UIComponent getStamp(
- FacesContext context,
- RenderingContext arc,
- UIXHierarchy component,
- FacesBean bean
+ FacesContext context,
+ RenderingContext rc,
+ UIXHierarchy component,
+ FacesBean bean
)
{
- UIComponent stamp = component.getFacet("nodeStamp");
+ UIComponent stamp = component.getFacet("nodeStamp");
return stamp;
}
@SuppressWarnings("unchecked")
protected void renderContent(
- FacesContext context,
- RenderingContext arc,
- UIXHierarchy component,
- FacesBean bean
+ FacesContext context,
+ RenderingContext rc,
+ UIXHierarchy component,
+ FacesBean bean
) throws IOException
{
boolean isVertical;
-
+
// To reduce the breadcrumb's width, render vertically for narrow-screen
// PDAs.
- if (supportsNarrowScreen(arc))
- {
+ if (supportsNarrowScreen(rc))
+ {
isVertical = true;
}
else
{
isVertical = _isVertical(bean);
}
-
- boolean shouldRenderLastChild = shouldRenderLastChild(arc);
+
+ boolean shouldRenderLastChild = shouldRenderLastChild(rc);
boolean isLastChild = false;
boolean isFirstChild = true;
int renderedCount = 0;
int nextVisChildIndex = 1;
- UIComponent stamp = getStamp(context, arc, component, bean);
- Icon separatorIcon = arc.getIcon(
- SkinSelectors.AF_NAVIGATION_PATH_SEPARATOR_ICON_NAME);
-
+ UIComponent stamp = getStamp(context, rc, component, bean);
+ Icon separatorIcon = rc.getIcon(
+ SkinSelectors.AF_NAVIGATION_PATH_SEPARATOR_ICON_NAME);
+
// use the focusKey to stamp out path
if(stamp != null)
{
@@ -137,12 +142,12 @@
Object focusPath = _getFocusRowKey(component);
if (focusPath == null)
return;
-
- List<Object> paths =
+
+ List<Object> paths =
new ArrayList<Object>(component.getAllAncestorContainerRowKeys(focusPath));
-
+
paths.add(focusPath);
- int size = paths.size();
+ int size = paths.size();
for (int i = 0; i < size; i++)
{
@@ -152,15 +157,15 @@
nextVisChildIndex=NO_CHILD_INDEX;
else
nextVisChildIndex = i + 1;
-
- isLastChild = (nextVisChildIndex == NO_CHILD_INDEX);
+
+ isLastChild = (nextVisChildIndex == NO_CHILD_INDEX);
component.setRowKey(paths.get(i));
- renderNode(context, arc, separatorIcon, stamp, renderedCount,
+ renderNode(context, rc, separatorIcon, stamp, renderedCount,
shouldRenderLastChild, isFirstChild, isLastChild, isVertical);
renderedCount++;
isFirstChild = false;
-
+
}
// Restore the old path
@@ -174,46 +179,47 @@
nextVisChildIndex = getNextRenderedChildIndex(children, -1);
while (nextVisChildIndex != NO_CHILD_INDEX)
{
- UIComponent child = children.get(nextVisChildIndex);
- nextVisChildIndex = getNextRenderedChildIndex(children,
+ UIComponent child = children.get(nextVisChildIndex);
+ nextVisChildIndex = getNextRenderedChildIndex(children,
nextVisChildIndex);
- isLastChild = (nextVisChildIndex == NO_CHILD_INDEX);
- renderNode(context, arc, separatorIcon, child, renderedCount,
+ isLastChild = (nextVisChildIndex == NO_CHILD_INDEX);
+ renderNode(context, rc, separatorIcon, child, renderedCount,
shouldRenderLastChild, isFirstChild, isLastChild, isVertical);
- renderedCount++;
+ renderedCount++;
isFirstChild = false;
}
}
-
+
}
- protected boolean hasChildren(UIComponent component)
+ protected boolean hasChildren(
+ UIComponent component)
{
int childCount = component.getChildCount();
return childCount > 0;
}
protected void renderNode(
- FacesContext context,
- RenderingContext arc,
- Icon separatorIcon,
- UIComponent child,
- int renderedCount,
- boolean shouldRenderLastChild,
- boolean isFirstChild,
- boolean isLastChild,
- boolean isVertical
+ FacesContext context,
+ RenderingContext rc,
+ Icon separatorIcon,
+ UIComponent child,
+ int renderedCount,
+ boolean shouldRenderLastChild,
+ boolean isFirstChild,
+ boolean isLastChild,
+ boolean isVertical
) throws IOException
- {
-
- boolean separatorOnNewRow = shouldRenderSeparatorOnNewLineWhenVertical(arc);
+ {
+
+ boolean separatorOnNewRow = shouldRenderSeparatorOnNewLineWhenVertical(rc);
if (!isLastChild || shouldRenderLastChild)
{
renderStartOfLink(context, isVertical);
-
+
ResponseWriter writer = context.getResponseWriter();
-
+
// if oriented vertically, then indent the levels
if(!isFirstChild && isVertical)
{
@@ -221,51 +227,52 @@
chars[0] = XhtmlConstants.NBSP_CHAR;
int indents = separatorOnNewRow ? renderedCount - 1 : renderedCount;
- int indentSpaces = indents * getNumberOfIndentSpaces(arc);
+ int indentSpaces = indents * getNumberOfIndentSpaces(rc);
for(int i = 0; i < indentSpaces; i++)
{
writer.writeText(chars, 0, 1);
}
}
-
- if (arc.isRightToLeft())
+
+ if (rc.isRightToLeft())
{
writer.startElement(XhtmlConstants.SPAN_ELEMENT, null);
writer.writeAttribute(XhtmlConstants.DIR_ATTRIBUTE_VALUE, "rtl", null);
}
-
+
if (!isFirstChild && (isVertical && separatorOnNewRow) )
{
- OutputUtils.renderIcon(context, arc, separatorIcon, "", null );
+ OutputUtils.renderIcon(context, rc, separatorIcon, "", null );
}
- renderLink(context, arc, child, renderedCount, isLastChild);
+ renderLink(context, rc, child, renderedCount, isLastChild);
if (!isLastChild && (!isVertical || !separatorOnNewRow) )
{
- OutputUtils.renderIcon(context, arc, separatorIcon, "", null );
- }
-
- if (arc.isRightToLeft())
+ OutputUtils.renderIcon(context, rc, separatorIcon, "", null );
+ }
+
+ if (rc.isRightToLeft())
{
writer.endElement(XhtmlConstants.SPAN_ELEMENT);
}
-
+
renderEndOfLink(context, isVertical);
-
+
}
}
protected void renderLink(
- FacesContext context,
- RenderingContext arc,
- UIComponent child,
- int renderedCount,
- boolean isLastChild) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent child,
+ int renderedCount,
+ boolean isLastChild
+ ) throws IOException
{
if (isLastChild)
- ((CoreRenderingContext) arc).setLinkDisabled(true);
-
+ ((CoreRenderingContext) rc).setLinkDisabled(true);
+
boolean isBidi = false;
String text = toString(child.getAttributes().get(CoreCommandLink.TEXT_KEY.getName()));
if ((text != null) && (text.length() > 0))
@@ -274,11 +281,11 @@
firstChar[0] = text.charAt(0);
isBidi = Bidi.requiresBidi(firstChar, 0, 1);
}
-
- Map<String, String> originalResourceKeyMap = arc.getSkinResourceKeyMap();
+
+ Map<String, String> originalResourceKeyMap = rc.getSkinResourceKeyMap();
try
{
- arc.setSkinResourceKeyMap(_RESOURCE_KEY_MAP);
+ rc.setSkinResourceKeyMap(_RESOURCE_KEY_MAP);
if (!isBidi)
{
ResponseWriter writer = context.getResponseWriter();
@@ -288,47 +295,48 @@
writer.endElement(XhtmlConstants.SPAN_ELEMENT);
}
else
- encodeChild(context, child);
-
+ encodeChild(context, child);
+
if (isLastChild)
- ((CoreRenderingContext) arc).setLinkDisabled(false);
+ ((CoreRenderingContext) rc).setLinkDisabled(false);
}
finally
{
- arc.setSkinResourceKeyMap(originalResourceKeyMap);
- }
+ rc.setSkinResourceKeyMap(originalResourceKeyMap);
+ }
}
-
+
protected boolean shouldRenderLastChild(
- RenderingContext arc
+ RenderingContext rc
)
{
- Object propValue = arc.getSkin().getProperty(
+ Object propValue = rc.getSkin().getProperty(
SkinProperties.AF_NAVIGATIONPATH_SHOW_LAST_ITEM_PROPERTY_KEY);
-
- return Boolean.TRUE.equals(propValue);
+
+ return Boolean.TRUE.equals(propValue);
}
- /**
+ /**
* renderStyleAttributes - use the NavigationPath style class as the default
* styleClass
*/
@Override
protected void renderStyleAttributes(
- FacesContext context,
- RenderingContext arc,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
- renderStyleAttributes(context, arc, bean,
+ renderStyleAttributes(context, rc, component, bean,
SkinSelectors.AF_NAVIGATION_PATH_STYLE_CLASS);
}
-
-
- protected String getOrientation(FacesBean bean)
+ protected String getOrientation(
+ FacesBean bean)
{
return toString(bean.getProperty(_orientationKey));
- }
+ }
//
@@ -339,8 +347,9 @@
* for explanation, do we still need this code?
*/
protected final void renderStartOfLink(
- FacesContext context,
- boolean isVertical) throws IOException
+ FacesContext context,
+ boolean isVertical
+ ) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
@@ -360,41 +369,41 @@
// Renders everything that goes after the link
//
protected final void renderEndOfLink(
- FacesContext context,
- boolean isVertical
+ FacesContext context,
+ boolean isVertical
) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
writer.endElement("nobr");
-
+
if(isVertical)
{
writer.endElement("div");
}
}
-
+
private Object _getFocusRowKey(
- UIXHierarchy component
+ UIXHierarchy component
)
- {
+ {
return component.getFocusRowKey();
}
private int _getMinItemCount(
- RenderingContext arc
+ RenderingContext rc
)
{
int minChildCount = 0;
- boolean shouldRenderLastChild = shouldRenderLastChild(arc);
+ boolean shouldRenderLastChild = shouldRenderLastChild(rc);
if ( !shouldRenderLastChild)
minChildCount = 1;
-
+
return minChildCount;
}
private int _getItemCount(
- UIXHierarchy component
+ UIXHierarchy component
)
{
Object focusPath = _getFocusRowKey(component);
@@ -411,33 +420,34 @@
* defaults to horizontal.
* @return true if the orientation is vertical
*/
- private boolean _isVertical(FacesBean bean)
+ private boolean _isVertical(
+ FacesBean bean)
{
String orientation = getOrientation(bean);
return XhtmlConstants.ORIENTATION_VERTICAL.equals(orientation);
}
protected boolean shouldRenderSeparatorOnNewLineWhenVertical(
- RenderingContext arc
+ RenderingContext rc
)
{
- Object propValue = arc.getSkin().getProperty(
+ Object propValue = rc.getSkin().getProperty(
SkinProperties.AF_BREAD_CRUMBS_SEPARATOR_ON_NEW_LINE);
return Boolean.TRUE.equals(propValue);
}
protected int getNumberOfIndentSpaces(
- RenderingContext arc
+ RenderingContext rc
)
{
- // In the case of narrow-screen PDAs, the number of indent spaces is
+ // In the case of narrow-screen PDAs, the number of indent spaces is
// reduced to decrease the overall breadcrumb's width.
- if (supportsNarrowScreen(arc))
- {
+ if (supportsNarrowScreen(rc))
+ {
return NARROW_SCREEN_INDENT_SPACES;
}
-
- Object propValue = arc.getSkin().getProperty(
+
+ Object propValue = rc.getSkin().getProperty(
SkinProperties.AF_BREAD_CRUMBS_INDENT_SPACES);
int intValue = _INDENT_SPACES;
@@ -451,28 +461,26 @@
return intValue;
}
-
private PropertyKey _orientationKey;
-
// # of hard spaces to use in indenting vertical breadcrumbs
- private static final int _INDENT_SPACES = 10;
-
- // # of hard spaces to use in indenting vertical breadcrumbs
+ private static final int _INDENT_SPACES = 10;
+
+ // # of hard spaces to use in indenting vertical breadcrumbs
// in the case of narrow-screen PDAs
- private static final int NARROW_SCREEN_INDENT_SPACES = 3;
-
+ private static final int NARROW_SCREEN_INDENT_SPACES = 3;
+
private static final Map<String, String> _RESOURCE_KEY_MAP;
static
{
_RESOURCE_KEY_MAP = new HashMap<String, String>();
-
+
_RESOURCE_KEY_MAP.put(
SkinSelectors.LINK_STYLE_CLASS,
SkinSelectors.AF_NAVIGATION_PATH_STEP_STYLE_CLASS);
// the selected step is disabled, which is why we map these two styles
_RESOURCE_KEY_MAP.put(
SkinSelectors.LINK_DISABLED_STYLE_CLASS,
- SkinSelectors.AF_NAVIGATION_PATH_SELECTED_STEP_STYLE_CLASS);
+ SkinSelectors.AF_NAVIGATION_PATH_SELECTED_STEP_STYLE_CLASS);
}
}
Modified: myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java?rev=891522&r1=891521&r2=891522&view=diff
==============================================================================
--- myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java (original)
+++ myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java Thu Dec 17 02:33:05 2009
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,11 +19,12 @@
package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml;
import java.io.IOException;
+
import java.text.DateFormatSymbols;
+
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
-
import java.util.TimeZone;
import javax.faces.component.UIComponent;
@@ -33,16 +34,16 @@
import org.apache.myfaces.trinidad.bean.FacesBean;
import org.apache.myfaces.trinidad.bean.PropertyKey;
import org.apache.myfaces.trinidad.component.core.input.CoreChooseDate;
+import org.apache.myfaces.trinidad.context.LocaleContext;
import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidad.skin.Icon;
-import org.apache.myfaces.trinidad.util.IntegerUtils;
import org.apache.myfaces.trinidad.util.FastMessageFormat;
-
+import org.apache.myfaces.trinidad.util.IntegerUtils;
import org.apache.myfaces.trinidadinternal.renderkit.core.pages.GenericEntry;
-import org.apache.myfaces.trinidad.context.LocaleContext;
import org.apache.myfaces.trinidadinternal.share.url.EncoderUtils;
+
/**
* Renders the calendar.
* <p>
@@ -63,13 +64,15 @@
this(CoreChooseDate.TYPE);
}
- protected ChooseDateRenderer(FacesBean.Type type)
+ protected ChooseDateRenderer(
+ FacesBean.Type type)
{
super(type);
}
@Override
- protected void findTypeConstants(FacesBean.Type type)
+ protected void findTypeConstants(
+ FacesBean.Type type)
{
super.findTypeConstants(type);
_maxValueKey = type.findKey("maxValue");
@@ -96,68 +99,69 @@
@Override
protected final void encodeAll(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
// Currently, we require scripting to render anything
- if (!supportsScripting(arc))
+ if (!supportsScripting(rc))
return;
- if (canSkipRendering(context, arc, component))
+ if (canSkipRendering(context, rc, component))
return;
// If we are running in inline mode, make sure that we are
// in an environment that supports partial page rendering.
// If not, render nothing - the user will need to use the
// secondary window to select a date.
- boolean isInline = isInline(bean);
- if (isInline && !isInlineSupported(arc))
+ boolean isInline = isInline(component, bean);
+ if (isInline && !isInlineSupported(rc))
return;
// TRINIDAD-1349: The client converter assumes a fixed timezone offset
// between the server and itself. It calculates that by passing the
- // server's timezone offset at the current date-time, as _uixLocaleTZ.
- // However, if we are rendering a month in which daylight savings occurs in
+ // server's timezone offset at the current date-time, as _uixLocaleTZ.
+ // However, if we are rendering a month in which daylight savings occurs in
// the application timezone, the offset value may be different. In that case
- // pass the new offset value for the client to use.
- TimeZone tz = arc.getLocaleContext().getTimeZone();
-
+ // pass the new offset value for the client to use.
+ TimeZone tz = rc.getLocaleContext().getTimeZone();
+
// TRINIDAD-1419: chooseDate golden files should stay the same even if
- // the server runs in different timezones.
+ // the server runs in different timezones.
long currTimeMillis = 0;
Object currTimeValue = bean.getProperty (_currTimeKey);
if (currTimeValue != null)
currTimeMillis = ((Date) currTimeValue).getTime();
else
currTimeMillis = System.currentTimeMillis();
-
+
int baseTZOffsetMinutes = tz.getOffset(currTimeMillis/(1000*60));
- boolean isDesktop = isDesktop(arc);
+ boolean isDesktop = isDesktop(rc);
ResponseWriter writer = context.getResponseWriter();
writer.startElement("table", component);
renderId(context, component);
- renderAllAttributes(context, arc, bean);
+ renderAllAttributes(context, rc, component, bean);
if (isDesktop)
- OutputUtils.renderLayoutTableAttributes(context, arc, "0", null);
+ OutputUtils.renderLayoutTableAttributes(context, rc, "0", null);
else
- OutputUtils.renderLayoutTableAttributes(context, arc, "0", "100%");
+ OutputUtils.renderLayoutTableAttributes(context, rc, "0", "100%");
// Get the styles that we'll use to render the calendar
CalendarStyles styles = _getCalendarStyles(isInline);
// get the calendar of the minimum displayable time
- long minTime = _getMinTime(arc, bean);
+ long minTime = _getMinTime(rc, bean);
// get the calendar of the maximum displayable time
- long maxTime = _getMaxTime(arc, bean);
+ long maxTime = _getMaxTime(rc, bean);
// get the currently selected Time
- long selectedTime = _getSelectedTime(arc, bean, minTime, maxTime);
-
+ long selectedTime = _getSelectedTime(rc, bean, minTime, maxTime);
+
// get the id
String id = getClientId(context, component);
@@ -168,11 +172,11 @@
context,
GenericEntry.INLINE_DATE_PICKER_ENTRY);
else
- destString = getDestination(bean);
+ destString = getDestination(component, bean);
// get the calendar of the currently displayed time
- Calendar displayedCalendar = _getDisplayedCalendar(arc,
+ Calendar displayedCalendar = _getDisplayedCalendar(rc,
bean,
minTime,
maxTime,
@@ -180,7 +184,7 @@
int firstDOM = _getActualMinimumDayOfMonth(displayedCalendar);
int lastDOM = _getActualMaximumDayOfMonth(displayedCalendar);
-
+
// determine the the starting times and ending times of the first and
// last days of the month
// Create a copy of the calendar so we don't hammer the current values
@@ -195,7 +199,7 @@
calcCal.add(Calendar.DATE, 1);
long lastDOMTime = calcCal.getTimeInMillis() - 1;
- DateFormatSymbols dateSymbols = _getDateFormatSymbols(arc);
+ DateFormatSymbols dateSymbols = _getDateFormatSymbols(rc);
int firstDOW = displayedCalendar.getMinimum(Calendar.DAY_OF_WEEK);
int lastDOW = displayedCalendar.getMaximum(Calendar.DAY_OF_WEEK);
@@ -207,13 +211,13 @@
// If we're running in inline mode, make sure we have
// access to the necessary scripts
if (isInline)
- XhtmlUtils.addLib(context, arc, "_calsd()");
+ XhtmlUtils.addLib(context, rc, "_calsd()");
// make sure that the js lib is added
- XhtmlUtils.addLib(context, arc, "_updateCal()");
+ XhtmlUtils.addLib(context, rc, "_updateCal()");
- String baseNavURL = _createNavURL(arc,
+ String baseNavURL = _createNavURL(rc,
destString,
minTime,
maxTime,
@@ -224,7 +228,7 @@
// render the previous button
_renderNextPrev(context,
- arc,
+ rc,
component,
bean,
true,
@@ -235,13 +239,13 @@
writer.startElement("td", null);
writer.writeAttribute("colspan", IntegerUtils.getString(dowCount - 2), null);
- renderStyleClass(context, arc, styles.TITLE_STYLE);
+ renderStyleClass(context, rc, styles.TITLE_STYLE);
// don't wrap the month and year controls
writer.writeAttribute("nowrap", Boolean.TRUE, null);
_renderMonthAndYear(context,
- arc,
+ rc,
minTime,
maxTime,
displayedCalendar,
@@ -254,7 +258,7 @@
// render the next button
_renderNextPrev(context,
- arc,
+ rc,
component,
bean,
false,
@@ -274,22 +278,22 @@
writer.startElement("table", null);
//fix for bug 4410632: added summary attribute
OutputUtils.renderDataTableAttributes(context,
- arc,
+ rc,
"0", "0", "0", "100%",
- arc.getTranslatedString("af_chooseDate.SUMMARY"));
- renderStyleClass(context, arc, styles.CONTENT_STYLE);
+ rc.getTranslatedString("af_chooseDate.SUMMARY"));
+ renderStyleClass(context, rc, styles.CONTENT_STYLE);
//
// Write the day of the week headers
//
writer.startElement("tr", null);
- renderStyleClass(context, arc, styles.HEADER_STYLE);
+ renderStyleClass(context, rc, styles.HEADER_STYLE);
String[] shortWeekdays;
// Bug 2388968: Java's "short" weekdays in Arabic are single
// letters, which we're told are inadequate. Output entire
// names instead.
- if ("ar".equals(arc.getLocaleContext().getFormattingLocale().getLanguage()))
+ if ("ar".equals(rc.getLocaleContext().getFormattingLocale().getLanguage()))
shortWeekdays = dateSymbols.getWeekdays();
else
shortWeekdays = dateSymbols.getShortWeekdays();
@@ -337,7 +341,7 @@
// is way too big - unless we render the disabled style class.
if (isInline)
{
- renderStyleClass(context, arc, styles.DISABLED_STYLE);
+ renderStyleClass(context, rc, styles.DISABLED_STYLE);
}
writer.writeText(String.valueOf(i), null);
@@ -380,7 +384,7 @@
if (isInline && !enabledDay)
{
- renderStyleClass(context, arc, styles.DISABLED_STYLE);
+ renderStyleClass(context, rc, styles.DISABLED_STYLE);
}
boolean selectedDay = false;
@@ -402,7 +406,7 @@
// a date in the date field. (see bug #1482511)
//
writer.startElement("a", null);
- renderSelectDayAttributes(arc,
+ renderSelectDayAttributes(rc,
context,
keysAndValues,
id,
@@ -416,7 +420,7 @@
if (selectedDay)
{
writer.startElement("span", null);
- renderStyleClass(context, arc, styles.SELECTED_STYLE);
+ renderStyleClass(context, rc, styles.SELECTED_STYLE);
}
writer.writeText(String.valueOf(currDOM), null);
@@ -454,7 +458,7 @@
break;
}
} while (true);
-
+
// Reset the calendar
displayedCalendar.set(Calendar.DAY_OF_MONTH, firstDOM);
@@ -478,7 +482,7 @@
if (isInline)
{
- renderStyleClass(context, arc, styles.DISABLED_STYLE);
+ renderStyleClass(context, rc, styles.DISABLED_STYLE);
}
writer.writeText(String.valueOf(i), null);
@@ -497,22 +501,22 @@
protected void renderSelectDayAttributes(
- RenderingContext arc,
- FacesContext context,
- String[] keysAndValues,
- String id,
- long currTime,
- int baseTZOffsetMinutes,
- boolean isInline,
- boolean isDesktop,
- String destString
+ RenderingContext rc,
+ FacesContext context,
+ String[] keysAndValues,
+ String id,
+ long currTime,
+ int baseTZOffsetMinutes,
+ boolean isInline,
+ boolean isDesktop,
+ String destString
) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
-
+
if (isDesktop)
{
- TimeZone tz = arc.getLocaleContext().getTimeZone();
+ TimeZone tz = rc.getLocaleContext().getTimeZone();
int tzOffsetMinutes = tz.getOffset(currTime)/(1000*60);
StringBuilder clickRef = new StringBuilder(30);
@@ -559,8 +563,8 @@
* Render the next and previous buttons of the calendar dialog.
*/
protected void renderNextPrev(
- FacesContext context,
- RenderingContext arc,
+ FacesContext context,
+ RenderingContext rc,
UIComponent component,
FacesBean bean,
boolean isPrev,
@@ -571,11 +575,11 @@
String onClick
) throws IOException
{
- CalendarStyles styles = _getCalendarStyles(bean);
+ CalendarStyles styles = _getCalendarStyles(component, bean);
ResponseWriter writer = context.getResponseWriter();
writer.startElement("td", null);
- renderStyleClass(context, arc, styles.NAV_STYLE);
+ renderStyleClass(context, rc, styles.NAV_STYLE);
writer.writeAttribute("align", halign, null);
@@ -587,7 +591,7 @@
}
String iconName;
- if(isInline(bean))
+ if(isInline(component, bean))
{
if (isPrev)
{
@@ -618,13 +622,13 @@
}
}
- Icon icon = arc.getIcon(iconName);
+ Icon icon = rc.getIcon(iconName);
// If we've got an Icon, render it
if (icon != null)
{
OutputUtils.renderIcon(context,
- arc,
+ rc,
icon,
altText,
null);
@@ -638,7 +642,9 @@
writer.endElement("td");
}
- protected String getDestination(FacesBean bean)
+ protected String getDestination(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_destinationKey));
}
@@ -646,24 +652,26 @@
/**
* Tests whether the calendar is running in "inline" mode.
*/
- protected boolean isInline(FacesBean bean)
+ protected boolean isInline(
+ UIComponent component,
+ FacesBean bean)
{
// For now, we assume that a null destination means that
// we are running in inline mode, since CalendarDialogJSP *always*
// sets the destination. Perhaps it would be safer if we
// didn't make this assumption but instead used some explicit
// attribute which indicates the mode.
- return (getDestination(bean) == null);
+ return (getDestination(component, bean) == null);
}
/**
* Render the next and previous buttons of the calendar dialog.
*/
private void _renderNextPrev(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean,
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean,
boolean isPrev,
long compareTime,
long buttonTime,
@@ -682,7 +690,7 @@
// move to the last day in the previous month
buttonTime -= _MILLIS_IN_DAY;
- iconDesc = arc.getTranslatedString("af_chooseDate.PREVIOUS_MONTH_TIP");
+ iconDesc = rc.getTranslatedString("af_chooseDate.PREVIOUS_MONTH_TIP");
halign = "left";
}
else
@@ -692,7 +700,7 @@
// move to the first day in the next month
buttonTime += _MILLIS_IN_DAY;
- iconDesc = arc.getTranslatedString("af_chooseDate.NEXT_MONTH_TIP");
+ iconDesc = rc.getTranslatedString("af_chooseDate.NEXT_MONTH_TIP");
halign = "right";
}
@@ -713,7 +721,7 @@
}
renderNextPrev( context,
- arc,
+ rc,
component,
bean,
isPrev,
@@ -725,13 +733,11 @@
}
-
-
/**
* Creates the base navigation URL
*/
private String _createNavURL(
- RenderingContext arc,
+ RenderingContext rc,
String destinationString,
long minTime,
long maxTime,
@@ -742,7 +748,7 @@
StringBuffer buffer = new StringBuffer();
- String[] params = _createNavURLParams( arc,
+ String[] params = _createNavURLParams( rc,
minTime,
maxTime,
selectedTime,
@@ -753,16 +759,15 @@
return buffer.toString();
}
-
/**
* Creates the params for navigation URL
*/
private String[] _createNavURLParams(
- RenderingContext arc,
- long minTime,
- long maxTime,
- long selectedTime,
- String id
+ RenderingContext rc,
+ long minTime,
+ long maxTime,
+ long selectedTime,
+ String id
)
{
return new String[] {
@@ -775,13 +780,10 @@
XhtmlConstants.VALUE_PARAM,
String.valueOf(selectedTime),
LOC_PARAM,
- arc.getLocaleContext().getFormattingIANALocaleString()
+ rc.getLocaleContext().getFormattingIANALocaleString()
};
}
-
-
-
/**
* Returns the change handler to use for the choices
*/
@@ -805,22 +807,21 @@
return buffer.toString();
}
-
private void _renderMonthChoice(
- FacesContext context,
- RenderingContext arc,
- String[] months,
- Calendar currentTime,
- int visibleMonth,
- int minimumMonth,
- int maximumMonth,
- long offset,
- String onChange,
- String baseId
+ FacesContext context,
+ RenderingContext rc,
+ String[] months,
+ Calendar currentTime,
+ int visibleMonth,
+ int minimumMonth,
+ int maximumMonth,
+ long offset,
+ String onChange,
+ String baseId
) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
- String label = arc.getTranslatedString("af_chooseDate.MONTH_CHOICE_LABEL");
+ String label = rc.getTranslatedString("af_chooseDate.MONTH_CHOICE_LABEL");
String id = MONTH_PARAM;
// If we've got a baseID, tack it on. This is necessary
@@ -839,7 +840,7 @@
writer.writeAttribute("title", label, null);
writer.writeAttribute("onchange", onChange, null);
renderStyleClass(context,
- arc,
+ rc,
SkinSelectors.AF_FIELD_TEXT_STYLE_CLASS);
for (int currMonth = minimumMonth; currMonth <= maximumMonth; currMonth++)
@@ -868,7 +869,7 @@
writer.endElement("select");
HiddenLabelUtils.outputHiddenLabelIfNeeded(context,
- arc,
+ rc,
id,
label,
null);
@@ -876,8 +877,8 @@
private void _renderYearChoice(
- FacesContext context,
- RenderingContext arc,
+ FacesContext context,
+ RenderingContext rc,
Calendar currentTime,
int year,
int minimumYear,
@@ -886,7 +887,7 @@
String baseId
) throws IOException
{
- String label = arc.getTranslatedString("af_chooseDate.YEAR_CHOICE_LABEL");
+ String label = rc.getTranslatedString("af_chooseDate.YEAR_CHOICE_LABEL");
String id = YEAR_PARAM;
// If we've got a baseID, tack it on. This is necessary
@@ -904,7 +905,7 @@
writer.writeAttribute("title", label, null);
writer.writeAttribute("onchange", onChange, null);
renderStyleClass(context,
- arc,
+ rc,
SkinSelectors.AF_FIELD_TEXT_STYLE_CLASS);
boolean needsPrevItem = false;
@@ -962,7 +963,7 @@
currentTime,
minimumYear - 1,
year,
- _getBeforeFormat(arc).format(
+ _getBeforeFormat(rc).format(
new String[]{String.valueOf(minimumYear)}));
}
@@ -985,14 +986,14 @@
currentTime,
maximumYear + 1,
year,
- _getAfterFormat(arc).format(
+ _getAfterFormat(rc).format(
new String[]{String.valueOf(maximumYear)}));
}
writer.endElement("select");
HiddenLabelUtils.outputHiddenLabelIfNeeded(context,
- arc,
+ rc,
id,
label,
null);
@@ -1005,12 +1006,11 @@
*/
private void _writeYearOption(
ResponseWriter writer,
- Calendar currentTime,
- int year,
- int selectedYear,
- String text
- )
- throws IOException
+ Calendar currentTime,
+ int year,
+ int selectedYear,
+ String text
+ ) throws IOException
{
writer.startElement("option", null);
@@ -1031,15 +1031,12 @@
writer.endElement("option");
}
-
-
-
/**
* Renders the month and year portion of the Calendar
*/
private void _renderMonthAndYear(
- FacesContext context,
- RenderingContext arc,
+ FacesContext context,
+ RenderingContext rc,
long minTime,
long maxTime,
Calendar displayedCalendar,
@@ -1050,8 +1047,8 @@
) throws IOException
{
String jsNavURL = _escapeJSURL(context, baseNavURL);
- Calendar minCalendar = _getCalendar(arc, minTime);
- Calendar maxCalendar = _getCalendar(arc, maxTime);
+ Calendar minCalendar = _getCalendar(rc, minTime);
+ Calendar maxCalendar = _getCalendar(rc, maxTime);
int minYear = minCalendar.get(Calendar.YEAR);
int maxYear = maxCalendar.get(Calendar.YEAR);
@@ -1083,7 +1080,7 @@
// Initialize the calendar for the current year so that we
// can compute the month offsets
//
- Calendar currentTime = _getCalendar(arc);
+ Calendar currentTime = _getCalendar(rc);
_zeroOutTime(currentTime);
@@ -1101,7 +1098,7 @@
currentTime.set(Calendar.DAY_OF_MONTH, 15);
_renderMonthChoice( context,
- arc,
+ rc,
monthNames,
currentTime,
monthIndex,
@@ -1125,7 +1122,7 @@
currentTime.set(Calendar.MONTH, monthIndex);
_renderYearChoice( context,
- arc,
+ rc,
currentTime,
year,
minYear,
@@ -1138,7 +1135,7 @@
else
{
// format used for combining months and years
- FastMessageFormat titleFormat = _getTitleFormat(arc);
+ FastMessageFormat titleFormat = _getTitleFormat(rc);
String monthName = monthNames[monthIndex];
String yearName = String.valueOf(year);
@@ -1211,13 +1208,13 @@
if (tzOffset < 0)
{
// Cast to (float) has a purpose
- tzOffset = (long)Math.max((float)tzOffset,
+ tzOffset = (long)Math.max((float)tzOffset,
(float)Long.MIN_VALUE - (float)dateValueInMs);
}
else
{
// Cast to (float) has a purpose
- tzOffset = (long)Math.min((float)tzOffset,
+ tzOffset = (long)Math.min((float)tzOffset,
(float)Long.MAX_VALUE - (float)dateValueInMs);
}
@@ -1514,9 +1511,11 @@
// Returns the CalendarStyles object to use when
// rendering the specified calendar component
- private CalendarStyles _getCalendarStyles(FacesBean bean)
+ private CalendarStyles _getCalendarStyles(
+ UIComponent component,
+ FacesBean bean)
{
- return _getCalendarStyles(isInline(bean));
+ return _getCalendarStyles(isInline(component, bean));
}
// Gets the calendar styles for the specified mode
@@ -1584,7 +1583,7 @@
// Rendering Context cache keys
//
private static final Object _DATE_SYMBOLS_KEY = new Object();
-
+
static
{
// =-= bts
Modified: myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java?rev=891522&r1=891521&r2=891522&view=diff
==============================================================================
--- myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java (original)
+++ myfaces/trinidad/branches/trinidad-2.0.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java Thu Dec 17 02:33:05 2009
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,6 +19,7 @@
package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml;
import java.io.IOException;
+
import java.util.ArrayList;
import java.util.List;
@@ -30,17 +31,18 @@
import org.apache.myfaces.trinidad.bean.PropertyKey;
import org.apache.myfaces.trinidad.component.UIXCollection;
import org.apache.myfaces.trinidad.component.core.data.CoreColumn;
+import org.apache.myfaces.trinidad.context.FormData;
+import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidad.model.SortCriterion;
+import org.apache.myfaces.trinidad.skin.Icon;
+import org.apache.myfaces.trinidad.util.IntegerUtils;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
-import org.apache.myfaces.trinidad.context.FormData;
-import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.CellUtils;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.ColumnData;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.RenderStage;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableRenderingContext;
-import org.apache.myfaces.trinidad.skin.Icon;
-import org.apache.myfaces.trinidad.util.IntegerUtils;
+
/**
* @todo Kill the now-strange "compute mode", since we can
@@ -61,7 +63,8 @@
}
@Override
- protected void findTypeConstants(FacesBean.Type type)
+ protected void findTypeConstants(
+ FacesBean.Type type)
{
super.findTypeConstants(type);
_headerTextKey = type.findKey("headerText");
@@ -82,12 +85,16 @@
return true;
}
- protected String getHeaderText(FacesBean bean)
+ protected String getHeaderText(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_headerTextKey));
}
- protected boolean getHeaderNoWrap(FacesBean bean)
+ protected boolean getHeaderNoWrap(
+ UIComponent component,
+ FacesBean bean)
{
Object o = bean.getProperty(_headerNoWrapKey);
if (o == null)
@@ -96,7 +103,9 @@
return Boolean.TRUE.equals(o);
}
- protected boolean getNoWrap(FacesBean bean)
+ protected boolean getNoWrap(
+ UIComponent component,
+ FacesBean bean)
{
Object o = bean.getProperty(_noWrapKey);
if (o == null)
@@ -105,8 +114,9 @@
return Boolean.TRUE.equals(o);
}
-
- protected boolean getRowHeader(FacesBean bean)
+ protected boolean getRowHeader(
+ UIComponent component,
+ FacesBean bean)
{
Object o = bean.getProperty(_rowHeaderKey);
if (o == null)
@@ -115,8 +125,9 @@
return Boolean.TRUE.equals(o);
}
-
- protected boolean getSeparateRows(FacesBean bean)
+ protected boolean getSeparateRows(
+ UIComponent component,
+ FacesBean bean)
{
Object o = bean.getProperty(_separateRowsKey);
if (o == null)
@@ -125,18 +136,23 @@
return Boolean.TRUE.equals(o);
}
- protected String getWidth(FacesBean bean)
+ protected String getWidth(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_widthKey));
}
- protected String getFormatType(FacesBean bean)
+ protected String getFormatType(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_alignKey));
}
-
- protected boolean getSortable(FacesBean bean)
+ protected boolean getSortable(
+ UIComponent component,
+ FacesBean bean)
{
Object o = bean.getProperty(_sortableKey);
if (o == null)
@@ -145,13 +161,16 @@
return !Boolean.FALSE.equals(o);
}
-
- protected String getSortProperty(FacesBean bean)
+ protected String getSortProperty(
+ UIComponent component,
+ FacesBean bean)
{
return toString(bean.getProperty(_sortPropertyKey));
}
- protected String getDefaultSortOrder(FacesBean bean)
+ protected String getDefaultSortOrder(
+ UIComponent component,
+ FacesBean bean)
{
if (_defaultSortOrderKey == null)
return null;
@@ -159,8 +178,8 @@
return toString(bean.getProperty(_defaultSortOrderKey));
}
-
- static public String getDefaultHeaderStyleClass(TableRenderingContext tContext)
+ static public String getDefaultHeaderStyleClass(
+ TableRenderingContext tContext)
{
return ColumnData.selectFormat(tContext,
SkinSelectors.AF_COLUMN_HEADER_TEXT_STYLE,
@@ -175,7 +194,8 @@
* left-aligned for text, right-aligned for numbers and center-aligned
* for icons.
*/
- protected String getHeaderStyleClass(TableRenderingContext tContext)
+ protected String getHeaderStyleClass(
+ TableRenderingContext tContext)
{
return getDefaultHeaderStyleClass(tContext);
}
@@ -185,10 +205,11 @@
*/
@Override
protected void encodeAll(
- FacesContext context,
- RenderingContext arc,
- UIComponent component,
- FacesBean bean) throws IOException
+ FacesContext context,
+ RenderingContext rc,
+ UIComponent component,
+ FacesBean bean
+ ) throws IOException
{
TableRenderingContext tContext =
TableRenderingContext.getCurrentInstance();
@@ -201,7 +222,7 @@
_computeMode(context, tContext, component);
break;
case RenderStage.COLUMN_HEADER_STAGE:
- _renderHeaderMode(context, arc, tContext, component);
+ _renderHeaderMode(context, rc, tContext, component);
break;
// For these stages, simply render the children; we
// need no special processing at the column group level
@@ -220,10 +241,11 @@
}
private void _renderHeaderMode(
- FacesContext context,
- RenderingContext arc,
+ FacesContext context,
+ RenderingContext rc,
TableRenderingContext tContext,
- UIComponent column) throws IOException
+ UIComponent column
+ ) throws IOException
{
final NodeData parentNode = getParentNode(tContext);
final boolean areWeRoot;
@@ -255,7 +277,7 @@
// which row our children will start rendering:
currentNode.waitUntilRow = rowSpan + row;
- String headerID = _renderColumnHeader(context, arc, tContext, column,
+ String headerID = _renderColumnHeader(context, rc, tContext, column,
rowSpan, currentNode.cols);
if (headerID != null)
{
@@ -295,17 +317,17 @@
*/
private String _renderColumnHeader(
FacesContext context,
- RenderingContext arc,
+ RenderingContext rc,
TableRenderingContext tContext,
UIComponent column,
int rowSpan,
- int colSpan)
- throws IOException
+ int colSpan
+ ) throws IOException
{
ColumnData colData = tContext.getColumnData();
// only no-wrap header cells if specified
- boolean isNoWrap = getHeaderNoWrap(getFacesBean(column));
+ boolean isNoWrap = getHeaderNoWrap(column, getFacesBean(column));
// indicate to the headerNode that it is a column group header
colData.setColumnGroupHeader(true);
@@ -313,7 +335,7 @@
colData.setCurrentHeaderNoWrap(isNoWrap);
final String colID =
- renderHeaderAndSpan(context, arc, tContext, column,
+ renderHeaderAndSpan(context, rc, tContext, column,
rowSpan, colSpan);
colData.setColumnGroupHeader(false);
colData.setCurrentHeaderNoWrap(false);
@@ -342,12 +364,12 @@
*/
protected final String renderHeaderAndSpan(
FacesContext context,
- RenderingContext arc,
+ RenderingContext rc,
TableRenderingContext tContext,
UIComponent column,
int rowSpan,
- int colSpan)
- throws IOException
+ int colSpan
+ ) throws IOException
{
ColumnData colData = tContext.getColumnData();
String colID;
@@ -362,8 +384,8 @@
int physicalIndex = colData.getPhysicalColumnIndex();
int sortability = getSortability(tContext, column);
boolean sortable = (sortability != SORT_NO) &&
- supportsNavigation(arc);
-
+ supportsNavigation(rc);
+
if(sortable)
{
// the sortable script has a "state" parameter, so add this
@@ -371,18 +393,18 @@
// generation of elements (on those that do, form data elements
// can be created on the fly as necessary); see the JS
// referenced in this.getSortingOnclick
- Object domLevel =
- arc.getAgent().getCapabilities().get(TrinidadAgent.CAP_DOM);
+ Object domLevel =
+ rc.getAgent().getCapabilities().get(TrinidadAgent.CAP_DOM);
if(
- domLevel == null ||
- domLevel == TrinidadAgent.DOM_CAP_NONE ||
+ domLevel == null ||
+ domLevel == TrinidadAgent.DOM_CAP_NONE ||
domLevel == TrinidadAgent.DOM_CAP_FORM)
{
- FormData formData = arc.getFormData();
+ FormData formData = rc.getFormData();
if(formData != null)
{
formData.addNeededValue(XhtmlConstants.STATE_PARAM);
- }
+ }
}
}
@@ -397,14 +419,14 @@
String sortIconName = _getIconName(sortability);
- Icon sortIcon = arc.getIcon(sortIconName);
+ Icon sortIcon = rc.getIcon(sortIconName);
boolean hasSortingIcon = (sortIcon != null) && !sortIcon.isNull();
// we do not want to wrap if there is an icon on the header:
// On PDA, where screen width is limited, we cannot afford not to
// wrap. isPDA check is used in several places in this class.
// PDA specific logic will be moved to PDA render kit in the future.
- if (!isPDA(arc))
+ if (!isPDA(rc))
{
isNoWrap = isNoWrap || hasSortingIcon;
}
@@ -426,15 +448,15 @@
String styleClass = getSortableHeaderStyleClass(tContext, sortability);
String borderStyleClass =
CellUtils.getHeaderBorderStyle(tContext,
- arc,
+ rc,
true, //isColHeader
sortable);
- renderStyleClasses(context, arc, new String[]{ styleClass,
+ renderStyleClasses(context, rc, new String[]{ styleClass,
borderStyleClass});
- String style = getHeaderInlineStyle(arc);
- renderInlineStyleAttribute(context, arc, style);
+ String style = getHeaderInlineStyle(rc);
+ renderInlineStyleAttribute(context, rc, column, style);
if (colSpan > 1)
rw.writeAttribute("colspan", IntegerUtils.getString(colSpan), null);
@@ -445,11 +467,11 @@
rw.writeAttribute("rowspan", IntegerUtils.getString(rowSpan), null);
String sortOnclick = "";
- if (supportsScripting(arc))
+ if (supportsScripting(rc))
{
- sortOnclick = getSortingOnclick(arc, tContext, column, sortability);
+ sortOnclick = getSortingOnclick(rc, tContext, column, sortability);
}
-
+
//=-=AEW Review: Does this need to support any other handlers?
//=-=AEW Apparently in PDA, we don't bother rendering
@@ -459,12 +481,12 @@
// be driven off an "event bubbling" agent property.
// - HKuhn if printable mode (supportScripting is disabled),
// then no need for rendering onclick
- if (!isPDA(arc) && supportsScripting(arc))
+ if (!isPDA(rc) && supportsScripting(rc))
rw.writeAttribute("onclick", sortOnclick, null);
// TODO: we should pass in null for "event bubbling" systems
renderHeaderContents(context,
- arc,
+ rc,
tContext,
column,
sortability,
@@ -481,7 +503,8 @@
* @return an inline style String to be rendered on headers (used on
* special subclasses)
*/
- protected String getHeaderInlineStyle(RenderingContext arc)
+ protected String getHeaderInlineStyle(
+ RenderingContext rc)
{
return null;
}
@@ -490,29 +513,29 @@
/**
*/
protected String getSortingOnclick(
- RenderingContext arc,
+ RenderingContext rc,
TableRenderingContext tContext,
UIComponent column,
int sortability)
{
FacesBean bean = getFacesBean(column);
- String onclick = getOnclick(bean);
+ String onclick = getOnclick(column, bean);
if (sortability == SORT_NO)
return onclick;
- if (arc.getFormData() == null)
+ if (rc.getFormData() == null)
{
_LOG.warning("SORTING_DISABLED_TABLE_NOT_IN_FORM");
return onclick;
}
- String formName = arc.getFormData().getName();
+ String formName = rc.getFormData().getName();
String source = tContext.getTableId();
- String value = getSortProperty(bean);
+ String value = getSortProperty(column, bean);
// Note that "state" refers to the current state, not
// the state will be set after clicking
- String state = findSortState(sortability, bean);
-
+ String state = findSortState(sortability, column, bean);
+
StringBuffer buffer = new StringBuffer(33+
formName.length() +
source.length() +
@@ -543,12 +566,13 @@
protected void renderHeaderContents(
FacesContext context,
- RenderingContext arc,
+ RenderingContext rc,
TableRenderingContext tContext,
UIComponent column,
int sortability,
Icon sortIcon,
- String sortOnclick) throws IOException
+ String sortOnclick
+ ) throws IOException
{
ResponseWriter rw = context.getResponseWriter();
UIComponent header = getFacet(column, CoreColumn.HEADER_FACET);
@@ -558,43 +582,42 @@
}
else
{
- String headerText = getHeaderText(getFacesBean(column));
+ String headerText = getHeaderText(column, getFacesBean(column));
if (headerText != null)
rw.writeText(headerText, "headerText");
}
- renderSortOrderSymbol(context, arc, column, tContext,
+ renderSortOrderSymbol(context, rc, column, tContext,
sortability, sortIcon, sortOnclick);
-
+
}
-
-
+
/**
* @todo IMPLEMENT
*/
protected void renderSortOrderSymbol(
- FacesContext context,
- RenderingContext arc,
+ FacesContext context,
+ RenderingContext rc,
UIComponent column,
TableRenderingContext tContext,
- int sortability,
- Icon icon,
- String sortOnclick
+ int sortability,
+ Icon icon,
+ String sortOnclick
) throws IOException
{
if ((icon == null) || icon.isNull())
return;
ResponseWriter writer = context.getResponseWriter();
- boolean supportNav = supportsNavigation(arc);
+ boolean supportNav = supportsNavigation(rc);
boolean NonJavaScriptBrowser = false;
boolean renderedInput = false;
if (supportNav)
{
- if (isPDA(arc))
+ if (isPDA(rc))
writer.writeText(XhtmlConstants.NBSP_STRING, null);
-
- NonJavaScriptBrowser = !supportsScripting(arc);
+
+ NonJavaScriptBrowser = !supportsScripting(rc);
if (NonJavaScriptBrowser)
{
renderedInput = true;
@@ -602,8 +625,8 @@
writer.writeAttribute("type", "submit", null);
String source = tContext.getTableId();
FacesBean bean = getFacesBean(column);
- String value = getSortProperty(bean);
- String state = findSortState(sortability, bean);
+ String value = getSortProperty(column, bean);
+ String state = findSortState(sortability, column, bean);
String nameAttri;
if (state != "")
{
@@ -639,15 +662,15 @@
if (state.equals(XhtmlConstants.SORTABLE_ASCENDING))
{
writer.writeAttribute("value",
- XhtmlConstants.NON_JS_DESC_ICON, null);
+ XhtmlConstants.NON_JS_DESC_ICON, null);
}
else
{
- writer.writeAttribute("value",
- XhtmlConstants.NON_JS_ASC_ICON, null);
+ writer.writeAttribute("value",
+ XhtmlConstants.NON_JS_ASC_ICON, null);
}
- writer.writeAttribute("class",
+ writer.writeAttribute("class",
SkinSelectors.SORTABLE_HEADER_SORT_ICON_STYLE_CLASS, null);
}
else
@@ -673,10 +696,10 @@
}
- String altText = arc.getTranslatedString(altTextKey);
+ String altText = rc.getTranslatedString(altTextKey);
+
+ Object align = OutputUtils.getMiddleIconAlignment(rc);
- Object align = OutputUtils.getMiddleIconAlignment(arc);
-
//Don't render any child element for input element
if (!renderedInput)
{
@@ -684,7 +707,7 @@
// allows text-based Icons to render their style class
// and altText directly on the anchor itself
OutputUtils.renderIcon(context,
- arc,
+ rc,
icon,
altText,
align,
@@ -727,13 +750,13 @@
return 0;
// If there's no sort property, it's not sortable
- String property = getSortProperty(bean);
+ String property = getSortProperty(column, bean);
if (property == null)
return SORT_NO;
// And if the renderer-specific "sortable" property is set to false,
// it's not sortable
- if (!getSortable(bean))
+ if (!getSortable(column, bean))
return SORT_NO;
// Otherwise, look at the first sort criteria
@@ -754,8 +777,8 @@
}
protected boolean hasSortingIcon(
- RenderingContext arc,
- int sortability)
+ RenderingContext rc,
+ int sortability)
{
return sortability != SORT_NO;
}
@@ -763,7 +786,8 @@
/**
* gets the icon name to use
*/
- private String _getIconName(int sortable)
+ private String _getIconName(
+ int sortable)
{
switch (sortable)
{
@@ -779,9 +803,10 @@
}
private void _computeMode(
- FacesContext context,
+ FacesContext context,
TableRenderingContext tContext,
- UIComponent component) throws IOException
+ UIComponent component
+ ) throws IOException
{
// since we use colSpan we need headers attributes on all the table's data
// cells:
@@ -825,10 +850,11 @@
}
@SuppressWarnings("unchecked")
- private void _renderChildren(FacesContext context,
- UIComponent component,
- NodeData parentNode)
- throws IOException
+ private void _renderChildren(
+ FacesContext context,
+ UIComponent component,
+ NodeData parentNode
+ ) throws IOException
{
int i = 0;
for(UIComponent child : (List<UIComponent>)component.getChildren())
@@ -840,22 +866,24 @@
{
parentNode.currentChild = i;
}
-
+
encodeChild(context, child);
}
-
+
i++;
}
}
- protected final NodeData getParentNode(TableRenderingContext tContext)
+ protected final NodeData getParentNode(
+ TableRenderingContext tContext)
{
NodeList nl = _getNodeList(tContext, false);
return (nl == null) ? null : nl.currentNode;
}
- private void _setParentNode(TableRenderingContext tContext,
- NodeData parentNode)
+ private void _setParentNode(
+ TableRenderingContext tContext,
+ NodeData parentNode)
{
_getNodeList(tContext, true).currentNode = parentNode;
}
@@ -867,8 +895,9 @@
* @param sortability the value returned by getSortability()
* @return the skinning selector for the header
*/
- protected String getSortableHeaderStyleClass(TableRenderingContext tContext,
- int sortability)
+ protected String getSortableHeaderStyleClass(
+ TableRenderingContext tContext,
+ int sortability)
{
ColumnData colData = tContext.getColumnData();
// if we are a columnGroup header, then we must be centered:
@@ -899,8 +928,9 @@
}
}
- private NodeList _getNodeList(TableRenderingContext tContext,
- boolean create)
+ private NodeList _getNodeList(
+ TableRenderingContext tContext,
+ boolean create)
{
NodeList root =
(NodeList) tContext.getHeaderNodesList();
@@ -970,13 +1000,14 @@
return _kids[index];
}
}
-
+
/**
- * @return the state of the sorting after the page submition
+ * @return the state of the sorting after the page submition
*/
private String findSortState(
- int sortability,
- FacesBean bean )
+ int sortability,
+ UIComponent component,
+ FacesBean bean)
{
String state;
if (sortability == SORT_ASCENDING)
@@ -987,7 +1018,7 @@
{
state = XhtmlConstants.SORTABLE_DESCENDING;
}
- else if ("descending".equals(getDefaultSortOrder(bean)))
+ else if ("descending".equals(getDefaultSortOrder(component, bean)))
{
state = XhtmlConstants.SORTABLE_ASCENDING;
}
@@ -995,7 +1026,7 @@
{
state = "";
}
-
+
return state;
}