You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/05/23 21:56:27 UTC
svn commit: r541049 - in
/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago:
component/ComponentUtil.java renderkit/html/HtmlRendererUtil.java
Author: bommel
Date: Wed May 23 12:56:26 2007
New Revision: 541049
URL: http://svn.apache.org/viewvc?view=rev&rev=541049
Log:
(TOBAGO-409) <tc:form> in a Container without layoutmanager breaks with ClassCastException
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java?view=diff&rev=541049&r1=541048&r2=541049
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java Wed May 23 12:56:26 2007
@@ -81,6 +81,7 @@
import javax.faces.model.SelectItem;
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
+import javax.faces.render.Renderer;
import javax.faces.webapp.UIComponentTag;
import javax.servlet.jsp.JspException;
import java.util.ArrayList;
@@ -464,8 +465,13 @@
RenderKitFactory rkFactory = (RenderKitFactory)
FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
RenderKit renderKit = rkFactory.getRenderKit(facesContext, facesContext.getViewRoot().getRenderKitId());
- renderer = (LayoutableRendererBase) renderKit.getRenderer(family, rendererType);
- requestMap.put(RENDER_KEY_PREFIX + rendererType, renderer);
+ Renderer myRenderer = renderKit.getRenderer(family, rendererType);
+ if (myRenderer instanceof LayoutableRendererBase) {
+ requestMap.put(RENDER_KEY_PREFIX + rendererType, myRenderer);
+ renderer = (LayoutableRendererBase) myRenderer;
+ } else {
+ return null;
+ }
}
return renderer;
}
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java?view=diff&rev=541049&r1=541048&r2=541049
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java Wed May 23 12:56:26 2007
@@ -39,6 +39,7 @@
import org.apache.myfaces.tobago.renderkit.LayoutInformationProvider;
import org.apache.myfaces.tobago.renderkit.RenderUtil;
import org.apache.myfaces.tobago.renderkit.RendererBaseWrapper;
+import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
import org.apache.myfaces.tobago.util.LayoutUtil;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriterWrapper;
@@ -86,7 +87,8 @@
public static void prepareRender(FacesContext facesContext, UIComponent component) {
// xxx find a better way for this question: isTobago or isLayoutable something like that.
- if (!(ComponentUtil.getRenderer(facesContext, component) instanceof RendererBaseWrapper)) {
+ LayoutableRendererBase layoutRendererBase = ComponentUtil.getRenderer(facesContext, component);
+ if (layoutRendererBase != null && !(layoutRendererBase instanceof RendererBaseWrapper)) {
createCssClass(facesContext, component);
layoutWidth(facesContext, component);
layoutHeight(facesContext, component);
@@ -122,7 +124,10 @@
//final String family = component.getFamily();
if (rendererType != null//&& !"facelets".equals(family)
) {
- return ComponentUtil.getRenderer(facesContext, component).getRendererName(rendererType);
+ LayoutableRendererBase layoutableRendererBase = ComponentUtil.getRenderer(facesContext, component);
+ if (layoutableRendererBase != null) {
+ return layoutableRendererBase.getRendererName(rendererType);
+ }
}
return null;
}
@@ -312,7 +317,6 @@
boolean width) {
// prepare html 'style' attribute
-
Integer layoutSpace;
String layoutAttribute;
String styleAttribute;