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 2018/08/07 13:23:26 UTC

[myfaces-tobago] branch master updated: TOBAGO-1908: LabelLayout attributes gridLeft, gridRight

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


The following commit(s) were added to refs/heads/master by this push:
     new 2775e75  TOBAGO-1908: LabelLayout attributes gridLeft, gridRight
2775e75 is described below

commit 2775e757cbc3ff6b8e90540b08c258dc7226d615
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Tue Aug 7 15:23:02 2018 +0200

    TOBAGO-1908: LabelLayout attributes gridLeft, gridRight
---
 .../renderer/LabelLayoutRendererBase.java          | 42 +++-------------------
 .../renderer/MessageLayoutRendererBase.java        | 20 +++++++++++
 2 files changed, 24 insertions(+), 38 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 4da24be..a906727 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
@@ -53,41 +53,13 @@ public abstract class LabelLayoutRendererBase extends DecodingInputRendererBase
 
     encodeBeginSurroundingLabel(facesContext, component);
 
-    switch (getType(component)) {
-      case segmentLeft:
-        if (LabelLayout.getSegment(facesContext) == LabelLayout.segmentRight) {
-          encodeBeginMessageField(facesContext, component);
-        }
-        break;
-      case segmentRight:
-        if (LabelLayout.getSegment(facesContext) == LabelLayout.segmentLeft) {
-          encodeBeginMessageField(facesContext, component);
-        }
-        break;
-      default:
-        encodeBeginMessageField(facesContext, component);
-        break;
-    }
+    encodeBeginMessageField(facesContext, component);
   }
 
   @Override
   public void encodeEnd(final FacesContext facesContext, final UIComponent component) throws IOException {
 
-    switch (getType(component)) {
-      case segmentLeft:
-        if (LabelLayout.getSegment(facesContext) == LabelLayout.segmentRight) {
-          encodeEndMessageField(facesContext, component);
-        }
-        break;
-      case segmentRight:
-        if (LabelLayout.getSegment(facesContext) == LabelLayout.segmentLeft) {
-          encodeEndMessageField(facesContext, component);
-        }
-        break;
-      default:
-        encodeEndMessageField(facesContext, component);
-        break;
-    }
+    encodeEndMessageField(facesContext, component);
 
     // render the styles here, because inside of <select> its not possible.
     if (component.getRendersChildren()) {
@@ -139,7 +111,7 @@ public abstract class LabelLayoutRendererBase extends DecodingInputRendererBase
     // - flowLeft (todo)
     // - flowRight (todo)
     // - skip
-    final LabelLayout labelLayout = getType(component);
+    final LabelLayout labelLayout = ((SupportsLabelLayout) component).getLabelLayout();
     final boolean flex;
     switch (labelLayout) {
       case skip:
@@ -205,7 +177,7 @@ public abstract class LabelLayoutRendererBase extends DecodingInputRendererBase
       throws IOException {
 
     final TobagoResponseWriter writer = getResponseWriter(facesContext);
-    final LabelLayout labelLayout = getType(component);
+    final LabelLayout labelLayout = ((SupportsLabelLayout) component).getLabelLayout();
 
     switch (labelLayout) {
       case skip:
@@ -242,11 +214,5 @@ public abstract class LabelLayoutRendererBase extends DecodingInputRendererBase
     }
   }
 
-  private LabelLayout getType(final UIComponent component) {
-    return component instanceof SupportsLabelLayout
-        ? ((SupportsLabelLayout) component).getLabelLayout()
-        : LabelLayout.skip;
-  }
-
   protected abstract String getFieldId(final FacesContext facesContext, final UIComponent component);
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessageLayoutRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessageLayoutRendererBase.java
index a369767..0487555 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessageLayoutRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessageLayoutRendererBase.java
@@ -19,6 +19,8 @@
 
 package org.apache.myfaces.tobago.internal.renderkit.renderer;
 
+import org.apache.myfaces.tobago.component.LabelLayout;
+import org.apache.myfaces.tobago.component.SupportsLabelLayout;
 import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
 import org.apache.myfaces.tobago.renderkit.css.Icons;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
@@ -39,12 +41,30 @@ public abstract class MessageLayoutRendererBase extends LabelLayoutRendererBase
 
   @Override
   public void encodeBeginMessageField(final FacesContext facesContext, final UIComponent component) throws IOException {
+
+    final LabelLayout labelLayout = ((SupportsLabelLayout) component).getLabelLayout();
+    final LabelLayout segment = LabelLayout.getSegment(facesContext);
+
+    if (labelLayout == LabelLayout.segmentLeft && segment != LabelLayout.segmentRight ||
+        labelLayout == LabelLayout.segmentRight && segment != LabelLayout.segmentLeft) {
+      return; // skip, because this component is the label
+    }
+
     encodeBeginSurroundingMessage(facesContext, component);
     encodeBeginField(facesContext, component);
   }
 
   @Override
   public void encodeEndMessageField(final FacesContext facesContext, final UIComponent component) throws IOException {
+
+    final LabelLayout labelLayout = ((SupportsLabelLayout) component).getLabelLayout();
+    final LabelLayout segment = LabelLayout.getSegment(facesContext);
+
+    if (labelLayout == LabelLayout.segmentLeft && segment != LabelLayout.segmentRight ||
+        labelLayout == LabelLayout.segmentRight && segment != LabelLayout.segmentLeft) {
+      return; // skip, because this component is the label
+    }
+
     encodeEndField(facesContext, component);
     encodeEndSurroundingMessage(facesContext, component);
   }