You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2015/10/29 14:04:57 UTC
svn commit: r1711245 -
/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java
Author: lofwyr
Date: Thu Oct 29 13:04:57 2015
New Revision: 1711245
URL: http://svn.apache.org/viewvc?rev=1711245&view=rev
Log:
TOBAGO-1494: Sheet support for Bootstrap
Modified:
myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java?rev=1711245&r1=1711244&r2=1711245&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SheetRenderer.java Thu Oct 29 13:04:57 2015
@@ -1151,16 +1151,37 @@ public class SheetRenderer extends Rende
@Override
public void prepareRendersChildren(final FacesContext facesContext, final UIComponent component) throws IOException {
+
final UISheet sheet = (UISheet) component;
- for (final UIColumn column : sheet.getRenderedColumns()) {
- if (column instanceof AbstractUIColumnNode) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("TODO: AbstractUIColumnNode are not prepared.");
- }
- // TBD: when the column should be prepared for rendering, I think we need to
- // TBD: iterate over each row to prepare it.
- // TBD: in the moment this method TreeNodeRendererBase.prepareRender() will not be called in sheets
+ List<UIComponent> others = new ArrayList<UIComponent>();
+ List<UIColumn> columns = new ArrayList<UIColumn>();
+
+ for (final UIComponent child : sheet.getChildren()) {
+ if (child instanceof UIColumn) {
+ columns.add((UIColumn) child);
} else {
+ others.add(child);
+ }
+ }
+
+ // for non-columns: prepare only once (needed for e.g. UIStyle)
+ for (UIComponent other : others) {
+ EncodeUtils.prepareRendererAll(facesContext, other);
+ }
+
+ // for columns: prepare for each row
+ final int last = sheet.isRowsUnlimited() ? Integer.MAX_VALUE : sheet.getFirst() + sheet.getRows();
+ for (int rowIndex = sheet.getFirst(); rowIndex < last; rowIndex++) {
+ sheet.setRowIndex(rowIndex);
+ if (!sheet.isRowAvailable()) {
+ break;
+ }
+ final Object rowRendered = sheet.getAttributes().get("rowRendered");
+ if (rowRendered instanceof Boolean && !((Boolean) rowRendered)) {
+ continue;
+ }
+
+ for (UIComponent column : columns) {
EncodeUtils.prepareRendererAll(facesContext, column);
}
}