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 2020/06/12 07:21:40 UTC
[myfaces-tobago] branch master updated: tobago-tree: use bootstrap
checkbox/radio custom controls
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 aefd5c6 tobago-tree: use bootstrap checkbox/radio custom controls
aefd5c6 is described below
commit aefd5c6132579da6f65c23e6e8ef3ca499295a34
Author: Henning Nöth <hn...@apache.org>
AuthorDate: Fri Jun 5 17:01:28 2020 +0200
tobago-tree: use bootstrap checkbox/radio custom controls
Issue: TOBAGO-1633
Issue: TOBAGO-1969
---
.../renderkit/renderer/TreeSelectRenderer.java | 41 ++++++++++++----------
tobago-core/src/main/resources/scss/_tobago.scss | 8 +++++
2 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/TreeSelectRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/TreeSelectRenderer.java
index e903c75..43dff32 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/TreeSelectRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/TreeSelectRenderer.java
@@ -109,19 +109,22 @@ public class TreeSelectRenderer extends RendererBase {
final boolean folder = data.isFolder();
final Selectable selectable = data.getSelectable();
+ final boolean showCustomControl = treeSelect.isShowCheckbox()
+ && selectable != Selectable.none && (!selectable.isLeafOnly() || !folder);
writer.startElement(HtmlElements.TOBAGO_TREE_SELECT);
final Markup markup = treeSelect.getMarkup();
writer.writeClassAttribute(
treeSelect.getCustomClass(),
- TobagoClass.TREE_SELECT.createMarkup(markup));
+ TobagoClass.TREE_SELECT.createMarkup(markup),
+ showCustomControl ? BootstrapClass.CUSTOM_CONTROL : null,
+ showCustomControl && selectable.isMulti() ? BootstrapClass.CUSTOM_CHECKBOX : null,
+ showCustomControl && selectable.isSingle() ? BootstrapClass.CUSTOM_RADIO : null);
HtmlRendererUtils.writeDataAttributes(facesContext, writer, treeSelect);
- if (treeSelect.isShowCheckbox()
- && selectable != Selectable.none
- && (!selectable.isLeafOnly() || !folder)) {
+ if (showCustomControl) {
writer.startElement(HtmlElements.INPUT);
- writer.writeClassAttribute(BootstrapClass.FORM_CHECK_INLINE);
+ writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
if (selectable.isSingle()) {
writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.RADIO);
writer.writeNameAttribute(getClientIdWithoutRowIndex(data, id));
@@ -135,7 +138,21 @@ public class TreeSelectRenderer extends RendererBase {
writer.writeAttribute(HtmlAttributes.CHECKED, checked);
writer.endElement(HtmlElements.INPUT);
+ }
+
+ final String label = treeSelect.getLabel();
+ writer.startElement(HtmlElements.LABEL);
+ writer.writeClassAttribute(TobagoClass.TREE_SELECT__LABEL,
+ showCustomControl ? BootstrapClass.CUSTOM_CONTROL_LABEL : null);
+ final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, treeSelect);
+ if (title != null) {
+ writer.writeAttribute(HtmlAttributes.TITLE, title, true);
+ }
+ writer.writeAttribute(HtmlAttributes.FOR, id, false);
+ writer.writeText(label);
+ writer.endElement(HtmlElements.LABEL);
+ if (showCustomControl) {
final CommandMap behaviorCommands = getBehaviorCommands(facesContext, treeSelect);
if (behaviorCommands != null) {
Map<ClientBehaviors, Command> other = behaviorCommands.getOther();
@@ -148,20 +165,6 @@ public class TreeSelectRenderer extends RendererBase {
encodeBehavior(writer, behaviorCommands);
}
- // label
- final String label = treeSelect.getLabel();
- if (StringUtils.isNotEmpty(label)) {
- writer.startElement(HtmlElements.LABEL);
- writer.writeClassAttribute(TobagoClass.TREE_SELECT__LABEL);
- final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, treeSelect);
- if (title != null) {
- writer.writeAttribute(HtmlAttributes.TITLE, title, true);
- }
- writer.writeAttribute(HtmlAttributes.FOR, id, false);
- writer.writeText(label);
- writer.endElement(HtmlElements.LABEL);
- }
-
writer.endElement(HtmlElements.TOBAGO_TREE_SELECT);
}
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 96c4f6c..e81e455 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -1515,8 +1515,16 @@ tobago-tree {
tobago-tree-select {
display: inline;
+
+ &.custom-control {
+ display: inline;
+ }
}
}
+
+ .tobago-treeLabel, .tobago-treeSelect-label {
+ margin-bottom: 0;
+ }
}
/* treeListbox ---------------------------------------------------------------------- */