You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2019/05/07 16:48:08 UTC

[myfaces-tobago] branch master updated: TOBAGO-1988 Sheet Tree is no longer rendered

This is an automated email from the ASF dual-hosted git repository.

hnoeth pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b0059f  TOBAGO-1988 Sheet Tree is no longer rendered
9b0059f is described below

commit 9b0059f4efcf7d376dca75d97136df6e6a0b50d6
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Tue May 7 18:47:56 2019 +0200

    TOBAGO-1988 Sheet Tree is no longer rendered
    
    * fix tc:columnNode
    * add test
---
 .../internal/renderkit/renderer/SheetRenderer.java |  4 +-
 .../080-sheet/70-tree/Sheet_Tree.test.js           | 65 ++++++++++++++++++++++
 .../080-sheet/70-tree/Sheet_Tree.xhtml             | 16 +++---
 3 files changed, 76 insertions(+), 9 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
index e34fcd4..d658fa6 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SheetRenderer.java
@@ -30,6 +30,7 @@ import org.apache.myfaces.tobago.event.SheetAction;
 import org.apache.myfaces.tobago.event.SortActionEvent;
 import org.apache.myfaces.tobago.internal.component.AbstractUIColumn;
 import org.apache.myfaces.tobago.internal.component.AbstractUIColumnBase;
+import org.apache.myfaces.tobago.internal.component.AbstractUIColumnNode;
 import org.apache.myfaces.tobago.internal.component.AbstractUIColumnSelector;
 import org.apache.myfaces.tobago.internal.component.AbstractUIData;
 import org.apache.myfaces.tobago.internal.component.AbstractUILink;
@@ -682,7 +683,8 @@ public class SheetRenderer extends RendererBase {
 
       for (final AbstractUIColumnBase column : columns) {
         if (column.isRendered()) {
-          if (column instanceof AbstractUIColumn || column instanceof AbstractUIColumnSelector) {
+          if (column instanceof AbstractUIColumn || column instanceof AbstractUIColumnSelector
+              || column instanceof AbstractUIColumnNode) {
             writer.startElement(HtmlElements.TD);
             Markup markup = column.getMarkup();
             if (markup == null) {
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js
new file mode 100644
index 0000000..3ce5a29
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+QUnit.test("Collapse tree", function (assert) {
+  var row0nameFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:nameOut");
+  var row0centralBodyFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:centralBodyOut");
+  var row0distanceFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:distanceOut");
+  var row0periodFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:periodOut");
+  var row0discovererFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:discovererOut");
+  var row0yearFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:yearOut");
+  var row1nameFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:nameOut");
+  var row1centralBodyFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:centralBodyOut");
+  var row1distanceFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:distanceOut");
+  var row1periodFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:periodOut");
+  var row1discovererFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:discovererOut");
+  var row1yearFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:1\\:yearOut");
+  var rootTreeButtonFn = jQueryFrameFn("#page\\:mainForm\\:sheet\\:0\\:nameCol .tobago-treeNode-toggle");
+
+  var TTT = new TobagoTestTool(assert);
+  TTT.asserts(13, function () {
+    assert.equal(row0nameFn().text(), "Sun");
+    assert.equal(row0centralBodyFn().text(), "-");
+    assert.equal(row0distanceFn().text(), "0");
+    assert.equal(row0periodFn().text(), "0.0");
+    assert.equal(row0discovererFn().text(), "-");
+    assert.equal(row0yearFn().text(), "");
+    assert.equal(row1nameFn().text(), "Mercury");
+    assert.equal(row1centralBodyFn().text(), "Sun");
+    assert.equal(row1distanceFn().text(), "57910");
+    assert.equal(row1periodFn().text(), "87.97");
+    assert.equal(row1discovererFn().text(), "-");
+    assert.equal(row1yearFn().text(), "");
+
+    assert.notEqual(row1yearFn().parents(".tobago-sheet-row").css("display"), "none");
+  });
+  TTT.action(function () {
+    rootTreeButtonFn().click();
+  });
+  TTT.waitMs(1000);
+  TTT.asserts(7, function () {
+    assert.equal(row0nameFn().text(), "Sun");
+    assert.equal(row0centralBodyFn().text(), "-");
+    assert.equal(row0distanceFn().text(), "0");
+    assert.equal(row0periodFn().text(), "0.0");
+    assert.equal(row0discovererFn().text(), "-");
+    assert.equal(row0yearFn().text(), "");
+
+    assert.equal(row1yearFn().parents(".tobago-sheet-row").css("display"), "none");
+  });
+  TTT.startTest();
+});
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.xhtml
index 57ea09a..13a9738 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.xhtml
@@ -44,25 +44,25 @@
     &lt;tc:treeIndent/>
     &lt;tc:out value="\#{solarObject.userObject.name}"/>
     ...</code></pre>
-    <tc:sheet value="#{sheetTreeController.solarTree}" var="solarObject" showRoot="true" showRootJunction="true">
-      <tc:columnNode label="Name">
+    <tc:sheet id="sheet" value="#{sheetTreeController.solarTree}" var="solarObject" showRoot="true" showRootJunction="true">
+      <tc:columnNode id="nameCol" label="Name">
         <tc:treeIndent/>
-        <tc:out value="#{solarObject.userObject.name}"/>
+        <tc:out id="nameOut" value="#{solarObject.userObject.name}" labelLayout="skip"/>
       </tc:columnNode>
       <tc:column label="Central Body">
-        <tc:out value="#{solarObject.userObject.orbit}"/>
+        <tc:out id="centralBodyOut" value="#{solarObject.userObject.orbit}" labelLayout="skip"/>
       </tc:column>
       <tc:column label="Distance" sortable="true">
-        <tc:out value="#{solarObject.userObject.distance}"/>
+        <tc:out id="distanceOut" value="#{solarObject.userObject.distance}" labelLayout="skip"/>
       </tc:column>
       <tc:column label="Period" sortable="true">
-        <tc:out value="#{solarObject.userObject.period}"/>
+        <tc:out id="periodOut" value="#{solarObject.userObject.period}" labelLayout="skip"/>
       </tc:column>
       <tc:column label="Discoverer">
-        <tc:out value="#{solarObject.userObject.discoverer}"/>
+        <tc:out id="discovererOut" value="#{solarObject.userObject.discoverer}" labelLayout="skip"/>
       </tc:column>
       <tc:column label="Year" sortable="true">
-        <tc:out value="#{solarObject.userObject.discoverYear}"/>
+        <tc:out id="yearOut" value="#{solarObject.userObject.discoverYear}" labelLayout="skip"/>
       </tc:column>
     </tc:sheet>
   </tc:section>