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 2021/01/22 12:21:04 UTC

[myfaces-tobago] branch master updated: feat: dropdown with selectBooleanToggle

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 0107a45  feat: dropdown with selectBooleanToggle
0107a45 is described below

commit 0107a45fbecc9a3efc6722ada238a36071503b85
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Jan 20 10:38:43 2021 +0100

    feat: dropdown with selectBooleanToggle
    
    * selectBooleanToggle can be part of a dropdown
    * adjust css
---
 tobago-core/npm/scss/_tobago.scss                                  | 7 ++++++-
 .../tobago/internal/renderkit/renderer/CommandRendererBase.java    | 2 ++
 .../internal/renderkit/renderer/SelectBooleanToggleRenderer.java   | 5 ++++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/tobago-core/npm/scss/_tobago.scss b/tobago-core/npm/scss/_tobago.scss
index 12e9da7..fd2ba16 100644
--- a/tobago-core/npm/scss/_tobago.scss
+++ b/tobago-core/npm/scss/_tobago.scss
@@ -74,7 +74,12 @@ $page-padding-top: 1rem;
 @mixin dropdownMenuFormCheckComponents() {
   .dropdown-menu .form-check {
     /* move form-check components to the right, so checkbox/radio buttons are inside dropdown-menu */
-    padding-left: (($dropdown-item-padding-x ) + ($form-check-padding-start / 1em))
+    $paddingLeftCheckboxRadio: (($dropdown-item-padding-x / 1rem ) + $form-check-padding-start);
+    padding-left: $paddingLeftCheckboxRadio;
+
+    &.form-switch {
+      padding-left: $paddingLeftCheckboxRadio + ($form-switch-width - $form-check-input-width);
+    }
   }
 }
 
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
index 6d7d417..0ec670f 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
@@ -25,6 +25,7 @@ import org.apache.myfaces.tobago.internal.component.AbstractUICommand;
 import org.apache.myfaces.tobago.internal.component.AbstractUIFormBase;
 import org.apache.myfaces.tobago.internal.component.AbstractUILink;
 import org.apache.myfaces.tobago.internal.component.AbstractUISelectBooleanCheckbox;
+import org.apache.myfaces.tobago.internal.component.AbstractUISelectBooleanToggle;
 import org.apache.myfaces.tobago.internal.component.AbstractUISelectManyCheckbox;
 import org.apache.myfaces.tobago.internal.component.AbstractUISelectOneRadio;
 import org.apache.myfaces.tobago.internal.component.AbstractUISeparator;
@@ -182,6 +183,7 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
             renderLater.add(child);
           } else if (child instanceof AbstractUILink
               || child instanceof AbstractUISelectBooleanCheckbox
+              || child instanceof AbstractUISelectBooleanToggle
               || child instanceof AbstractUISelectManyCheckbox
               || child instanceof AbstractUISelectOneRadio
               || child instanceof AbstractUISeparator) {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
index 9d90d50..c3b5372 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
@@ -36,8 +36,11 @@ public class SelectBooleanToggleRenderer<T extends AbstractUISelectBooleanCheckb
   }
 
   protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
+    final boolean insideCommand = isInside(facesContext, HtmlElements.COMMAND);
+    final boolean colFromLabel = !select.isLabelLayoutSkip() && !insideCommand;
     return new CssItem[]{
-        !select.isLabelLayoutSkip() ? BootstrapClass.COL_FORM_LABEL : null,
+        colFromLabel ? BootstrapClass.COL_FORM_LABEL : null,
+        insideCommand ? BootstrapClass.DROPDOWN_ITEM : null,
         BootstrapClass.FORM_SWITCH
     };
   }