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 2021/07/02 21:52:10 UTC

[myfaces-tobago] branch master updated (87454d6 -> 4ab7e82)

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

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


    from 87454d6  build(theme): rebuild after fix flowLayout
     new 4e10c97  fix: id while rendering of <tc:selectReference>
     new 4ab7e82  fix: id while rendering of <tc:selectReference>

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../renderer/LabelLayoutRendererBase.java          | 12 +++++++-
 .../internal/config/AbstractTobagoTestBase.java    |  5 ++++
 .../renderer/SelectOneRadioRendererUnitTest.java   | 33 ++++++++++++++++++++++
 .../selectReference.html}                          | 31 +++++++++++---------
 4 files changed, 67 insertions(+), 14 deletions(-)
 copy tobago-core/src/test/resources/renderer/{link/radioInsideLink.html => selectOneRadio/selectReference.html} (54%)

[myfaces-tobago] 02/02: fix: id while rendering of

Posted by lo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4ab7e8212bd9dc7cafec8c5fb7f3bfb0551a1d57
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Fri Jul 2 18:56:21 2021 +0200

    fix: id while rendering of <tc:selectReference>
    
    before, there was duplicate ids
---
 .../internal/renderkit/renderer/LabelLayoutRendererBase.java      | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
index 8896260..d8841b2 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
@@ -170,11 +170,11 @@ public abstract class LabelLayoutRendererBase<T extends UIComponent & SupportsLa
     } else {
       writer.startElement(getComponentTag());
       if (component instanceof AbstractUISelectOneRadio // XXX a bit hacky
-          && ((AbstractUISelectOneRadio)component).getRenderRangeReference() != null) {
-        writer.writeIdAttribute(((AbstractUISelectOneRadio)component).getRenderRangeReference().getClientId());
+          && ((AbstractUISelectOneRadio) component).getRenderRangeReference() != null) {
+        writer.writeIdAttribute(((AbstractUISelectOneRadio) component).getRenderRangeReference().getClientId());
       } else if (component instanceof AbstractUISelectManyCheckbox // XXX a bit hacky
-          && ((AbstractUISelectManyCheckbox)component).getRenderRangeReference() != null) {
-        writer.writeIdAttribute(((AbstractUISelectManyCheckbox)component).getRenderRangeReference().getClientId());
+          && ((AbstractUISelectManyCheckbox) component).getRenderRangeReference() != null) {
+        writer.writeIdAttribute(((AbstractUISelectManyCheckbox) component).getRenderRangeReference().getClientId());
       } else {
         writer.writeIdAttribute(clientId);
       }

[myfaces-tobago] 01/02: fix: id while rendering of

Posted by lo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4e10c97ad61c22d0c1f7c26b168f7cb096ff12e2
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Fri Jul 2 18:08:42 2021 +0200

    fix: id while rendering of <tc:selectReference>
    
    before, there was duplicate ids
---
 .../renderer/LabelLayoutRendererBase.java          | 12 ++++++-
 .../internal/config/AbstractTobagoTestBase.java    |  5 +++
 .../renderer/SelectOneRadioRendererUnitTest.java   | 33 +++++++++++++++++++
 .../renderer/selectOneRadio/selectReference.html   | 37 ++++++++++++++++++++++
 4 files changed, 86 insertions(+), 1 deletion(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
index 7992b8d..8896260 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LabelLayoutRendererBase.java
@@ -25,6 +25,8 @@ import org.apache.myfaces.tobago.component.SupportsAccessKey;
 import org.apache.myfaces.tobago.component.SupportsAutoSpacing;
 import org.apache.myfaces.tobago.component.SupportsLabelLayout;
 import org.apache.myfaces.tobago.context.Markup;
+import org.apache.myfaces.tobago.internal.component.AbstractUISelectManyCheckbox;
+import org.apache.myfaces.tobago.internal.component.AbstractUISelectOneRadio;
 import org.apache.myfaces.tobago.internal.component.AbstractUIStyle;
 import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
 import org.apache.myfaces.tobago.internal.util.StringUtils;
@@ -167,7 +169,15 @@ public abstract class LabelLayoutRendererBase<T extends UIComponent & SupportsLa
       // skip, because its only the lable to render
     } else {
       writer.startElement(getComponentTag());
-      writer.writeIdAttribute(clientId);
+      if (component instanceof AbstractUISelectOneRadio // XXX a bit hacky
+          && ((AbstractUISelectOneRadio)component).getRenderRangeReference() != null) {
+        writer.writeIdAttribute(((AbstractUISelectOneRadio)component).getRenderRangeReference().getClientId());
+      } else if (component instanceof AbstractUISelectManyCheckbox // XXX a bit hacky
+          && ((AbstractUISelectManyCheckbox)component).getRenderRangeReference() != null) {
+        writer.writeIdAttribute(((AbstractUISelectManyCheckbox)component).getRenderRangeReference().getClientId());
+      } else {
+        writer.writeIdAttribute(clientId);
+      }
       writer.writeClassAttribute(
           flex ? TobagoClass.LABEL__CONTAINER : null,
           getComponentCss(facesContext, component),
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
index 6a27f5e..cc67f04 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/config/AbstractTobagoTestBase.java
@@ -48,6 +48,7 @@ import org.apache.myfaces.tobago.component.UISelectManyCheckbox;
 import org.apache.myfaces.tobago.component.UISelectManyListbox;
 import org.apache.myfaces.tobago.component.UISelectOneChoice;
 import org.apache.myfaces.tobago.component.UISelectOneRadio;
+import org.apache.myfaces.tobago.component.UISelectReference;
 import org.apache.myfaces.tobago.component.UISeparator;
 import org.apache.myfaces.tobago.component.UIStyle;
 import org.apache.myfaces.tobago.component.UITextarea;
@@ -80,6 +81,7 @@ import org.apache.myfaces.tobago.internal.renderkit.renderer.SelectManyCheckboxR
 import org.apache.myfaces.tobago.internal.renderkit.renderer.SelectManyListboxRenderer;
 import org.apache.myfaces.tobago.internal.renderkit.renderer.SelectOneChoiceRenderer;
 import org.apache.myfaces.tobago.internal.renderkit.renderer.SelectOneRadioRenderer;
+import org.apache.myfaces.tobago.internal.renderkit.renderer.SelectReferenceRenderer;
 import org.apache.myfaces.tobago.internal.renderkit.renderer.SeparatorRenderer;
 import org.apache.myfaces.tobago.internal.renderkit.renderer.StyleRenderer;
 import org.apache.myfaces.tobago.internal.renderkit.renderer.TextareaRenderer;
@@ -167,6 +169,7 @@ public abstract class AbstractTobagoTestBase extends AbstractJsfTestCase {
     application.addComponent(Tags.selectManyListbox.componentType(), UISelectManyListbox.class.getName());
     application.addComponent(Tags.selectOneRadio.componentType(), UISelectOneRadio.class.getName());
     application.addComponent(Tags.selectOneChoice.componentType(), UISelectOneChoice.class.getName());
+    application.addComponent(Tags.selectReference.componentType(), UISelectReference.class.getName());
     application.addComponent(Tags.separator.componentType(), UISeparator.class.getName());
     application.addComponent(Tags.style.componentType(), UIStyle.class.getName());
     application.addComponent(Tags.textarea.componentType(), UITextarea.class.getName());
@@ -212,6 +215,8 @@ public abstract class AbstractTobagoTestBase extends AbstractJsfTestCase {
         UISelectOneRadio.COMPONENT_FAMILY, RendererTypes.SELECT_ONE_RADIO, new SelectOneRadioRenderer());
     renderKit.addRenderer(
         UISelectOneChoice.COMPONENT_FAMILY, RendererTypes.SELECT_ONE_CHOICE, new SelectOneChoiceRenderer());
+    renderKit.addRenderer(
+        UISelectReference.COMPONENT_FAMILY, RendererTypes.SELECT_REFERENCE, new SelectReferenceRenderer());
     renderKit.addRenderer(UISeparator.COMPONENT_FAMILY, RendererTypes.SEPARATOR, new SeparatorRenderer());
     renderKit.addRenderer(UIStyle.COMPONENT_FAMILY, RendererTypes.STYLE, new StyleRenderer());
     renderKit.addRenderer(UITextarea.COMPONENT_FAMILY, RendererTypes.TEXTAREA, new TextareaRenderer());
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRendererUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRendererUnitTest.java
index 8232110..3170f62 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRendererUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRendererUnitTest.java
@@ -23,10 +23,12 @@ import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.component.Tags;
 import org.apache.myfaces.tobago.component.UISelectItem;
 import org.apache.myfaces.tobago.component.UISelectOneRadio;
+import org.apache.myfaces.tobago.component.UISelectReference;
 import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+import javax.faces.component.UIPanel;
 import java.io.IOException;
 
 public class SelectOneRadioRendererUnitTest extends RendererTestBase {
@@ -51,4 +53,35 @@ public class SelectOneRadioRendererUnitTest extends RendererTestBase {
     Assertions.assertEquals(loadHtml("renderer/selectOneRadio/selectOneRadioLabel.html"), formattedResult());
   }
 
+  @Test
+  public void reference() throws IOException {
+    final UIPanel panel = (UIPanel) ComponentUtils.createComponent(
+        facesContext, Tags.panel.componentType(), RendererTypes.Panel, "panel");
+
+    final UISelectOneRadio c = (UISelectOneRadio) ComponentUtils.createComponent(
+        facesContext, Tags.selectOneRadio.componentType(), RendererTypes.SelectOneRadio, "id");
+    c.setLabel("label");
+
+    final UISelectItem i1 = (UISelectItem) ComponentUtils.createComponent(
+        facesContext, Tags.selectItem.componentType(), null, "i1");
+    i1.setItemLabel("Stratocaster");
+    c.getChildren().add(i1);
+    final UISelectItem i2 = (UISelectItem) ComponentUtils.createComponent(
+        facesContext, Tags.selectItem.componentType(), null, "i2");
+    i2.setItemLabel("Telecaster");
+    c.getChildren().add(i2);
+    c.setRenderRange("0");
+    panel.getChildren().add(c);
+
+    final UISelectReference r = (UISelectReference) ComponentUtils.createComponent(
+        facesContext, Tags.selectReference.componentType(), RendererTypes.SelectReference, "ref");
+    r.setFor("id");
+    r.setRenderRange("1");
+    panel.getChildren().add(r);
+
+    panel.encodeAll(facesContext);
+
+    Assertions.assertEquals(loadHtml("renderer/selectOneRadio/selectReference.html"), formattedResult());
+  }
+
 }
diff --git a/tobago-core/src/test/resources/renderer/selectOneRadio/selectReference.html b/tobago-core/src/test/resources/renderer/selectOneRadio/selectReference.html
new file mode 100644
index 0000000..a4af274
--- /dev/null
+++ b/tobago-core/src/test/resources/renderer/selectOneRadio/selectReference.html
@@ -0,0 +1,37 @@
+<!--
+ * 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.
+-->
+
+<tobago-panel id='panel'>
+  <tobago-select-one-radio id='id' class='tobago-label-container tobago-auto-spacing'>
+    <label class='col-form-label'>label</label>
+    <div>
+      <div class='form-check'>
+        <input class='form-check-input' type='radio' checked='checked' name='id' id='id::0' value=''>
+        <label class='form-check-label' for='id::0'>Stratocaster</label>
+      </div>
+    </div>
+  </tobago-select-one-radio>
+  <tobago-select-one-radio id='ref' class='tobago-label-container tobago-auto-spacing'>
+    <label class='col-form-label'>label</label>
+    <div>
+      <div class='form-check'>
+        <input class='form-check-input' type='radio' checked='checked' name='id' id='id::1' value=''>
+        <label class='form-check-label' for='id::1'>Telecaster</label>
+      </div>
+    </div>
+  </tobago-select-one-radio>
+</tobago-panel>
\ No newline at end of file