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 2023/04/15 11:37:35 UTC
[myfaces-tobago] 01/02: feature(markup): hideToggleIcon
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit 0e180ae318bd3209c39b5c73c98af46bae35628d
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Sat Apr 15 12:17:35 2023 +0200
feature(markup): hideToggleIcon
* add markup and CSS class: hideToggleIcon
* add demo
Issue: TOBAGO-2202
---
.../src/main/java/org/apache/myfaces/tobago/context/Markup.java | 2 ++
.../tobago/internal/renderkit/renderer/CommandRendererBase.java | 3 +++
.../tobago/internal/taglib/component/ButtonTagDeclaration.java | 4 ++++
.../tobago/internal/taglib/component/LinkTagDeclaration.java | 4 ++++
.../java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java | 1 +
.../content/040-command/00-button-link/Button_and_Link.xhtml | 7 +++++++
tobago-theme/src/main/scss/_tobago.scss | 8 ++++++++
7 files changed, 29 insertions(+)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java
index e01a89cbf8..d77d146a33 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/context/Markup.java
@@ -81,6 +81,7 @@ public final class Markup implements Serializable, Iterable<String> {
public static final Markup EXTRA_LARGE = valueOf("extraLarge");
public static final Markup FATAL = valueOf("fatal");
public static final Markup FOLDER = valueOf("folder");
+ public static final Markup HIDE_TOGGLE_ICON = valueOf("hideToggleIcon");
public static final Markup HOVER = valueOf("hover");
public static final Markup INFO = valueOf("info");
public static final Markup INLINE = valueOf("inline");
@@ -143,6 +144,7 @@ public final class Markup implements Serializable, Iterable<String> {
public static final String STRING_EXTRA_LARGE = "extraLarge";
public static final String STRING_FATAL = "fatal";
public static final String STRING_FOLDER = "folder";
+ public static final String STRING_HIDE_TOGGLE_ICON = "hideToggleIcon";
public static final String STRING_HOVER = "hover";
public static final String STRING_INFO = "info";
public static final String STRING_INLINE = "inline";
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 d6bb1d9607..db358df9c1 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
@@ -21,6 +21,7 @@ package org.apache.myfaces.tobago.internal.renderkit.renderer;
import org.apache.myfaces.tobago.component.Attributes;
import org.apache.myfaces.tobago.component.Facets;
+import org.apache.myfaces.tobago.context.Markup;
import org.apache.myfaces.tobago.internal.component.AbstractUIBadge;
import org.apache.myfaces.tobago.internal.component.AbstractUICommand;
import org.apache.myfaces.tobago.internal.component.AbstractUIFormBase;
@@ -74,6 +75,7 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
final boolean autoSpacing = component.getAutoSpacing(facesContext);
final boolean parentOfCommands = component.isParentOfCommands();
final boolean dropdownSubmenu = isInside(facesContext, HtmlElements.COMMAND);
+ final Markup markup = component.getMarkup() != null ? component.getMarkup() : Markup.NULL;
final TobagoResponseWriter writer = getResponseWriter(facesContext);
@@ -124,6 +126,7 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
autoSpacing && !dropdownSubmenu ? TobagoClass.AUTO__SPACING : null,
dropdownSubmenu ? BootstrapClass.DROPDOWN_ITEM : null,
parentOfCommands && !dropdownSubmenu ? BootstrapClass.DROPDOWN_TOGGLE : null,
+ markup.contains(Markup.HIDE_TOGGLE_ICON) ? TobagoClass.HIDE_TOGGLE_ICON : null,
label.getLabel() == null && image == null && labelFacet == null ? BootstrapClass.DROPDOWN_TOGGLE_SPLIT : null,
component.getCustomClass(),
isInside(facesContext, HtmlElements.TOBAGO_LINKS) && !dropdownSubmenu ? BootstrapClass.NAV_LINK : null);
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
index fecbeb2baf..e3a5d7deab 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
@@ -159,6 +159,10 @@ import jakarta.faces.component.UICommand;
@Markup(
name = org.apache.myfaces.tobago.context.Markup.STRING_PILL,
description = "Make badges more rounded if button is displayed as a badge."
+ ),
+ @Markup(
+ name = org.apache.myfaces.tobago.context.Markup.STRING_HIDE_TOGGLE_ICON,
+ description = "Hide the toggle icon of a dropdown menu."
)
})
public interface ButtonTagDeclaration
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java
index 78fd09d835..6ec7aef026 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java
@@ -124,6 +124,10 @@ import jakarta.faces.component.UICommand;
@Markup(
name = org.apache.myfaces.tobago.context.Markup.STRING_ITALIC,
description = "Set font to italic."
+ ),
+ @Markup(
+ name = org.apache.myfaces.tobago.context.Markup.STRING_HIDE_TOGGLE_ICON,
+ description = "Hide the toggle icon of a dropdown menu."
)
})
public interface LinkTagDeclaration
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index 33d0e856f1..1e0d2c1403 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -61,6 +61,7 @@ public enum TobagoClass implements CssItem {
FILTER("tobago-filter"),
HEADER("tobago-header"),
HELP__CONTAINER("tobago-help-container"),
+ HIDE_TOGGLE_ICON("tobago-hideToggleIcon"),
LABEL("tobago-label"),
LABEL__CONTAINER("tobago-label-container"),
LEVEL("tobago-level"),
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/040-command/00-button-link/Button_and_Link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/040-command/00-button-link/Button_and_Link.xhtml
index 1f16b566a2..4d134c2df0 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/040-command/00-button-link/Button_and_Link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/040-command/00-button-link/Button_and_Link.xhtml
@@ -108,6 +108,13 @@
<tc:link label="3"/>
</tc:link>
</tc:button>
+
+ <p>For a dropdown menu without a toggle icon, use markup <code>hideToggleIcon</code></p>
+ <tc:button image="bi-three-dots-vertical" omit="true" markup="hideToggleIcon">
+ <tc:link label="Entry 1"/>
+ <tc:link label="Entry 2"/>
+ <tc:link label="Entry 3"/>
+ </tc:button>
</tc:section>
<tc:section label="Dropdown with Radio Buttons and Checkboxes">
diff --git a/tobago-theme/src/main/scss/_tobago.scss b/tobago-theme/src/main/scss/_tobago.scss
index 4467496f5e..e835804db7 100644
--- a/tobago-theme/src/main/scss/_tobago.scss
+++ b/tobago-theme/src/main/scss/_tobago.scss
@@ -135,6 +135,12 @@ $tobago-flex-layout-spacing: 0.5rem;
}
}
+@mixin markupHideToggleIcon() {
+ &.tobago-hideToggleIcon:after {
+ content: none;
+ }
+}
+
@mixin messagesHelpContainer($tobago-form-validation-states) {
@each $state, $data in $tobago-form-validation-states {
@include form-validation-state($state, $data...);
@@ -418,6 +424,7 @@ tobago-box {
@include buttonLinkDisabledCursor();
@include buttonLinkImageTextSpacing();
@include badgeBtn();
+ @include markupHideToggleIcon();
&.badge {
@each $color, $value in $theme-colors {
@@ -808,6 +815,7 @@ tobago-links {
.tobago-link {
@include buttonLinkImageTextSpacing();
+ @include markupHideToggleIcon();
white-space: nowrap;
span {