Author: nbelaevski
Date: 2010-05-20 10:19:33 -0400 (Thu, 20 May 2010)
New Revision: 17160
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIExtendedDataTable.java
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableRenderer.java
Log:
https://jira.jboss.org/browse/RF-8629
https://jira.jboss.org/browse/RF-8630
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2010-05-20
13:45:30 UTC (rev 17159)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2010-05-20
14:19:33 UTC (rev 17160)
@@ -22,17 +22,27 @@
package org.richfaces.component;
+import java.io.IOException;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.faces.component.UIComponent;
+import javax.faces.component.visit.VisitCallback;
+import javax.faces.component.visit.VisitContext;
+import javax.faces.component.visit.VisitResult;
import javax.faces.context.FacesContext;
+import javax.faces.event.PreRenderComponentEvent;
import org.ajax4jsf.model.ExtendedDataModel;
+import org.richfaces.context.ExtendedVisitContext;
+import org.richfaces.context.ExtendedVisitContextMode;
+import org.richfaces.log.RichfacesLogger;
import org.richfaces.model.Arrangeable;
import org.richfaces.model.ArrangeableModel;
import org.richfaces.model.ArrangeableState;
@@ -40,14 +50,29 @@
import org.richfaces.model.FilterField;
import org.richfaces.model.SortField;
import org.richfaces.model.SortMode;
+import org.richfaces.renderkit.MetaComponentRenderer;
+import org.slf4j.Logger;
-public class UIDataTableBase extends UISequence implements Row {
+public class UIDataTableBase extends UISequence implements Row, MetaComponentResolver,
MetaComponentEncoder {
+ public static final String HEADER = "header";
+ public static final String FOOTER = "footer";
+ public static final String BODY = "body";
+
+ private static final Logger RENDERKIT_LOG = RichfacesLogger.RENDERKIT.getLogger();
+
+ private static final Set<String> SUPPORTED_META_COMPONENTS = new
HashSet<String>();
+
+ static {
+ SUPPORTED_META_COMPONENTS.add(HEADER);
+ SUPPORTED_META_COMPONENTS.add(FOOTER);
+ SUPPORTED_META_COMPONENTS.add(BODY);
+ }
+
protected enum PropertyKeys {
filterVar, sortPriority, sortMode, first, rows, noDataLabel
}
-
public Iterator<UIComponent> columns() {
return new DataTableColumnsIterator(this);
}
@@ -177,4 +202,86 @@
public void setSortMode(SortMode sortMode) {
getStateHelper().put(PropertyKeys.sortMode, sortMode);
}
+
+ public String resolveClientId(FacesContext facesContext, UIComponent
contextComponent, String metaComponentId) {
+ if (SUPPORTED_META_COMPONENTS.contains(metaComponentId)) {
+ Object oldRowKey = getRowKey();
+
+ try {
+ setRowKey(facesContext, null);
+ return getClientId(facesContext) +
MetaComponentResolver.META_COMPONENT_SEPARATOR_CHAR + metaComponentId;
+ } finally {
+ try {
+ setRowKey(facesContext, oldRowKey);
+ } catch (Exception e) {
+ RENDERKIT_LOG.error(e.getMessage(), e);
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public void encodeMetaComponent(FacesContext context, String metaComponentId) throws
IOException {
+ context.getApplication().publishEvent(context, PreRenderComponentEvent.class,
this);
+
+ MetaComponentRenderer renderer = (MetaComponentRenderer) getRenderer(context);
+ renderer.encodeMetaComponent(context, this, metaComponentId);
+ }
+
+ @Override
+ protected boolean visitFixedChildren(VisitContext visitContext, VisitCallback
callback) {
+ if (visitContext instanceof ExtendedVisitContext) {
+ ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext)
visitContext;
+
+ if (extendedVisitContext.getVisitMode() == ExtendedVisitContextMode.RENDER)
{
+ //TODO nick - call preEncodeBegin(...) and emit PreRenderEvent
+ VisitResult visitResult;
+
+ visitResult = extendedVisitContext.invokeMetaComponentVisitCallback(this,
callback, HEADER);
+
+ if (visitResult == VisitResult.ACCEPT) {
+ //TODO nick - visit header?
+ } else if (visitResult == VisitResult.COMPLETE) {
+ return true;
+ }
+
+ visitResult = extendedVisitContext.invokeMetaComponentVisitCallback(this,
callback, FOOTER);
+
+ if (visitResult == VisitResult.ACCEPT) {
+ //TODO nick - visit footer?
+ } else if (visitResult == VisitResult.COMPLETE) {
+ return true;
+ }
+
+ if (visitResult == VisitResult.REJECT) {
+ return false;
+ }
+ }
+ }
+
+ return super.visitFixedChildren(visitContext, callback);
+ }
+
+ @Override
+ protected boolean visitDataChildren(VisitContext visitContext, final VisitCallback
callback, boolean visitRows) {
+ if (visitContext instanceof ExtendedVisitContext && visitRows) {
+ ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext)
visitContext;
+
+ if (extendedVisitContext.getVisitMode() == ExtendedVisitContextMode.RENDER)
{
+ //TODO nick - call preEncodeBegin(...) and emit PreRenderEvent
+ setRowKey(visitContext.getFacesContext(), null);
+
+ VisitResult result =
extendedVisitContext.invokeMetaComponentVisitCallback(this, callback, BODY);
+
+ if (result == VisitResult.ACCEPT) {
+ //TODO nick - visit body?
+ } else {
+ return result == VisitResult.COMPLETE;
+ }
+ }
+ }
+
+ return super.visitDataChildren(visitContext, callback, visitRows);
+ }
}
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIExtendedDataTable.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2010-05-20
13:45:30 UTC (rev 17159)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2010-05-20
14:19:33 UTC (rev 17160)
@@ -23,9 +23,7 @@
package org.richfaces.component;
import java.io.IOException;
-import java.util.HashSet;
import java.util.Map;
-import java.util.Set;
import javax.el.ValueExpression;
import javax.faces.component.UIComponent;
@@ -39,7 +37,6 @@
import org.richfaces.context.ExtendedVisitContext;
import org.richfaces.context.ExtendedVisitContextMode;
import org.richfaces.log.RichfacesLogger;
-import org.richfaces.renderkit.MetaComponentRenderer;
import org.slf4j.Logger;
@@ -50,30 +47,18 @@
public class UIExtendedDataTable extends UIDataTableBase implements
MetaComponentResolver, MetaComponentEncoder {
public static final String SCROLL = "scroll";
- public static final String HEADER = "header";
- public static final String FOOTER = "footer";
- public static final String BODY = "body";
public static final String SUBMITTED_CLIENT_FIRST =
"submittedClientFirst";
public static final String OLD_CLIENT_FIRST = "oldClientFirst";
private static final Logger RENDERKIT_LOG = RichfacesLogger.RENDERKIT.getLogger();
- private static final Set<String> SUPPORTED_META_COMPONENTS = new
HashSet<String>();
-
- static {
- SUPPORTED_META_COMPONENTS.add(SCROLL);
- SUPPORTED_META_COMPONENTS.add(HEADER);
- SUPPORTED_META_COMPONENTS.add(FOOTER);
- SUPPORTED_META_COMPONENTS.add(BODY);
- }
-
protected enum PropertyKeys {
clientFirst, clientRows
}
-
+
public String resolveClientId(FacesContext facesContext, UIComponent
contextComponent, String metaComponentId) {
- if (SUPPORTED_META_COMPONENTS.contains(metaComponentId)) {
+ if (SCROLL.equals(metaComponentId)) {
Object oldRowKey = getRowKey();
try {
@@ -88,64 +73,23 @@
}
}
- return null;
+ return super.resolveClientId(facesContext, contextComponent, metaComponentId);
}
-
+
public void encodeMetaComponent(FacesContext context, String metaComponentId) throws
IOException {
- if (SUPPORTED_META_COMPONENTS.contains(metaComponentId)) {
-
- if (SCROLL.equals(metaComponentId)) {
- Map<String, Object> attributes = getAttributes();
- Integer submittedClientFirst = (Integer)
attributes.remove(SUBMITTED_CLIENT_FIRST);
- if (submittedClientFirst != null) {
- attributes.put(OLD_CLIENT_FIRST, getClientFirst());
- setClientFirst(submittedClientFirst);
- }
+ if (SCROLL.equals(metaComponentId)) {
+ Map<String, Object> attributes = getAttributes();
+ Integer submittedClientFirst = (Integer)
attributes.remove(SUBMITTED_CLIENT_FIRST);
+ if (submittedClientFirst != null) {
+ attributes.put(OLD_CLIENT_FIRST, getClientFirst());
+ setClientFirst(submittedClientFirst);
}
-
- MetaComponentRenderer renderer = (MetaComponentRenderer)
getRenderer(context);
- renderer.encodeMetaComponent(context, this, metaComponentId);
- }
+ }
+
+ super.encodeMetaComponent(context, metaComponentId);
}
- /* (non-Javadoc)
- * @see
org.richfaces.component.UIDataAdaptor#visitFixedChildren(javax.faces.component.visit.VisitContext,
javax.faces.component.visit.VisitCallback, boolean)
- */
@Override
- protected boolean visitFixedChildren(VisitContext visitContext, VisitCallback
callback) {
- if (visitContext instanceof ExtendedVisitContext) {
- ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext)
visitContext;
-
- if (extendedVisitContext.getVisitMode() == ExtendedVisitContextMode.RENDER)
{
- //TODO nick - call preEncodeBegin(...) and emit PreRenderEvent
- VisitResult visitResult;
-
- visitResult = extendedVisitContext.invokeMetaComponentVisitCallback(this,
callback, HEADER);
-
- if (visitResult == VisitResult.ACCEPT) {
- //TODO nick - visit header?
- } else if (visitResult == VisitResult.COMPLETE) {
- return true;
- }
-
- visitResult = extendedVisitContext.invokeMetaComponentVisitCallback(this,
callback, FOOTER);
-
- if (visitResult == VisitResult.ACCEPT) {
- //TODO nick - visit footer?
- } else if (visitResult == VisitResult.COMPLETE) {
- return true;
- }
-
- if (visitResult == VisitResult.REJECT) {
- return false;
- }
- }
- }
-
- return super.visitFixedChildren(visitContext, callback);
- }
-
- @Override
protected boolean visitDataChildren(VisitContext visitContext, final VisitCallback
callback, boolean visitRows) {
if (visitContext instanceof ExtendedVisitContext && visitRows) {
ExtendedVisitContext extendedVisitContext = (ExtendedVisitContext)
visitContext;
@@ -163,20 +107,6 @@
} else if (result == VisitResult.COMPLETE) {
return true;
}
-
- //TODO nick - scroll vs body?
-
- result = extendedVisitContext.invokeMetaComponentVisitCallback(this,
callback, BODY);
-
- if (result == VisitResult.ACCEPT) {
- //TODO nick - visit body?
- } else if (result == VisitResult.COMPLETE) {
- return true;
- }
-
- if (result == VisitResult.REJECT) {
- return false;
- }
}
}
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2010-05-20
13:45:30 UTC (rev 17159)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2010-05-20
14:19:33 UTC (rev 17160)
@@ -35,10 +35,11 @@
import org.richfaces.component.Row;
import org.richfaces.component.UIDataTableBase;
import org.richfaces.component.UISubTable;
+import org.richfaces.context.OnOffResponseWriter;
@ResourceDependencies(value = { @ResourceDependency(library = "javax.faces",
name = "jsf.js"),
@ResourceDependency(name = "jquery.js"), @ResourceDependency(name =
"richfaces.js"), @ResourceDependency(name = "richfaces-event.js")})
-public abstract class AbstractTableRenderer extends AbstractTableBaseRenderer {
+public abstract class AbstractTableRenderer extends AbstractTableBaseRenderer implements
MetaComponentRenderer {
public static final String ROW_CLASS = "rowClass";
@@ -99,8 +100,8 @@
String id = dataTable.getClientId(context);
put(context, id, CELL_ELEMENT_KEY, HTML.TH_ELEM);
- encodeHeaderFacet(writer, context, dataTable);
- encodeFooterFacet(writer, context, dataTable);
+ encodeHeaderFacet(writer, context, dataTable, false);
+ encodeFooterFacet(writer, context, dataTable, false);
put(context, id, CELL_ELEMENT_KEY, HTML.TD_ELEM);
dataTable.setRowKey(context, key);
dataTable.restoreOrigValue(context);
@@ -164,21 +165,34 @@
public abstract RowHolderBase createRowHolder(FacesContext context, UIComponent
component);
- public void encodeFooterFacet(ResponseWriter writer, FacesContext context,
UIDataTableBase dataTable) throws IOException {
+ public void encodeFooterFacet(ResponseWriter writer, FacesContext context,
UIDataTableBase dataTable,
+ boolean encodePartialUpdate) throws IOException {
UIComponent footer = dataTable.getFooter();
boolean columnFacetPresent = dataTable.isColumnFacetPresent("footer");
if ((footer != null && footer.isRendered()) || columnFacetPresent) {
+ boolean partialUpdateEncoded = false;
+
boolean encodeTfoot = containsThead();
if (encodeTfoot) {
+ String footerClientId = dataTable.getClientId(context) +
":footer";
+
+ if (encodePartialUpdate) {
+ partialUpdateEncoded = true;
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(footerClientId);
+ }
+
writer.startElement(HTML.TFOOT_ELEMENT, dataTable);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, footerClientId, null);
writer.writeAttribute(HTML.CLASS_ATTRIBUTE, "rich-table-tfoot",
null);
}
int columns = getColumnsCount(dataTable);
String id = dataTable.getClientId(context);
+ boolean encodePartialUpdateForChildren = (encodePartialUpdate &&
!partialUpdateEncoded);
+
if (columnFacetPresent) {
@@ -192,10 +206,22 @@
saveRowStyles(context,id, firstClass, rowClass, cellClass);
+ String targetId = id + ":colsFooter";
+
+ if (encodePartialUpdateForChildren) {
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(targetId);
+ }
+
writer.startElement(HTML.TR_ELEMENT, dataTable);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, targetId, null);
+
encodeStyleClass(writer, context, dataTable, null, rowClass);
encodeColumnFacet(context, writer, dataTable, "footer",columns,
cellClass);
writer.endElement(HTML.TR_ELEMENT);
+
+ if (encodePartialUpdateForChildren) {
+
context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
if (footer != null && footer.isRendered()) {
@@ -209,11 +235,16 @@
firstClass = mergeStyleClasses("footerFirstClass", firstClass,
dataTable);
// TODO nick - rename method "encodeTableHeaderFacet"
saveRowStyles(context, id, firstClass, rowClass, cellClass);
- encodeTableFacet(context, writer, id, columns, footer,
"footer", rowClass, cellClass);
+ encodeTableFacet(context, writer, id, columns, footer,
"footer", rowClass, cellClass,
+ encodePartialUpdateForChildren);
}
if (encodeTfoot) {
writer.endElement(HTML.TFOOT_ELEMENT);
+
+ if (partialUpdateEncoded) {
+
context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
}
@@ -235,7 +266,8 @@
return resultClass;
}
- public void encodeHeaderFacet(ResponseWriter writer, FacesContext context,
UIDataTableBase dataTable) throws IOException {
+ public void encodeHeaderFacet(ResponseWriter writer, FacesContext context,
UIDataTableBase dataTable,
+ boolean encodePartialUpdate) throws IOException {
UIComponent header = dataTable.getHeader();
boolean isEncodeHeaders = isEncodeHeaders(dataTable);
@@ -243,15 +275,26 @@
boolean encodeThead = containsThead();
if ((header != null && header.isRendered()) || isEncodeHeaders) {
+ boolean partialUpdateEncoded = false;
if (encodeThead) {
+ String headerClientId = dataTable.getClientId(context) +
":header";
+
+ if (encodePartialUpdate) {
+ partialUpdateEncoded = true;
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(headerClientId);
+ }
+
writer.startElement(HTML.THEAD_ELEMENT, dataTable);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, headerClientId, null);
writer.writeAttribute(HTML.CLASS_ATTRIBUTE, "rich-table-thead",
null);
}
int columns = getColumnsCount(dataTable);
String id = dataTable.getClientId(context);
-
+
+ boolean encodePartialUpdateForChildren = (encodePartialUpdate &&
!partialUpdateEncoded);
+
if (header != null && header.isRendered()) {
String rowClass = getHeaderSkinClass();
@@ -263,11 +306,11 @@
firstClass = mergeStyleClasses("headerFirstClass", firstClass,
dataTable);
saveRowStyles(context, id, firstClass, rowClass, cellClass);
- encodeTableFacet(context, writer, id, columns, header,
"header", rowClass, cellClass);
+ encodeTableFacet(context, writer, id, columns, header,
"header", rowClass, cellClass,
+ encodePartialUpdateForChildren);
}
if (isEncodeHeaders) {
-
String rowClass = getColumnHeaderSkinClass();
String cellClass = getColumnHeaderCellSkinClass();
String firstClass = getColumnHeaderFirstSkinClass();
@@ -277,15 +320,31 @@
firstClass = mergeStyleClasses("columnHeaderFirstClass",
firstClass, dataTable);
saveRowStyles(context, id, firstClass, rowClass, cellClass);
+ String targetId = id + ":colsHeader";
+
+ if (encodePartialUpdateForChildren) {
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(targetId);
+ }
+
writer.startElement(HTML.TR_ELEMENT, dataTable);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, targetId, null);
+
encodeStyleClass(writer, context, dataTable, null, rowClass);
encodeColumnFacet(context, writer, dataTable, "header",
columns, cellClass);
writer.endElement(HTML.TR_ELEMENT);
+
+ if (encodePartialUpdateForChildren) {
+
context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
if (encodeThead) {
writer.endElement(HTML.THEAD_ELEMENT);
+
+ if (partialUpdateEncoded) {
+
context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
}
@@ -337,13 +396,24 @@
}
}
- protected void encodeTableFacet(FacesContext context,ResponseWriter writer, String
id, int columns, UIComponent footer, String facetName, String rowClass, String cellClass)
throws IOException {
+ protected void encodeTableFacet(FacesContext context, ResponseWriter writer, String
id, int columns,
+ UIComponent footer, String facetName, String rowClass, String cellClass, boolean
encodePartialUpdate) throws IOException {
boolean isColumnGroup = (footer instanceof Row);
String element = getCellElement(context, id);
- if(!isColumnGroup) {
+ boolean partialUpdateEncoded = false;
+
+ if (!isColumnGroup) {
+ String targetId = id + ":" + facetName;
+
+ if (encodePartialUpdate) {
+ partialUpdateEncoded = true;
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(targetId);
+ }
+
writer.startElement(HTML.TR_ELEMENT, footer);
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, targetId, null);
encodeStyleClass(writer, context, footer, null, rowClass);
@@ -358,11 +428,23 @@
writer.writeAttribute("scope", "colgroup", null);
}
+ if (encodePartialUpdate && !partialUpdateEncoded) {
+
context.getPartialViewContext().getPartialResponseWriter().startUpdate(footer.getClientId(context));
+ }
+
footer.encodeAll(context);
- if(!isColumnGroup){
+ if (encodePartialUpdate && !partialUpdateEncoded) {
+ context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
+
+ if (!isColumnGroup){
writer.endElement(element);
writer.endElement(HTML.TR_ELEMENT);
+
+ if (partialUpdateEncoded) {
+ context.getPartialViewContext().getPartialResponseWriter().endUpdate();
+ }
}
}
@@ -402,4 +484,28 @@
public abstract String getCellSkinClass();
+ public void encodeMetaComponent(FacesContext context, UIComponent component, String
metaComponentId)
+ throws IOException {
+
+ ResponseWriter initialWriter = context.getResponseWriter();
+ assert !(initialWriter instanceof OnOffResponseWriter);
+
+ try {
+ context.setResponseWriter(new OnOffResponseWriter(initialWriter));
+
+ UIDataTableBase table = (UIDataTableBase) component;
+
+ if (UIDataTableBase.HEADER.equals(metaComponentId)) {
+ encodeHeaderFacet(context.getResponseWriter(), context, table, true);
+ } else if (UIDataTableBase.FOOTER.equals(metaComponentId)) {
+ encodeFooterFacet(context.getResponseWriter(), context, table, true);
+// } else if (UIDataTableBase.BODY.equals(metaComponentId)) {
+// encodeBody(state);
+ } else {
+ throw new IllegalArgumentException("Unsupported
metaComponentIdentifier: " + metaComponentId);
+ }
+ } finally {
+ context.setResponseWriter(initialWriter);
+ }
+ }
}
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2010-05-20
13:45:30 UTC (rev 17159)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2010-05-20
14:19:33 UTC (rev 17160)
@@ -35,14 +35,12 @@
import java.util.Map;
import javax.faces.FacesException;
-import javax.faces.application.Application;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.PartialResponseWriter;
import javax.faces.context.ResponseWriter;
-import javax.faces.event.PreRenderComponentEvent;
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSReference;
@@ -539,19 +537,11 @@
RendererState state = createRowHolder(context, component);
state.setEncoderVariance(EncoderVariance.partial);
- Application application = context.getApplication();
-
- if (UIExtendedDataTable.HEADER.equals(metaComponentId)) {
- application.publishEvent(context, PreRenderComponentEvent.class,
component);
-
+ if (UIDataTableBase.HEADER.equals(metaComponentId)) {
encodeHeader(state);
- } else if (UIExtendedDataTable.FOOTER.equals(metaComponentId)) {
- application.publishEvent(context, PreRenderComponentEvent.class,
component);
-
+ } else if (UIDataTableBase.FOOTER.equals(metaComponentId)) {
encodeFooter(state);
- } else if (UIExtendedDataTable.BODY.equals(metaComponentId)) {
- application.publishEvent(context, PreRenderComponentEvent.class,
component);
-
+ } else if (UIDataTableBase.BODY.equals(metaComponentId)) {
encodeBody(state);
} else {
throw new IllegalArgumentException("Unsupported
metaComponentIdentifier: " + metaComponentId);
Modified:
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableRenderer.java
===================================================================
---
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableRenderer.java 2010-05-20
13:45:30 UTC (rev 17159)
+++
root/ui-sandbox/tables/trunk/ui/src/main/java/org/richfaces/renderkit/SubTableRenderer.java 2010-05-20
14:19:33 UTC (rev 17160)
@@ -74,7 +74,7 @@
public void encodeTableFacets(ResponseWriter writer, FacesContext context,
UIDataTableBase dataTable) throws IOException {
UISubTable subTable = (UISubTable)dataTable;
- encodeHeaderFacet(writer, context, subTable);
+ encodeHeaderFacet(writer, context, subTable, false);
String rowClass = getRowSkinClass();
String cellClass = getCellSkinClass();
@@ -118,7 +118,7 @@
protected void doEncodeEnd(ResponseWriter writer, FacesContext facesContext,
UIComponent component) throws IOException {
UISubTable subTable = (UISubTable)component;
- encodeFooterFacet(writer, facesContext, subTable);
+ encodeFooterFacet(writer, facesContext, subTable, false);
encodeStateInput(writer, facesContext, subTable);
encodeClientScript(writer, facesContext, subTable);
encodeTableBodyEnd(writer, facesContext, subTable);