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 2018/11/16 15:44:28 UTC
[myfaces-tobago] branch master updated: TOBAGO-1954 TOBAGO-1955 Add
vertical mode for link and button group
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 8d718db TOBAGO-1954 TOBAGO-1955 Add vertical mode for link and button group
8d718db is described below
commit 8d718db701c65a1c4b337d859aace238ad0486fa
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Fri Nov 16 16:44:17 2018 +0100
TOBAGO-1954 TOBAGO-1955 Add vertical mode for link and button group
Add attribute 'orientation' for <tc:links> and <tc:buttons>.
Value could be 'horizontal' (default) and 'vertical' for vertical mode.
---
.../internal/component/AbstractUIButtons.java | 4 ++++
.../tobago/internal/component/AbstractUILinks.java | 4 ++++
.../renderkit/renderer/ButtonsRenderer.java | 4 +++-
.../internal/renderkit/renderer/LinksRenderer.java | 7 ++++++-
.../taglib/component/ButtonsTagDeclaration.java | 3 ++-
.../taglib/component/LinksTagDeclaration.java | 3 ++-
.../declaration/HasOrientation.java} | 23 +++++++++++++++++-----
.../040-command/20-buttons/buttons.xhtml | 20 +++++++++++++++++--
.../20-component/040-command/25-links/links.xhtml | 20 +++++++++++++++++--
9 files changed, 75 insertions(+), 13 deletions(-)
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java
index 5f2e88b..30396e5 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java
@@ -19,8 +19,12 @@
package org.apache.myfaces.tobago.internal.component;
+import org.apache.myfaces.tobago.layout.Orientation;
+
/**
* {@link org.apache.myfaces.tobago.internal.taglib.component.ButtonsTagDeclaration}
*/
public abstract class AbstractUIButtons extends AbstractUIPanelBase {
+
+ public abstract Orientation getOrientation();
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUILinks.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUILinks.java
index fbdc4a0..8de772a 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUILinks.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUILinks.java
@@ -19,8 +19,12 @@
package org.apache.myfaces.tobago.internal.component;
+import org.apache.myfaces.tobago.layout.Orientation;
+
/**
* {@link org.apache.myfaces.tobago.internal.taglib.component.LinksTagDeclaration}
*/
public abstract class AbstractUILinks extends AbstractUIPanelBase {
+
+ public abstract Orientation getOrientation();
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonsRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonsRenderer.java
index 39f6ce5..710c494 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonsRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonsRenderer.java
@@ -26,6 +26,7 @@ import org.apache.myfaces.tobago.internal.component.AbstractUIButton;
import org.apache.myfaces.tobago.internal.component.AbstractUIButtons;
import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
import org.apache.myfaces.tobago.internal.util.JsonUtils;
+import org.apache.myfaces.tobago.layout.Orientation;
import org.apache.myfaces.tobago.renderkit.RendererBase;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
@@ -55,7 +56,8 @@ public class ButtonsRenderer extends RendererBase {
writer.writeClassAttribute(
TobagoClass.BUTTONS,
TobagoClass.BUTTONS.createMarkup(markup),
- BootstrapClass.BTN_GROUP,
+ Orientation.vertical.equals(buttons.getOrientation())
+ ? BootstrapClass.BTN_GROUP_VERTICAL : BootstrapClass.BTN_GROUP,
buttons.getCustomClass());
writer.writeAttribute(HtmlAttributes.ROLE, HtmlRoleValues.GROUP.toString(), false);
HtmlRendererUtils.writeDataAttributes(facesContext, writer, buttons);
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java
index 565e04f..e88690e 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.component.RendererTypes;
import org.apache.myfaces.tobago.internal.component.AbstractUILink;
import org.apache.myfaces.tobago.internal.component.AbstractUILinks;
import org.apache.myfaces.tobago.internal.util.JsonUtils;
+import org.apache.myfaces.tobago.layout.Orientation;
import org.apache.myfaces.tobago.renderkit.RendererBase;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
import org.apache.myfaces.tobago.renderkit.css.CssItem;
@@ -45,7 +46,11 @@ public class LinksRenderer extends RendererBase {
writer.startElement(HtmlElements.UL);
writer.writeIdAttribute(links.getClientId(facesContext));
writer.writeAttribute(DataAttributes.MARKUP, JsonUtils.encode(links.getMarkup()), false);
- writer.writeClassAttribute(TobagoClass.LINKS, getExtraCssItem(), links.getCustomClass());
+ writer.writeClassAttribute(
+ TobagoClass.LINKS,
+ getExtraCssItem(),
+ Orientation.vertical.equals(links.getOrientation()) ? BootstrapClass.FLEX_COLUMN : null,
+ links.getCustomClass());
}
@Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonsTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonsTagDeclaration.java
index b10869d..d039c35 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonsTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonsTagDeclaration.java
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.apt.annotation.Tag;
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.component.RendererTypes;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasOrientation;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsVisual;
@@ -44,6 +45,6 @@ import javax.faces.component.UIPanel;
})
public interface ButtonsTagDeclaration
- extends HasIdBindingAndRendered, IsVisual, HasTip {
+ extends HasIdBindingAndRendered, IsVisual, HasTip, HasOrientation {
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java
index 9f077c5..2d0f917 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.apt.annotation.Tag;
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.component.RendererTypes;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasOrientation;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsVisual;
@@ -42,5 +43,5 @@ import javax.faces.component.UIPanel;
"javax.faces.component.behavior.ClientBehaviorHolder"
},
rendererType = {RendererTypes.LINKS, RendererTypes.LINKS_INSIDE_BAR})
-public interface LinksTagDeclaration extends HasIdBindingAndRendered, IsVisual, HasTip {
+public interface LinksTagDeclaration extends HasIdBindingAndRendered, IsVisual, HasTip, HasOrientation {
}
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasOrientation.java
similarity index 56%
copy from tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java
copy to tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasOrientation.java
index 5f2e88b..1c55495 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIButtons.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasOrientation.java
@@ -17,10 +17,23 @@
* under the License.
*/
-package org.apache.myfaces.tobago.internal.component;
+package org.apache.myfaces.tobago.internal.taglib.declaration;
-/**
- * {@link org.apache.myfaces.tobago.internal.taglib.component.ButtonsTagDeclaration}
- */
-public abstract class AbstractUIButtons extends AbstractUIPanelBase {
+import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
+import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
+import org.apache.myfaces.tobago.layout.Orientation;
+
+public interface HasOrientation {
+
+ /**
+ * Set the orientation of the component.
+ * Allowed values: horizontal, vertical
+ */
+ @TagAttribute
+ @UIComponentTagAttribute(
+ type = "org.apache.myfaces.tobago.layout.Orientation",
+ allowedValues = {
+ Orientation.HORIZONTAL, Orientation.VERTICAL
+ })
+ void setOrientation(String orientation);
}
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
index 41e2fe2..75a4b2a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
@@ -25,9 +25,11 @@
<p>Buttons can be grouped with the <code class="language-markup"><tc:buttons/></code> tag.
Just add some <code class="language-markup"><tc:button/></code> tags.</p>
<p>Tag Library Documentation:
- <tc:link label="<tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
+ <tc:link label="<tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png"
+ link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
|
- <tc:link label="<tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+ <tc:link label="<tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
+ link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
<tc:section label="Basics">
<p>A simple example with three buttons.</p>
@@ -80,4 +82,18 @@
<tc:button label="Right"/>
</tc:buttons>
</tc:section>
+
+ <tc:section label="Vertical">
+ <p>Vertical link group.</p>
+ <pre><code class="language-markup"><tc:buttons orientation="vertical">
+ <tc:button label="Left"/>
+ <tc:button label="Center"/>
+ <tc:button label="Right"/>
+</tc:buttons></code></pre>
+ <tc:buttons orientation="vertical">
+ <tc:button label="Left"/>
+ <tc:button label="Center"/>
+ <tc:button label="Right"/>
+ </tc:buttons>
+ </tc:section>
</ui:composition>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
index 37e39f2..8540d60 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
@@ -30,9 +30,11 @@
<tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
<p>Tag Library Documentation:
- <tc:link label="<tc:links/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/links.html"/>
+ <tc:link label="<tc:links/>" image="#{request.contextPath}/image/feather-leaf.png"
+ link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/links.html"/>
|
- <tc:link label="<tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/></p>
+ <tc:link label="<tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
+ link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/></p>
<tc:section label="Basics">
<p>A simple example with three links.</p>
@@ -73,4 +75,18 @@
<tc:link label="Right"/>
</tc:links>
</tc:section>
+
+ <tc:section label="Vertical">
+ <p>Vertical link group.</p>
+ <pre><code class="language-markup"><tc:links orientation="vertical">
+ <tc:link label="Left"/>
+ <tc:link label="Center"/>
+ <tc:link label="Right"/>
+</tc:links></code></pre>
+ <tc:links orientation="vertical">
+ <tc:link label="Left"/>
+ <tc:link label="Center"/>
+ <tc:link label="Right"/>
+ </tc:links>
+ </tc:section>
</ui:composition>