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 2017/04/05 13:20:57 UTC
svn commit: r1790243 - in /myfaces/tobago/branches/TOBAGO-1719:
tobago-core/src/main/java/org/apache/myfaces/tobago/component/
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/
tobago-core/src/main/java/org/apache/myfaces...
Author: hnoeth
Date: Wed Apr 5 13:20:56 2017
New Revision: 1790243
URL: http://svn.apache.org/viewvc?rev=1790243&view=rev
Log:
TOBAGO-1721 Optimize HTML output when two renderer are involved
* optimized HTML output for <tc:bar><tc:links>
* <tc:form inline="true"> render the much more defensive class 'd-line' instead of 'form-inline'
Added:
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksAlternativeBarRenderer.java
Modified:
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FormRenderer.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/resources/scss/_tobago.scss
myfaces/tobago/branches/TOBAGO-1719/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java Wed Apr 5 13:20:56 2017
@@ -49,6 +49,7 @@ public enum RendererTypes {
LinkAlternativeCommand,
LinkAlternativeLinks,
Links,
+ LinksAlternativeBar,
Label,
Messages,
Object,
@@ -119,6 +120,7 @@ public enum RendererTypes {
public static final String LINK_ALTERNATIVE_COMMAND = "LinkAlternativeCommand";
public static final String LINK_ALTERNATIVE_LINKS = "LinkAlternativeLinks";
public static final String LINKS = "Links";
+ public static final String LINKS_ALTERNATIVE_BAR = "LinksAlternativeBar";
public static final String LABEL = "Label";
public static final String MESSAGES = "Messages";
public static final String OBJECT = "Object";
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java Wed Apr 5 13:20:56 2017
@@ -20,14 +20,15 @@
package org.apache.myfaces.tobago.internal.renderkit.renderer;
import org.apache.myfaces.tobago.component.Facets;
+import org.apache.myfaces.tobago.component.RendererTypes;
import org.apache.myfaces.tobago.component.UIBar;
-import org.apache.myfaces.tobago.internal.component.AbstractUIFormBase;
+import org.apache.myfaces.tobago.internal.component.AbstractUIForm;
+import org.apache.myfaces.tobago.internal.component.AbstractUILinks;
import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
import org.apache.myfaces.tobago.internal.util.JQueryUtils;
import org.apache.myfaces.tobago.internal.util.RenderUtils;
import org.apache.myfaces.tobago.renderkit.RendererBase;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
-import org.apache.myfaces.tobago.renderkit.css.CssItemUtils;
import org.apache.myfaces.tobago.renderkit.css.Icons;
import org.apache.myfaces.tobago.renderkit.html.Arias;
import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
@@ -41,8 +42,6 @@ import org.apache.myfaces.tobago.webapp.
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
public class BarRenderer extends RendererBase {
@@ -57,19 +56,18 @@ public class BarRenderer extends Rendere
writer.startElement(HtmlElements.NAV);
writer.writeIdAttribute(clientId);
- writer.writeClassAttribute(BootstrapClass.NAVBAR, BootstrapClass.NAVBAR_TOGGLEABLE, BootstrapClass.FORM_INLINE);
+ writer.writeClassAttribute(BootstrapClass.NAVBAR, BootstrapClass.NAVBAR_TOGGLEABLE);
writer.writeAttribute(HtmlAttributes.ROLE, HtmlRoleValues.NAVIGATION.toString(), false);
HtmlRendererUtils.writeDataAttributes(facesContext, writer, bar);
-// writer.startElement(HtmlElements.DIV);
-// writer.writeClassAttribute(BootstrapClass.CONTAINER_FLUID);
-
encodeOpener(facesContext, bar, writer, navbarId);
writer.startElement(HtmlElements.DIV);
writer.writeIdAttribute(navbarId);
- writer.writeClassAttribute(BootstrapClass.COLLAPSE, BootstrapClass.NAVBAR_COLLAPSE);
-// XXX writer.writeClassAttribute(BootstrapClass.COLLAPSE, BootstrapClass.NAVBAR_COLLAPSE, BootstrapClass.NAVBAR_TEXT);
+ writer.writeClassAttribute(
+ BootstrapClass.COLLAPSE,
+ BootstrapClass.NAVBAR_COLLAPSE,
+ BootstrapClass.ALIGN_ITEMS_CENTER);
}
@Override
@@ -79,28 +77,21 @@ public class BarRenderer extends Rendere
@Override
public void encodeChildren(FacesContext facesContext, UIComponent component) throws IOException {
-
-// final TobagoResponseWriter writer = getResponseWriter(facesContext);
-
- List<UIComponent> itemsToEncode = new ArrayList<UIComponent>();
- collectItemsToEncode(component, itemsToEncode);
- for (final UIComponent child : itemsToEncode) {
-// writer.startElement(HtmlElements.DIV);
-// writer.writeClassAttribute(BootstrapClass.FORM_INLINE);
- CssItemUtils.add(facesContext, BootstrapClass.FORM_INLINE);
- child.encodeAll(facesContext);
- CssItemUtils.pop(facesContext);
-// writer.endElement(HtmlElements.DIV);
+ setRenderTypes(component);
+ for (UIComponent child : component.getChildren()) {
+ if (child.isRendered()) {
+ child.encodeAll(facesContext);
+ }
}
}
- private void collectItemsToEncode(final UIComponent component, List<UIComponent> result) {
+ private void setRenderTypes(UIComponent component) throws IOException {
for (UIComponent child : component.getChildren()) {
if (child.isRendered()) {
- if (child instanceof AbstractUIFormBase) {
- collectItemsToEncode(child, result);
- } else {
- result.add(child);
+ if (child instanceof AbstractUIForm) {
+ setRenderTypes(child);
+ } else if (child instanceof AbstractUILinks) {
+ child.setRendererType(RendererTypes.LINKS_ALTERNATIVE_BAR);
}
}
}
@@ -108,17 +99,26 @@ public class BarRenderer extends Rendere
@Override
public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
+ final UIBar bar = (UIBar) component;
final TobagoResponseWriter writer = getResponseWriter(facesContext);
+ final UIComponent after = ComponentUtils.getFacet(bar, Facets.after);
+
+ if (after != null) {
+ writer.startElement(HtmlElements.DIV);
+ writer.writeClassAttribute(BootstrapClass.MY_LG_0, BootstrapClass.ML_AUTO);
+
+ setRenderTypes(after);
+ RenderUtils.encode(facesContext, after);
+
+ writer.endElement(HtmlElements.DIV);
+ }
writer.endElement(HtmlElements.DIV);
-// writer.endElement(HtmlElements.DIV);
writer.endElement(HtmlElements.NAV);
}
private void encodeOpener(
FacesContext facesContext, UIBar bar, TobagoResponseWriter writer, String navbarId) throws IOException {
-// writer.startElement(HtmlElements.DIV);
-
writer.startElement(HtmlElements.BUTTON);
writer.writeAttribute(HtmlAttributes.TYPE, HtmlButtonTypes.BUTTON);
writer.writeClassAttribute(BootstrapClass.NAVBAR_TOGGLER, BootstrapClass.NAVBAR_TOGGLER_RIGHT);
@@ -128,11 +128,6 @@ public class BarRenderer extends Rendere
writer.writeAttribute(Arias.CONTROLS, navbarId, false);
writer.writeIcon(Icons.BARS);
-/* tbd: may be use this, like in the Bootstrap documentation (but hasn't worked in my first try)
- writer.startElement(HtmlElements.SPAN);
- writer.writeClassAttribute(BootstrapClass.NAVBAR_TOGGLER_ICON);
- writer.endElement(HtmlElements.SPAN);
-*/
writer.startElement(HtmlElements.SPAN);
writer.writeClassAttribute(BootstrapClass.SR_ONLY);
@@ -148,7 +143,5 @@ public class BarRenderer extends Rendere
RenderUtils.encode(facesContext, brand);
writer.endElement(HtmlElements.SPAN);
}
-
-// writer.endElement(HtmlElements.DIV);
}
}
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FormRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FormRenderer.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FormRenderer.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FormRenderer.java Wed Apr 5 13:20:56 2017
@@ -43,7 +43,7 @@ public class FormRenderer extends Render
writer.writeIdAttribute(clientId);
writer.writeClassAttribute(
TobagoClass.FORM,
- inline ? BootstrapClass.FORM_INLINE : null);
+ inline ? BootstrapClass.D_INLINE : null);
}
@Override
Added: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksAlternativeBarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksAlternativeBarRenderer.java?rev=1790243&view=auto
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksAlternativeBarRenderer.java (added)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksAlternativeBarRenderer.java Wed Apr 5 13:20:56 2017
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.renderkit.renderer;
+
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
+import org.apache.myfaces.tobago.renderkit.css.CssItem;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.util.List;
+
+public class LinksAlternativeBarRenderer extends LinksRenderer {
+
+ @Override
+ protected void addCssItems(final FacesContext facesContext, final UIComponent component,
+ final List<CssItem> collected) {
+ collected.add(BootstrapClass.NAVBAR_NAV);
+ }
+}
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/LinksRenderer.java Wed Apr 5 13:20:56 2017
@@ -23,13 +23,16 @@ import org.apache.myfaces.tobago.compone
import org.apache.myfaces.tobago.internal.component.AbstractUILink;
import org.apache.myfaces.tobago.renderkit.RendererBase;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
-import org.apache.myfaces.tobago.renderkit.css.CssItemUtils;
+import org.apache.myfaces.tobago.renderkit.css.Classes;
+import org.apache.myfaces.tobago.renderkit.css.CssItem;
import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
public class LinksRenderer extends RendererBase {
@@ -38,7 +41,12 @@ public class LinksRenderer extends Rende
final TobagoResponseWriter writer = getResponseWriter(facesContext);
writer.startElement(HtmlElements.UL);
- writer.writeClassAttribute(BootstrapClass.NAV, null, CssItemUtils.pop(facesContext));
+ final List<CssItem> cssItems = new ArrayList<CssItem>();
+ addCssItems(facesContext, component, cssItems);
+ writer.writeClassAttribute(
+ Classes.create(component),
+ null,
+ cssItems.toArray(new CssItem[cssItems.size()]));
writer.writeIdAttribute(component.getClientId(facesContext));
}
@@ -71,4 +79,9 @@ public class LinksRenderer extends Rende
final TobagoResponseWriter writer = getResponseWriter(facesContext);
writer.endElement(HtmlElements.UL);
}
+
+ protected void addCssItems(final FacesContext facesContext, final UIComponent component,
+ final List<CssItem> collected) {
+ collected.add(BootstrapClass.NAV);
+ }
}
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinksTagDeclaration.java Wed Apr 5 13:20:56 2017
@@ -37,6 +37,6 @@ import javax.faces.component.UIPanel;
uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUILinks",
uiComponentFacesClass = "javax.faces.component.UIPanel",
componentFamily = UIPanel.COMPONENT_FAMILY,
- rendererType = RendererTypes.LINKS)
+ rendererType = {RendererTypes.LINKS, RendererTypes.LINKS_ALTERNATIVE_BAR})
public interface LinksTagDeclaration extends HasIdBindingAndRendered, IsVisual, HasTip {
}
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java Wed Apr 5 13:20:56 2017
@@ -42,6 +42,7 @@ public enum BootstrapClass implements Cs
ALERT_WARNING("alert-warning"),
ALERT_INFO("alert-info"),
ALERT_DISMISSIBLE("alert-dismissible"),
+ ALIGN_ITEMS_CENTER("align-items-center"),
BG_INVERSE("bg-inverse"),
BTN("btn"),
BTN_DANGER("btn-danger"),
@@ -173,12 +174,19 @@ public enum BootstrapClass implements Cs
INPUT_GROUP_ADDON("input-group-addon"),
INPUT_GROUP_BTN("input-group-btn"),
INVISIBLE("invisible"),
+ ML_AUTO("ml-auto"),
MODAL("modal"),
MODAL_CONTENT("modal-content"),
MODAL_DIALOG("modal-dialog"),
MODAL_LG("modal-lg"),
MODAL_SM("modal-sm"),
MR_AUTO("mr-auto"),
+ MY_LG_0("my-lg-0"),
+ MY_LG_1("my-lg-1"),
+ MY_LG_2("my-lg-2"),
+ MY_LG_3("my-lg-3"),
+ MY_LG_4("my-lg-4"),
+ MY_LG_5("my-lg-5"),
NAV("nav"),
NAV_ITEM("nav-item"),
NAV_LINK("nav-link"),
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/resources/scss/_tobago.scss
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/resources/scss/_tobago.scss?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/resources/scss/_tobago.scss (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-core/src/main/resources/scss/_tobago.scss Wed Apr 5 13:20:56 2017
@@ -28,10 +28,6 @@ span.dropdown {
display: inline-flex;
}
-.form-check-label.dropdown-item {
- padding-left: 1.25rem;
-}
-
/*
Todo: check, if this is needed? (It doesn't work with the build system)
@@ -348,6 +344,17 @@ button.tobago-link-markup-disabled:hover
text-decoration: none;
}
+button.nav-link { /* bootstrap don't know button.nav-link*/
+ padding: $nav-link-padding;
+ padding-top: .55em;
+ padding-bottom: .45em;
+}
+
+.navbar-nav button.nav-link {
+ padding-left: 0;
+ padding-right: 0;
+}
+
/* messages ----------------------------------------------------------- */
.tobago-messages-container {
@@ -966,15 +973,6 @@ fixes missing space, I thinks normal Web
fixme: there is a problem with the selectManyShuttle with this style.
*/
-.navbar button:nth-child(n+2),
-.navbar input:nth-child(n+2) {
- margin-left: 5px;
-}
-
-.tobago-button > *:nth-child(n+2),
-.tobago-link > *:nth-child(n+2) {
- margin-left: .4em;
-}
.tobago-label {
width: 155px;
Modified: myfaces/tobago/branches/TOBAGO-1719/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/TOBAGO-1719/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml?rev=1790243&r1=1790242&r2=1790243&view=diff
==============================================================================
--- myfaces/tobago/branches/TOBAGO-1719/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml (original)
+++ myfaces/tobago/branches/TOBAGO-1719/tobago-example/tobago-example-demo/src/main/webapp/menu.xhtml Wed Apr 5 13:20:56 2017
@@ -36,7 +36,7 @@
<tc:link image="#{request.contextPath}/image/feather-leaf.png" label="Tobago Demo" id="brand" link="/"/>
</f:facet>
- <tc:form id="header" inline="true">
+ <tc:form id="header">
<tc:links id="commands">
@@ -108,35 +108,37 @@
</tc:links>
</tc:form>
- <!--<tc:flowLayout textAlign="right">-->
- <tc:form inline="true">
- <tc:in placeholder="Search"/>
- <tc:button defaultCommand="true" omit="true" label="go">
- <tc:dataAttribute name="alert-text"
- value="Sorry: Search not implemented"/>
-
- </tc:button>
- </tc:form>
- <tc:form id="navbtns" inline="true">
- <!--<tc:style customClass="form-inline"/>-->
- <tc:buttons>
- <tc:button immediate="true" id="previous"
- image="fa-angle-left"
- action="#{navigationState.gotoPrevious}"
- disabled="#{navigationState.first}"
- tip="#{demoBundle.footer_previous}"/>
- <tc:button immediate="true" id="next"
- image="fa-angle-right"
- action="#{navigationState.gotoNext}"
- disabled="#{navigationState.last}"
- tip="#{demoBundle.footer_next}"/>
- </tc:buttons>
- <tc:button action="#{navigationState.toggleViewSource}"
- image="fa-code"
- immediate="true" tip="#{demoBundle.footer_viewSource}"/>
- </tc:form>
- <!--</tc:flowLayout>-->
-
+ <f:facet name="after">
+ <tc:flexLayout columns="auto;auto">
+ <tc:form>
+ <tc:flexLayout columns="200px;auto">
+ <tc:in placeholder="Search" labelLayout="skip"/>
+ <tc:button defaultCommand="true" omit="true" label="go">
+ <tc:dataAttribute name="alert-text" value="Sorry: Search not implemented"/>
+ </tc:button>
+ </tc:flexLayout>
+ </tc:form>
+ <tc:form id="navbtns">
+ <tc:flexLayout columns="auto;auto">
+ <tc:buttons>
+ <tc:button immediate="true" id="previous"
+ image="fa-angle-left"
+ action="#{navigationState.gotoPrevious}"
+ disabled="#{navigationState.first}"
+ tip="#{demoBundle.footer_previous}"/>
+ <tc:button immediate="true" id="next"
+ image="fa-angle-right"
+ action="#{navigationState.gotoNext}"
+ disabled="#{navigationState.last}"
+ tip="#{demoBundle.footer_next}"/>
+ </tc:buttons>
+ <tc:button action="#{navigationState.toggleViewSource}"
+ image="fa-code"
+ immediate="true" tip="#{demoBundle.footer_viewSource}"/>
+ </tc:flexLayout>
+ </tc:form>
+ </tc:flexLayout>
+ </f:facet>
</tc:bar>
<!--