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 2012/11/20 13:23:12 UTC

svn commit: r1411640 - /myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java

Author: lofwyr
Date: Tue Nov 20 12:23:11 2012
New Revision: 1411640

URL: http://svn.apache.org/viewvc?rev=1411640&view=rev
Log:
TOBAGO-1049: Tree inside of the Sheet (aka TreeTable)
 - initialize the hidden fields on the server. Otherwise a early submit will be broken

Modified:
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java?rev=1411640&r1=1411639&r2=1411640&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java Tue Nov 20 12:23:11 2012
@@ -53,7 +53,9 @@ import org.apache.myfaces.tobago.layout.
 import org.apache.myfaces.tobago.layout.LayoutBase;
 import org.apache.myfaces.tobago.layout.Measure;
 import org.apache.myfaces.tobago.layout.TextAlign;
+import org.apache.myfaces.tobago.model.ExpandedState;
 import org.apache.myfaces.tobago.model.SheetState;
+import org.apache.myfaces.tobago.model.TreePath;
 import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.Style;
@@ -213,15 +215,11 @@ public class SheetRenderer extends Layou
       writer.endElement(HtmlElements.INPUT);
     }
 
+    ExpandedState expandedState = null;
+    StringBuilder expandedValue = null;
     if (sheet.isTreeModel()) {
-      writer.startElement(HtmlElements.INPUT, sheet);
-      writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN, false);
-      final String expandedId = sheetId + ComponentUtils.SUB_SEPARATOR + AbstractUIData.SUFFIX_EXPANDED;
-      writer.writeNameAttribute(expandedId);
-      writer.writeIdAttribute(expandedId);
-      writer.writeClassAttribute(Classes.create(sheet, AbstractUIData.SUFFIX_EXPANDED));
-      writer.writeAttribute(HtmlAttributes.VALUE, ",", false);
-      writer.endElement(HtmlElements.INPUT);
+      expandedState = sheet.getExpandedState();
+      expandedValue = new StringBuilder(",");
     }
 
     final boolean showHeader = sheet.isShowHeader();
@@ -315,6 +313,14 @@ public class SheetRenderer extends Layou
         LOG.debug("list      " + sheet.getValue());
       }
 
+      if (sheet.isTreeModel()) {
+        final TreePath path = sheet.getPath();
+        if (sheet.isFolder() && expandedState.isExpanded(path)) {
+          expandedValue.append(rowIndex);
+          expandedValue.append(",");
+        }
+      }
+
       writer.startElement(HtmlElements.TR, null);
       Markup rowMarkup = odd ? Markup.ODD : Markup.EVEN;
       final boolean selected = selectedRows.contains(rowIndex);
@@ -506,6 +512,17 @@ public class SheetRenderer extends Layou
 
       writer.endElement(HtmlElements.DIV);
     }
+
+    if (sheet.isTreeModel()) {
+      writer.startElement(HtmlElements.INPUT, sheet);
+      writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN, false);
+      final String expandedId = sheetId + ComponentUtils.SUB_SEPARATOR + AbstractUIData.SUFFIX_EXPANDED;
+      writer.writeNameAttribute(expandedId);
+      writer.writeIdAttribute(expandedId);
+      writer.writeClassAttribute(Classes.create(sheet, AbstractUIData.SUFFIX_EXPANDED));
+      writer.writeAttribute(HtmlAttributes.VALUE, expandedValue.toString(), false);
+      writer.endElement(HtmlElements.INPUT);
+    }
   }
 
   /**