Author: awiner
Date: Tue Sep 19 09:20:02 2006
New Revision: 447897
URL: http://svn.apache.org/viewvc?view=rev&rev=447897
Log:
Commit patch for ADFFACES-184: ClassCastException when the wrong child is in a
panelTabbed. While in there, noticed that rendered=false showDetailItems
weren't necessarily handled the right way
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java
URL:
http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java?view=diff&rev=447897&r1=447896&r2=447897
==============================================================================
---
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java
(original)
+++
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/PanelTabbedRenderer.java
Tue Sep 19 09:20:02 2006
@@ -23,6 +23,7 @@
import javax.faces.context.FacesContext;
import org.apache.myfaces.trinidad.component.UIXShowDetail;
+import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import org.apache.myfaces.trinidadinternal.uinode.UINodeRendererBase;
@@ -48,11 +49,17 @@
boolean oneIsDisclosed = false;
for (int i=0; i<childCount; i++)
{
- UIXShowDetail child = (UIXShowDetail) children.get(i);
- if (child.isDisclosed())
+ if (children.get(i) instanceof UIXShowDetail)
{
- oneIsDisclosed = true;
- break;
+ UIXShowDetail child = (UIXShowDetail) children.get(i);
+ if (child.isDisclosed())
+ {
+ oneIsDisclosed = true;
+ break;
+ }
+ } else
+ {
+ _LOG.warning("Only tr:showDetailItem is allowed as child of
tr:panelTabbed.");
}
}
@@ -61,16 +68,24 @@
{
for (int i=0; i<childCount; i++)
{
- UIXShowDetail child = (UIXShowDetail) children.get(i);
- Object disabled = child.getAttributes().get("disabled");
- if (Boolean.TRUE.equals(disabled))
- continue;
+ if (children.get(i) instanceof UIXShowDetail)
+ {
+ UIXShowDetail child = (UIXShowDetail) children.get(i);
+ if (!child.isRendered())
+ continue;
- child.setDisclosed(true);
- break;
+ Object disabled = child.getAttributes().get("disabled");
+ if (Boolean.TRUE.equals(disabled))
+ continue;
+
+ child.setDisclosed(true);
+ break;
+ }
}
}
super.encodeBegin(context, component);
}
+
+ static private final TrinidadLogger _LOG =
TrinidadLogger.createTrinidadLogger(PanelTabbedRenderer.class);
}