You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2016/07/20 14:58:16 UTC
svn commit: r1753530 [1/2] - in /myfaces/tobago/trunk:
tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/
tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/
tobago-examp...
Author: deki
Date: Wed Jul 20 14:58:16 2016
New Revision: 1753530
URL: http://svn.apache.org/viewvc?rev=1753530&view=rev
Log:
TOBAGO 1544: Demo
- collapsible concept described
- cleanup
- add stacktrace to exception page
[developed by hnoeth]
Added:
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleBoxController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePanelController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePopupController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleSectionController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ExceptionController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/70-grid-layout/
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/70-grid-layout/grid-layout.xhtml
Removed:
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AppInfo.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Bird.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/BirdController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Command.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Controller.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Countries.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/SelectOne.java
Modified:
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ButtonLinkController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ObjectController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PopupController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-commands/commands.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/collapsible.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/concept.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/20-toolBar/toolBar.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/35-deprecated/deprecated.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/error/exception.xhtml
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/tobago-resource/html/standard/standard/property/overview.properties.xml
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ButtonLinkController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ButtonLinkController.java?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ButtonLinkController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ButtonLinkController.java Wed Jul 20 14:58:16 2016
@@ -27,7 +27,8 @@ import java.io.Serializable;
@Named
public class ButtonLinkController implements Serializable {
- private static final Logger LOG = LoggerFactory.getLogger(Command.class);
+
+ private static final Logger LOG = LoggerFactory.getLogger(ButtonLinkController.class);
public String linkToComponentsRoot() {
LOG.info("link to components root");
Added: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleBoxController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleBoxController.java?rev=1753530&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleBoxController.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleBoxController.java Wed Jul 20 14:58:16 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.example.demo;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@SessionScoped
+@Named
+public class CollapsibleBoxController implements Serializable {
+
+ private boolean collapsed = false;
+
+ public boolean isCollapsed() {
+ return collapsed;
+ }
+
+ public void setCollapsed(boolean collapsed) {
+ this.collapsed = collapsed;
+ }
+
+ public void show() {
+ collapsed = false;
+ }
+
+ public void hide() {
+ collapsed = true;
+ }
+}
Added: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePanelController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePanelController.java?rev=1753530&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePanelController.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePanelController.java Wed Jul 20 14:58:16 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.example.demo;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@SessionScoped
+@Named
+public class CollapsiblePanelController implements Serializable {
+
+ private boolean panelCollapsed = false;
+
+ public boolean isPanelCollapsed() {
+ return panelCollapsed;
+ }
+
+ public void setPanelCollapsed(boolean panelCollapsed) {
+ this.panelCollapsed = panelCollapsed;
+ }
+
+ public void showPanel() {
+ panelCollapsed = false;
+ }
+
+ public void hidePanel() {
+ panelCollapsed = true;
+ }
+}
Added: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePopupController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePopupController.java?rev=1753530&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePopupController.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsiblePopupController.java Wed Jul 20 14:58:16 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.example.demo;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@SessionScoped
+@Named
+public class CollapsiblePopupController implements Serializable {
+
+ private boolean collapsed = true;
+
+ public boolean isCollapsed() {
+ return collapsed;
+ }
+
+ public void setCollapsed(boolean collapsed) {
+ this.collapsed = collapsed;
+ }
+
+ public void open() {
+ collapsed = false;
+ }
+
+ public void close() {
+ collapsed = true;
+ }
+}
Added: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleSectionController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleSectionController.java?rev=1753530&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleSectionController.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleSectionController.java Wed Jul 20 14:58:16 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.example.demo;
+
+import javax.enterprise.context.SessionScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@SessionScoped
+@Named
+public class CollapsibleSectionController implements Serializable {
+
+ private boolean collapsed = false;
+
+ public boolean isCollapsed() {
+ return collapsed;
+ }
+
+ public void setCollapsed(boolean collapsed) {
+ this.collapsed = collapsed;
+ }
+
+ public void show() {
+ collapsed = false;
+ }
+
+ public void hide() {
+ collapsed = true;
+ }
+}
Added: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ExceptionController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ExceptionController.java?rev=1753530&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ExceptionController.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ExceptionController.java Wed Jul 20 14:58:16 2016
@@ -0,0 +1,41 @@
+/*
+ * 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.example.demo;
+
+import javax.enterprise.context.RequestScoped;
+import javax.faces.context.FacesContext;
+import javax.inject.Named;
+import java.io.PrintWriter;
+import java.io.Serializable;
+import java.io.StringWriter;
+
+@RequestScoped
+@Named
+public class ExceptionController implements Serializable {
+
+ public String getStackTrace() {
+ Exception exception = (Exception) FacesContext.getCurrentInstance().getExternalContext()
+ .getRequestMap().get("javax.servlet.error.exception");
+ StringWriter stringWriter = new StringWriter();
+ PrintWriter printWriter = new PrintWriter(stringWriter);
+ exception.printStackTrace(printWriter);
+ return stringWriter.toString();
+ }
+}
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ObjectController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ObjectController.java?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ObjectController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ObjectController.java Wed Jul 20 14:58:16 2016
@@ -27,24 +27,6 @@ import java.io.Serializable;
@Named
public class ObjectController extends SourceFileReader implements Serializable {
- private boolean collapsed;
-
- public ObjectController() {
- collapsed = true;
- }
-
- public boolean isCollapsed() {
- return collapsed;
- }
-
- public void setCollapsed(boolean collapsed) {
- this.collapsed = collapsed;
- }
-
- public void switchCollapsed() {
- collapsed = !collapsed;
- }
-
public String getJavaScriptSource() {
return getSource("object.js");
}
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PopupController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PopupController.java?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PopupController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/PopupController.java Wed Jul 20 14:58:16 2016
@@ -31,17 +31,6 @@ public class PopupController implements
private boolean popup1Collapsed = true;
private String popup1Text;
private String popup2Text;
- private String text;
-
- private boolean popup2 = true;
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
public boolean isPopup1Collapsed() {
return popup1Collapsed;
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml Wed Jul 20 14:58:16 2016
@@ -39,6 +39,14 @@
<tc:progress value="14.9" max="20"/>
</tc:section>
+ <tc:section label="Style">
+ <p>A static progressbar containing a <code class="language-markup"><tc:style width="50%" height="2px"/></code>
+ tag.</p>
+ <tc:progress value="14.9" max="20">
+ <tc:style width="50%" height="2px"/>
+ </tc:progress>
+ </tc:section>
+
<tc:section label="Button">
<p>By pressing the button, progress is added to the progressbar.</p>
<pre><code class="language-markup"><tc:button label="Add Progress" action="\#{progressController.addProgress}"/>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/60-object/object.xhtml Wed Jul 20 14:58:16 2016
@@ -20,14 +20,16 @@
<ui:composition template="/main.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
- xmlns:ui="http://java.sun.com/jsf/facelets">
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core">
<ui:param name="title" value="#{overviewBundle.object} <tc:object>"/>
<tc:script file="content/20-component/020-output/60-object/object.js"/>
<p>The <code class="language-markup"><tc:object/></code> tag create an iframe.
External objects can be included, when Content Security Policy is activated.
You may add a frame-src policy to the 'tobago-config.xml'.</p>
- <tc:link label="Tag Library Documentation" image="image/feather-leaf.png" link="#{overviewBundle.tagDocUrl}/object.html"/>
+ <tc:link label="Tag Library Documentation" image="image/feather-leaf.png"
+ link="#{overviewBundle.tagDocUrl}/object.html"/>
<tc:section label="Basics">
<pre><code class="language-markup"><tc:object src="https://www.google.com/maps/..."/></code></pre>
<tc:object id="o1"
@@ -53,18 +55,27 @@
<tc:dataAttribute name="maps-zoom" value="12"/>
<tc:dataAttribute name="maps-target" value="page:map"/>
</tc:button></code></pre>
- <tc:button label="show/hide" action="#{objectController.switchCollapsed}"/>
- <tc:box label="object.js" collapsed="#{objectController.collapsed}">
+ <tc:box id="objectJsBox" label="object.js" collapsed="true" collapsedMode="hidden">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button label="show" omit="true">
+ <tc:operation name="show" for="objectJsBox"/>
+ </tc:button>
+ <tc:button label="hide" omit="true">
+ <tc:operation name="hide" for="objectJsBox"/>
+ </tc:button>
+ </tc:buttons>
+ </f:facet>
<pre><code class="language-javascript"><tc:out value="#{objectController.javaScriptSource}"/></code></pre>
</tc:box>
<tc:buttons id="t1">
<tc:button id="c1" label="Show Tobago" omit="true">
<tc:dataAttribute name="maps-position" value="11.249123,-60.687103"/>
<tc:dataAttribute name="maps-zoom" value="12"/>
- <tc:dataAttribute name="maps-target" value="page:map"/>
+ <tc:dataAttribute name="maps-target" value="page:mainForm:map"/>
</tc:button>
<tc:button id="c2" label="Show World" omit="true">
- <tc:dataAttribute name="maps-target" value="page:map"/>
+ <tc:dataAttribute name="maps-target" value="page:mainForm:map"/>
</tc:button>
</tc:buttons>
<tc:object id="map">
@@ -72,3 +83,4 @@
</tc:object>
</tc:section>
</ui:composition>
+
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-commands/commands.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-commands/commands.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-commands/commands.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-commands/commands.xhtml Wed Jul 20 14:58:16 2016
@@ -20,7 +20,7 @@
<ui:composition template="/main.xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://java.sun.com/jsf/facelets">
- <ui:param name="title" value="#{overviewBundle.commands} <tc:buttons>"/>
+ <ui:param name="title" value="#{overviewBundle.commands} <tc:commands>"/>
<p>Links/Commands can be grouped with the <code class="language-markup"><tc:commands/></code> tag.
Just add some <code class="language-markup"><tc:link/></code> or
<code class="language-markup"><tc:commands/></code> tags.</p>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/command.xhtml Wed Jul 20 14:58:16 2016
@@ -18,64 +18,43 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core">
-
- <ui:param name="title" value="TODO"/>
-
- <hr/>
- bar
- <hr/>
-
- <tc:bar>
- <f:facet name="brand">
- <tc:link image="image/feather-leaf.png" label="Tobago Demo"/>
- </f:facet>
-
-
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+ <ui:param name="title" value="#{overviewBundle.command}"/>
+ <p>Commands are ways to execute actions after clicked by a user.</p>
+
+ <tc:section label="Link">
+ <pre><code class="language-markup"><tc:link label="Apache Website" link="https://www.apache.org"/></code></pre>
+ <tc:link label="Apache Website" link="https://www.apache.org"/>
+ </tc:section>
+
+ <tc:section label="Button">
+ <pre><code class="language-markup"><tc:button label="Submit"/></code></pre>
+ <tc:button label="Submit"/>
+ </tc:section>
+
+ <tc:section label="#{overviewBundle.buttons}">
+ <pre><code class="language-markup"><tc:buttons>
+ <tc:button label="Left" omit="true"/>
+ <tc:button label="Center" omit="true"/>
+ <tc:button label="Right" omit="true"/>
+</tc:buttons></code></pre>
+ <tc:buttons>
+ <tc:button label="Left" omit="true"/>
+ <tc:button label="Center" omit="true"/>
+ <tc:button label="Right" omit="true"/>
+ </tc:buttons>
+ </tc:section>
+
+ <tc:section label="#{overviewBundle.commands}">
+ <pre><code class="language-markup"><tc:commands>
+ <tc:link label="Apache Website" link="https://www.apache.org"/>
+ <tc:link label="Wikipedia" link="https://en.wikipedia.org/wiki/Apache_Software_Foundation"/>
+</tc:commands></code></pre>
<tc:commands>
- <tc:buttons>
- <tc:button image="fa-universal-access" label="Hallo 2"/>
- <tc:button image="fa-hand-paper-o" label="Hallo"/>
- </tc:buttons>
- <tc:button image="fa-hourglass" label="Hallo"/>
+ <tc:link label="Apache Website" link="https://www.apache.org"/>
+ <tc:link label="Wikipedia" link="https://en.wikipedia.org/wiki/Apache_Software_Foundation"/>
</tc:commands>
-
- <tc:flowLayout textAlign="right">
- <tc:in label="Search"/>
- </tc:flowLayout>
- </tc:bar>
-
- <hr/>
- other
- <hr/>
-
- <tc:link image="fa-hourglass" label="Hallo 3" omit="true">
- <tc:link image="fa-universal-access" label="Hallo"/>
- <tc:link image="fa-hand-paper-o" label="Hallo"/>
- </tc:link>
-
- <tc:buttons>
- <tc:button id="b1" image="fa-hourglass" label="Hallo 4" omit="true">
- <tc:link image="fa-universal-access" label="Hallo 4a"/>
- <tc:link image="fa-hand-paper-o" label="Hallo 4b"/>
- </tc:button>
-
- <tc:button id="b2" image="fa-hourglass" label="Hallo 5" omit="true">
- <tc:link image="fa-universal-access" label="Hallo 5a"/>
- <tc:link image="fa-hand-paper-o" label="Hallo 5b"/>
- </tc:button>
- </tc:buttons>
-
- <tc:button label="Theme" omit="true">
- <tc:selectOneRadio value="#{clientConfigController.theme}">
- <f:facet name="change">
- <tc:command action="#{clientConfigController.submit}"/>
- </f:facet>
- <tc:selectItems value="#{clientConfigController.themeItems}"/>
- </tc:selectOneRadio>
- </tc:button>
-
-
+ </tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml Wed Jul 20 14:58:16 2016
@@ -57,5 +57,9 @@
<tc:section label="Pie-Chart" image="fa-pie-chart">
<p>It's also possible to use image files, instead of font awesome.</p>
</tc:section>
+ <tc:section label="Real Image" image="image/alps.png">
+ <p>It's also possible to use image files, instead of font awesome.</p>
+ <tc:image value="image/alps.png"/>
+ </tc:section>
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml Wed Jul 20 14:58:16 2016
@@ -36,100 +36,108 @@
link="#{overviewBundle.tagDocUrl}/operation.html"/></p>
<tc:section label="Simple Popup">
- <p>A simple popup realised with a controller. The open button calls the <code>openPopup1</code> action.</p>
- <tc:button label="Open" action="#{popupController.openPopup1}"/>
- <tc:out label="Text from Popup" value="#{popupController.popup1Text}"/>
- <tc:popup id="popup1" collapsed="#{popupController.popup1Collapsed}">
- <tc:box label="Simple Popup">
- <p>This is a popup dialog with an inputfield.</p>
-
- <p><b>Submit</b><br/>
- <code class="language-markup"><tc:button label="Submit"/></code>
- <br/>The 'Submit'-button submit the value in the inputfield.</p>
-
- <p><b>Submit & Close</b><br/>
- <code class="language-markup"><tc:button label="Submit & Close" action="\#{popupController.closePopup1}"/></code>
- <br/>The 'Submit & Close'-button submit the value in the inputfield and
- call the close-method in the controller.</p>
-
- <p><b>Cancel</b><br/>
- <code class="language-markup"><tc:button label="Cancel" immediate="true"
- action="\#{popupController.closePopup1}"/></code>
- <br/>The 'Cancel'-button calls the close-method in the controller and
- has <code>immediate="true"</code>, so no submit is executed.</p>
-
- <tc:in label="Required Field" required="true" value="#{popupController.popup1Text}"/>
- <tc:buttons>
- <tc:button label="Submit"/>
- <tc:button label="Submit & Close" action="#{popupController.closePopup1}"/>
- <tc:button label="Cancel" immediate="true" action="#{popupController.closePopup1}"/>
- </tc:buttons>
- </tc:box>
- </tc:popup>
+ <tc:form id="form1">
+ <p>A simple popup realised with a controller. The open button calls the <code>openPopup1</code> action.</p>
+ <tc:button id="openPopup" label="Open" action="#{popupController.openPopup1}"/>
+ <tc:out id="output" label="Text from Popup" value="#{popupController.popup1Text}"/>
+ <tc:popup id="popup" collapsed="#{popupController.popup1Collapsed}">
+ <tc:box label="Simple Popup">
+ <p>This is a popup dialog with an inputfield.</p>
+
+ <p><b>Submit</b><br/>
+ <code class="language-markup"><tc:button label="Submit"/></code>
+ <br/>The 'Submit'-button submit the value in the inputfield.</p>
+
+ <p><b>Submit & Close</b><br/>
+ <code class="language-markup"><tc:button label="Submit & Close" action="\#{popupController.closePopup1}"/></code>
+ <br/>The 'Submit & Close'-button submit the value in the inputfield and
+ call the close-method in the controller.</p>
+
+ <p><b>Cancel</b><br/>
+ <code class="language-markup"><tc:button label="Cancel" immediate="true"
+ action="\#{popupController.closePopup1}"/></code>
+ <br/>The 'Cancel'-button calls the close-method in the controller and
+ has <code>immediate="true"</code>, so no submit is executed.</p>
+
+ <tc:in id="in" label="Required Field" required="true" value="#{popupController.popup1Text}"/>
+ <tc:buttons>
+ <tc:button id="submit" label="Submit"/>
+ <tc:button id="submitClose" label="Submit & Close" action="#{popupController.closePopup1}"/>
+ <tc:button id="cancel" label="Cancel" immediate="true" action="#{popupController.closePopup1}"/>
+ </tc:buttons>
+ </tc:box>
+ </tc:popup>
+ </tc:form>
</tc:section>
<tc:section label="Client Sided Popup">
- <p>To create a client sided popup you have to know about <code>collapsedMode</code>.
- The mode indicated whether a collapsed popup should be rendered.
- If <code>collapsedMode="absent"</code>, which is default, a hidden popup dialog will no be rendered.
- If <code>collapsedMode="hidden"</code>, a hidden popup dialog will be rendered ob the page, but hidden by CSS.</p>
- <p>Be careful with validations. For example, hidden required inputfields will be validated after submit.</p>
- <p>So to create the popup, use
- <code class="language-markup"><tc:popup collapsed="true" collapsedMode="hidden"></code>.
- This is because the popup should not be opened after reloading the page
- and the hidden popup must be already rendered, so the client don't have to send any requests to the server.</p>
- <p>Client sided opening and closing can be done with the
- <code class="language-markup"><tc:operation name="show|hide" for="[ID]"/></code> tag.
- The attribute <code>name</code> must be set and can have the value 'show' and 'hide'
- which is to show and hide the popup, obviously.
- The other mandatory attribute is the <code>for</code> attribute.
- It contain the ID of the popup on which the transition should be executed.</p>
-
- <tc:button label="Open" omit="true">
- <tc:operation name="show" for="clientPopup"/>
- </tc:button>
- <tc:out id="out" label="Text from Popup" value="#{popupController.popup2Text}"/>
-
- <tc:popup id="clientPopup" collapsed="true" collapsedMode="hidden">
- <tc:box label="Client Sided Popup">
- <tc:panel id="clientPopupMessages">
- <tc:messages/>
- </tc:panel>
- <p>This is a popup dialog with an inputfield.</p>
+ <tc:form id="form2">
+ <p>To create a client sided popup you have to know about <code>collapsedMode</code>.
+ The mode indicated whether a collapsed popup should be rendered.
+ If <code>collapsedMode="absent"</code>, which is default, a hidden popup dialog will no be rendered.
+ If <code>collapsedMode="hidden"</code>, a hidden popup dialog will be rendered ob the page, but hidden by CSS.
+ </p>
+ <p>Be careful with validations. For example, hidden required inputfields will be validated after submit.</p>
+ <p>So to create the popup, use
+ <code class="language-markup"><tc:popup collapsed="true" collapsedMode="hidden"></code>.
+ This is because the popup should not be opened after reloading the page
+ and the hidden popup must be already rendered, so the client don't have to send any requests to the server.</p>
+ <p>Client sided opening and closing can be done with the
+ <code class="language-markup"><tc:operation name="show|hide" for="[ID]"/></code> tag.
+ The attribute <code>name</code> must be set and can have the value 'show' and 'hide'
+ which is to show and hide the popup, obviously.
+ The other mandatory attribute is the <code>for</code> attribute.
+ It contain the ID of the popup on which the transition should be executed.</p>
- <b>Submit</b>
- <pre><code class="language-markup"><tc:button label="Submit">
+ <pre><code class="language-markup"><tc:button label="Open" omit="true">
+ <tc:operation name="show" for="clientPopup"/>
+</tc:button></code></pre>
+ <tc:button id="open" label="Open" omit="true">
+ <tc:operation name="show" for="clientPopup"/>
+ </tc:button>
+ <tc:out id="out" label="Text from Popup" value="#{popupController.popup2Text}"/>
+
+ <tc:popup id="clientPopup" collapsed="true" collapsedMode="hidden">
+ <tc:box label="Client Sided Popup">
+ <tc:panel id="clientPopupMessages">
+ <tc:messages id="messages"/>
+ </tc:panel>
+ <p>This is a popup dialog with an inputfield.</p>
+
+ <b>Submit</b>
+ <pre><code class="language-markup"><tc:button label="Submit">
<f:ajax execute="in" render="in :::out clientPopupMessages"/>
</tc:button></code></pre>
- <p>The 'Submit'-button send an ajax request to submit the value in the inputfield.
- </p>
+ <p>The 'Submit'-button send an ajax request to submit the value in the inputfield.
+ </p>
- <b>Submit & Close</b>
- <pre><code class="language-markup"><tc:button label="Submit & Close">
+ <b>Submit & Close</b>
+ <pre><code class="language-markup"><tc:button label="Submit & Close">
<tc:operation name="hide" for="clientPopup"/>
</tc:button></code></pre>
- <p>The 'Submit & Close'-button execute a submit and run the operation 'hide' to close the popup.</p>
+ <p>The 'Submit & Close'-button execute a submit and run the operation 'hide' to close the popup.</p>
- <b>Cancel</b>
- <pre><code class="language-markup"><tc:button label="Cancel" omit="true">
+ <b>Cancel</b>
+ <pre><code class="language-markup"><tc:button label="Cancel" omit="true">
<tc:operation name="hide" for="clientPopup"/>
</tc:button></code></pre>
- <p>The 'Cancel'-button execute a 'hide'-operation to close the popup.
- Also the attribute <code>omit="true"</code> is set to prevent submit.</p>
+ <p>The 'Cancel'-button execute a 'hide'-operation to close the popup.
+ Also the attribute <code>omit="true"</code> is set to prevent submit.</p>
- <tc:in id="in" label="Required Field" required="true" value="#{popupController.popup2Text}"/>
- <tc:buttons>
- <tc:button label="Submit">
- <f:ajax execute="in" render="in :::out clientPopupMessages"/>
- </tc:button>
- <tc:button label="Submit & Close">
- <tc:operation name="hide" for="clientPopup"/>
- </tc:button>
- <tc:button label="Cancel" omit="true">
- <tc:operation name="hide" for="clientPopup"/>
- </tc:button>
- </tc:buttons>
- </tc:box>
- </tc:popup>
+ <tc:in id="in" label="Required Field" required="true" value="#{popupController.popup2Text}"/>
+ <tc:buttons>
+ <tc:button id="submit" label="Submit">
+ <f:ajax execute="in" render="in :::out clientPopupMessages"/>
+ </tc:button>
+ <tc:button id="submitClose" label="Submit & Close">
+ <tc:operation name="hide" for="clientPopup"/>
+ </tc:button>
+ <tc:button id="cancel" label="Cancel" omit="true">
+ <tc:operation name="hide" for="clientPopup"/>
+ </tc:button>
+ </tc:buttons>
+ </tc:box>
+ </tc:popup>
+ </tc:form>
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml Wed Jul 20 14:58:16 2016
@@ -53,21 +53,24 @@
<tc:section label="Header">
<p>This example show the different headers if the <code>label</code> or the <code>image</code> is used.</p>
- <tc:tabGroup id="tg2" switchType="reloadTab">
- <tc:tab id="t21" label="Only label">
+ <tc:tabGroup id="tabGroupHead" switchType="reloadTab">
+ <tc:tab id="tabHead1" label="Only label">
<p>Only a label is set.</p>
- <pre><code class="language-markup"><tc:tab label="Only label"/></code></pre>
+ <pre><code id="tabHead1Code" class="language-markup"><tc:tab label="Only label"/></code></pre>
+ <f:verbatim><script type="text/javascript">Prism.highlightElement($('#tabHead1Code')[0]);</script></f:verbatim>
</tc:tab>
- <tc:tab id="t22" label="Label with image" image="image/feather-leaf.png">
+ <tc:tab id="tabHead2" label="Label with image" image="image/feather-leaf.png">
<p>A label and an image are set.</p>
- <pre><code
+ <pre><code id="tabHead2Code"
class="language-markup"><tc:tab label="Label with image" image="image/feather-leaf.png"></code></pre>
+ <f:verbatim><script type="text/javascript">Prism.highlightElement($('#tabHead2Code')[0]);</script></f:verbatim>
</tc:tab>
- <tc:tab id="t23" image="image/feather-leaf.png">
+ <tc:tab id="tabHead3" image="image/feather-leaf.png">
<p>Only an image is set.</p>
- <pre><code class="language-markup"><tc:tab image="image/feather-leaf.png"></code></pre>
+ <pre><code id="tabHead3Code" class="language-markup"><tc:tab image="image/feather-leaf.png"></code></pre>
+ <f:verbatim><script type="text/javascript">Prism.highlightElement($('#tabHead3Code')[0]);</script></f:verbatim>
</tc:tab>
- <tc:tab id="t24">
+ <tc:tab id="tabHead4">
<p>Neither a label or an image are set. In this case the header gets a label with the indexnumber of the tab in
the tabgroup.</p>
</tc:tab>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml Wed Jul 20 14:58:16 2016
@@ -37,9 +37,9 @@
<p>A simple way of validation is the <code>required</code> attribute in some input components.
The text area must not empty if the submit button is pressed. Otherwise a error message is displayed.</p>
<pre><code class="language-markup"><tc:textarea label="Text Area" required="true"/></code></pre>
- <tc:form>
- <tc:textarea id="t1" label="Text Area" required="true"/>
- <tc:button label="Submit"/>
+ <tc:form id="required">
+ <tc:textarea id="textarea" label="Text Area" required="true"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
@@ -47,14 +47,15 @@
<p>The length of a value can be validated by the <code class="language-markup"><f:validateLength/></code> tag.
Length means the number of characters.
In this example, the given string must have at least two characters and maximal four characters.</p>
+ <p>Please note, an empty string will not be validated.</p>
<pre><code class="language-markup"><tc:in label="Input">
<f:validateLength minimum="2" maximum="4"/>
</tc:in></code></pre>
- <tc:form>
- <tc:in id="i1" label="Text">
+ <tc:form id="validateLength">
+ <tc:in id="in" label="Text">
<f:validateLength minimum="2" maximum="4"/>
</tc:in>
- <tc:button label="Submit"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
@@ -65,11 +66,11 @@
<pre><code class="language-markup"><tc:in label="Number" markup="number">
<f:validateLongRange minimum="3" maximum="77"/>
</tc:in></code></pre>
- <tc:form>
- <tc:in id="i2" label="Number" markup="number">
+ <tc:form id="validateRange">
+ <tc:in id="in" label="Number" markup="number">
<f:validateLongRange minimum="3" maximum="77"/>
</tc:in>
- <tc:button label="Submit"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
@@ -79,21 +80,21 @@
<pre><code class="language-markup"><tc:in label="Letter & Number" >
<f:validateRegex pattern="[A-Za-z][0-9]"/>
</tc:in></code></pre>
- <tc:form>
+ <tc:form id="regexValidation">
<p>The value in the field must be a word character combined with a number. For example 'T3'.</p>
- <tc:in id="i3" label="Letter & Number">
+ <tc:in id="in" label="Letter & Number">
<f:validateRegex pattern="[A-Za-z][0-9]"/>
</tc:in>
- <tc:button label="Submit"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
<tc:section label="Custom Validator">
<p>It's also possible to add custom validators using the <code>validator</code> attribute of an input component.
- In this case, only the string 'Tobago' is accepted.</p>
- <tc:form>
- <tc:in id="i4" label="Text" validator="#{validationController.customValidator}"/>
- <tc:button label="Submit"/>
+ In this case, only the string 'Tobago' (uppercase/lowercase ignored) is accepted.</p>
+ <tc:form id="customValidator">
+ <tc:in id="in" label="Text" validator="#{validationController.customValidator}"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/validation-jsr303.xhtml Wed Jul 20 14:58:16 2016
@@ -18,9 +18,9 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core">
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:param name="title" value="#{overviewBundle.validation_jsr303}"/>
<p>Tobago has JSR 303 Validation support.
With it, you can describe the validation in an annotation in the controller.</p>
@@ -31,20 +31,21 @@
<pre><code class="language-markup"><tc:in label="Input" value="\#{validationJsr303Controller.required}"/></code></pre>
<pre><code class="language-java">@NotNull
private String required;</code></pre>
- <tc:form>
- <tc:in label="Input (required)" value="#{validationJsr303Controller.required}"/>
- <tc:button label="Submit"/>
+ <tc:form id="required">
+ <tc:in id="in" label="Input (required)" value="#{validationJsr303Controller.required}"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
<tc:section label="Length">
<p>The length of the given string must be between 2 and 4 characters.</p>
- <pre><code class="language-markup"><tc:in label="Input" value="\#{validationJsr303Controller.length}"/></code></pre>
+ <pre><code
+ class="language-markup"><tc:in label="Input" value="\#{validationJsr303Controller.length}"/></code></pre>
<pre><code class="language-java">@Size(min = 2, max = 4, message = "Length must be between 2 and 4")
private String length;</code></pre>
- <tc:form>
- <tc:in label="2 to 4 Character" value="#{validationJsr303Controller.length}"/>
- <tc:button label="Submit"/>
+ <tc:form id="length">
+ <tc:in id="in" label="2 to 4 Character" value="#{validationJsr303Controller.length}"/>
+ <tc:button id="submit" label="Submit"/>
</tc:form>
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml Wed Jul 20 14:58:16 2016
@@ -18,6 +18,7 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:param name="title" value="#{overviewBundle.flex_layout} <tc:flexLayout>"/>
@@ -75,5 +76,22 @@
<tc:button label="Button"/>
<tc:button label="Button"/>
</tc:flexLayout>
+ </tc:section>
+
+ <tc:section label="Cascade">
+ <p>You can also put a flex layout within a flex layout. In this case the second row is another flex layout.</p>
+ <tc:flexLayout rows="100px;auto;80px;1*">
+ <tc:style height="400px"/>
+ <tc:button label="Button"/>
+ <tc:flexLayout columns="200px;auto;1*;2*;1*">
+ <tc:button label="Button"/>
+ <tc:button label="Button"/>
+ <tc:button label="Button"/>
+ <tc:button label="Button"/>
+ <tc:button label="Button"/>
+ </tc:flexLayout>
+ <tc:button label="Button"/>
+ <tc:button label="Button"/>
+ </tc:flexLayout>
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/50-grid/grid-layout.xhtml Wed Jul 20 14:58:16 2016
@@ -18,84 +18,13 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core">
+ xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:param name="title" value="#{overviewBundle.grid_layout} (deprecated)"/>
- <p>The GridLayout is deprecated. Instead you should use FlexLayout or SegmentLayout.
- In the first section on this page, there is a typical GridLayout example.
- The second section show how it's done with FlexLayout.</p>
- <p>Tag Library Documentation:
- <tc:link label="<tc:gridLayout/>" image="image/feather-leaf.png"
- link="#{overviewBundle.tagDocUrl}/gridLayout.html"/>
- |
- <tc:link label="<tc:flexLayout/>" image="image/feather-leaf.png"
- link="#{overviewBundle.tagDocUrl}/flexLayout.html"/>
- |
- <tc:link label="<tc:segmentLayout/>" image="image/feather-leaf.png"
- link="#{overviewBundle.tagDocUrl}/segmentLayout.html"/></p>
-
- <tc:section label="GridLayout">
- <tc:box label="Personal Information">
- <f:facet name="layout">
- <tc:gridLayout columns="*;*" rows="auto;auto;auto;auto;auto;*"/>
- </f:facet>
- <tc:selectOneChoice label="Salutation">
- <f:selectItem itemLabel="none"/>
- <f:selectItem itemLabel="Mr."/>
- <f:selectItem itemLabel="Mrs."/>
- </tc:selectOneChoice>
- <tc:panel/>
-
- <tc:in label="First Name"/>
- <tc:in label="Last Name"/>
-
- <tc:in label="c/o">
- <tc:gridLayoutConstraint columnSpan="2"/>
- </tc:in>
-
- <tc:in label="Street"/>
- <tc:in label="No"/>
-
- <tc:in label="ZIP"/>
- <tc:in label="City"/>
-
- <tc:textarea label="Note">
- <tc:gridLayoutConstraint columnSpan="2"/>
- </tc:textarea>
- </tc:box>
- </tc:section>
-
- <tc:section label="FlexLayout">
- <tc:box label="Personal Information">
- <tc:flexLayout rows="1;*">
- <tc:flexLayout columns="auto">
- <tc:selectOneChoice label="Salutation">
- <f:selectItem itemLabel="none"/>
- <f:selectItem itemLabel="Mr."/>
- <f:selectItem itemLabel="Mrs."/>
- </tc:selectOneChoice>
- </tc:flexLayout>
-
- <tc:flexLayout columns="1;1">
- <tc:in label="First Name"/>
- <tc:in label="Last Name"/>
- </tc:flexLayout>
-
- <tc:in label="c/o"/>
-
- <tc:flexLayout columns="1;1">
- <tc:in label="Street"/>
- <tc:in label="No"/>
- </tc:flexLayout>
-
- <tc:flexLayout columns="1;1">
- <tc:in label="ZIP"/>
- <tc:in label="City"/>
- </tc:flexLayout>
-
- <tc:textarea label="Note"/>
- </tc:flexLayout>
- </tc:box>
- </tc:section>
+ <p>The GridLayout is deprecated. Take a look at
+ <tc:link label="#{overviewBundle.grid_layout}"
+ link="/faces/content/35-deprecated/70-grid-layout/grid-layout.xhtml"/>
+ in the #{overviewBundle.deprecated} section.
+ </p>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/51-for-each/for-each.xhtml Wed Jul 20 14:58:16 2016
@@ -37,18 +37,18 @@
<tc:section label="New River">
<p>You can add a new river to the list
or reset the list to the default value of 'Nile', 'Amazon' and 'Yangtze'.</p>
- <tc:form>
- <tc:in label="Name" value="#{forEachController.name}" required="true"/>
- <tc:in label="Length (km)" value="#{forEachController.length}" required="true" markup="number"/>
- <tc:in label="Discharge (m³/s)" value="#{forEachController.discharge}" required="true"/>
- <tc:button label="Add" action="#{forEachController.addNewRiver}" defaultCommand="true"/>
+ <tc:form id="add">
+ <tc:in id="inName" label="Name" value="#{forEachController.name}" required="true"/>
+ <tc:in id="inLength" label="Length (km)" value="#{forEachController.length}" required="true" markup="number"/>
+ <tc:in id="inDischarge" label="Discharge (m³/s)" value="#{forEachController.discharge}" required="true"/>
+ <tc:button id="button" label="Add" action="#{forEachController.addNewRiver}" defaultCommand="true"/>
</tc:form>
- <tc:form>
- <tc:button label="Reset" action="#{forEachController.reset}"/>
+ <tc:form id="reset">
+ <tc:button id="button" label="Reset" action="#{forEachController.reset}"/>
</tc:form>
</tc:section>
- <tc:section label="For Each">
+ <tc:section id="forEach" label="For Each">
<p>The rivers are displayed as <code class="language-markup"><tc:box/></code>
tags withing a <code class="language-markup"><tc:segmentLayout/></code>.</p>
<pre><code class="language-markup"><tc:segmentLayout medium="6;6">
@@ -65,7 +65,7 @@
</tc:segmentLayout>
</tc:section>
- <tc:section label="UI:Repeat">
+ <tc:section id="uiRepeat" label="UI:Repeat">
<p>In this example, the each data of a river is put in a <code class="language-markup"><tc:section/></code></p>
<pre><code class="language-markup"><ui:repeat value="\#{forEachController.rivers}" var="river">
<tc:section label="\#{river.name}">
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/collapsible-box.xhtml Wed Jul 20 14:58:16 2016
@@ -18,88 +18,132 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
- <ui:param name="title" value="Container"/>
-
- <tc:section label="Collapsible box without server request" id="section1">
-
- Here we have the transitions <code>show</code> and <code>hide</code> and there is no server request needed.
- The buttons have set <code>omit="true"</code>.
-
- <tc:box label="Collapsible box (Client only)" id="box1">
- <f:facet name="bar">
- <tc:buttons>
- <tc:button label="show" omit="true" id="show1">
- <tc:operation name="show" for="box1"/>
- </tc:button>
- <tc:button label="hide" omit="true" id="hide1">
- <tc:operation name="hide" for="box1"/>
- </tc:button>
- </tc:buttons>
- </f:facet>
- <tc:panel>
- Hallo, collapsible box.
- <tc:in required="true" label="Required"/>
- </tc:panel>
- </tc:box>
-
+ <ui:param name="title" value="#{overviewBundle.collapsible_box} <tc:box>"/>
+ <p>On this page the collapsible concept is explained for a
+ <tc:link label="#{overviewBundle.box}" link="/faces/content/20-component/050-container/10-box/box.xhtml"/>.</p>
+
+ <tc:section label="Simple Collapsible Box">
+ <tc:form id="controller">
+ <p>This is a simple collapsible box which open and close the content via a controller.</p>
+ <pre><code class="language-markup"><tc:button label="show" immediate="true"
+ action="\#{collapsibleBoxController.showCollapsed1}"/></code></pre>
+ <tc:box label="Box" collapsed="#{collapsibleBoxController.collapsed}" collapsedMode="absent">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button id="show" label="show" immediate="true" action="#{collapsibleBoxController.show}"/>
+ <tc:button id="hide" label="hide" immediate="true" action="#{collapsibleBoxController.hide}"/>
+ </tc:buttons>
+ </f:facet>
+ <tc:out id="content" value="Content"/>
+ </tc:box>
+ </tc:form>
</tc:section>
- <tc:section label="Collapsible section with AJAX server request" id="section2">
-
- Here we have the transitions <code>show</code> and <code>hide</code> with AJAX request.
- The buttons have set <code>omit="false"</code> which is the default.
-
- <tc:box label="Collapsible box (AJAX)" id="box2">
- <f:facet name="bar">
- <tc:buttons>
- <tc:button label="show" id="show2">
- <f:ajax execute="box2" render="box2"/>
- <tc:operation name="show" for="box2"/>
- </tc:button>
- <tc:button label="hide" id="hide2">
- <f:ajax execute="box2" render="box2"/>
- <tc:operation name="hide" for="box2"/>
- </tc:button>
- </tc:buttons>
- </f:facet>
- <tc:panel>
- Hallo, collapsible box.
- <tc:in required="true" label="Required"/>
- </tc:panel>
- </tc:box>
+ <tc:section label="Full Server Request">
+ <tc:form id="server">
+ <p>In this example, the operaction tag is used to change the state of the boxes.</p>
+ <pre><code class="language-markup"><tc:box id="box1" label="Full Request Box 1">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button label="show">
+ <tc:operation name="show" for="box1"/>
+ ...</code></pre>
+ <tc:box id="box1" label="Full Request Box 1">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button id="show1" label="show">
+ <tc:operation name="show" for="box1"/>
+ </tc:button>
+ <tc:button id="hide1" label="hide">
+ <tc:operation name="hide" for="box1"/>
+ </tc:button>
+ </tc:buttons>
+ </f:facet>
+ <tc:out id="content1" value="Content"/>
+ </tc:box>
+ <tc:box id="box2" label="Full Request Box 2">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button id="show2" label="show">
+ <tc:operation name="show" for="box2"/>
+ </tc:button>
+ <tc:button id="hide2" label="hide">
+ <tc:operation name="hide" for="box2"/>
+ </tc:button>
+ </tc:buttons>
+ </f:facet>
+ <tc:out id="content2" value="Content"/>
+ </tc:box>
+ </tc:form>
</tc:section>
- <tc:section label="Collapsible section with full server request" id="section3">
-
- Here we have the transitions <code>show</code> and <code>hide</code> with normal server request.
- The buttons have set <code>omit="false"</code> which is the default.
-
- <tc:box label="Collapsible box (full request)" id="box3">
- <f:facet name="bar">
- <tc:buttons>
- <tc:button label="show" id="show3">
- <tc:operation name="show" for="box3"/>
- </tc:button>
- <tc:button label="hide" id="hide3">
- <tc:operation name="hide" for="box3"/>
- </tc:button>
- </tc:buttons>
- </f:facet>
- <tc:panel>
- Hallo, collapsible box.
- <tc:in required="true" label="Required"/>
- </tc:panel>
- </tc:box>
-
+ <tc:section label="Client Sided">
+ <tc:form id="client">
+ <p>This example show a content box which could be opened and closed without a server request.<br/>
+ To render the hidden content of the box, <code>collapsedMode="hidden"</code> must be set.
+ The content is hidden by CSS display property.</p>
+ <p>Also the content contain a required inputfield.
+ This field will be also validated if the content is hidden.<br/>
+ To demonstrate that, leave the inputfield blank, hide the content and press the 'Submit'-button.</p>
+ <p>Notice the <code>omit</code> attribute of the buttons is set to avoid server request.</p>
+ <pre><code class="language-markup"><tc:box id="noRequestBox" label="No Request Box"
+ collapsed="true" collapsedMode="hidden">
+ <tc:button label="show" omit="true">
+ <tc:operation name="show" for="noRequestBox"/>
+ ...</code></pre>
+ <tc:box id="noRequestBox" label="No Request Box" collapsed="true" collapsedMode="hidden">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button id="show" label="show" omit="true">
+ <tc:operation name="show" for="noRequestBox"/>
+ </tc:button>
+ <tc:button id="hide" label="hide" omit="true">
+ <tc:operation name="hide" for="noRequestBox"/>
+ </tc:button>
+ </tc:buttons>
+ </f:facet>
+ <tc:in id="in" label="Required" required="true"/>
+ </tc:box>
+ <tc:button id="submit" label="Submit"/>
+ </tc:form>
</tc:section>
- <tc:out value="Requests: #{activityList.values[0].jsfRequest} / AJAX: #{activityList.values[0].ajaxRequest}"/>
-
- <tc:flowLayout textAlign="right">
- <tc:button label="Submit"/>
- </tc:flowLayout>
-
+ <tc:section label="Ajax">
+ <tc:form id="ajax">
+ <p>Here we have the transitions <code>show</code> and <code>hide</code> with AJAX request.
+ The buttons have set <code>omit="false"</code> which is the default.
+ Also the attribute <code>immediate="true"</code> is set to execute the transition without validation.</p>
+ <p>The mode is set to <code>collapsedMode="absent"</code> (default), so the hidden content won't be rendered
+ and therefor not validated.</p>
+ <p>You can press the 'Submit'-button after hiding the blank inputfield.
+ The submit will be executed without validation.
+ If the content is shown and the field is empty, a violation occurs after hitting 'Submit'.</p>
+ <pre><code class="language-markup"><tc:box id="ajaxBox" label="Collapsible Box (AJAX)" collapsedMode="absent">
+ ...
+ <tc:button label="show" immediate="true">
+ <f:ajax execute="ajaxBox" render="ajaxBox"/>
+ <tc:operation name="show" for="ajaxBox"/>
+ ...</code></pre>
+ <tc:box id="ajaxBox" label="Ajax Box" collapsedMode="absent">
+ <f:facet name="bar">
+ <tc:buttons>
+ <tc:button id="show" label="show" immediate="true">
+ <f:ajax execute="ajaxBox" render="ajaxBox"/>
+ <tc:operation name="show" for="ajaxBox"/>
+ </tc:button>
+ <tc:button id="hide" label="hide" immediate="true">
+ <f:ajax execute="ajaxBox" render="ajaxBox"/>
+ <tc:operation name="hide" for="ajaxBox"/>
+ </tc:button>
+ </tc:buttons>
+ </f:facet>
+ <tc:in id="in" label="Required" required="true"/>
+ </tc:box>
+ <tc:button id="submit" label="Submit"/>
+ </tc:form>
+ </tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/10-collapsible-popup/collapsible-popup.xhtml Wed Jul 20 14:58:16 2016
@@ -18,45 +18,79 @@
-->
<ui:composition template="/main.xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
xmlns:tc="http://myfaces.apache.org/tobago/component"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core">
- <ui:param name="title" value="Popup"/>
-
- <tc:section label="Collapsible Popup">
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+ <ui:param name="title" value="#{overviewBundle.collapsible_popup} <tc:popup>"/>
+ <p>This page contain some examples for the collapsible concept of a popup. Please have a look at the
+ <tc:link label="#{overviewBundle.popup}" link="/faces/content/20-component/060-popup/popup.xhtml"/> page
+ in the components section for more details.</p>
+
+ <tc:section label="Simple Popup">
+ <tc:form id="simple">
+ <p>A popup opened with the help of a controller. The popup contain a required inputfield.
+ The attribute <code>collapsedMode="absent"</code> is set,
+ so the 'Submit'-button outside the popup could be executed while popup is hidden.
+ Even if the required inputfield is empty.</p>
+ <tc:button id="open" label="Open" action="#{collapsiblePopupController.open}"/>
+ <tc:button id="submitOnPage" label="Submit"/>
+ <tc:popup id="controllerPopup" collapsed="#{collapsiblePopupController.collapsed}">
+ <tc:box label="Simple Popup">
+ <tc:in id="in" label="Required" required="true"/>
+ <tc:button id="submitOnPopup" label="Submit"/>
+ <tc:button id="close" label="Close" immediate="true" action="#{collapsiblePopupController.close}"/>
+ </tc:box>
+ </tc:popup>
+ </tc:form>
+ </tc:section>
- <tc:buttons>
- <tc:button label="Open (server site)">
- <tc:operation name="show" for="popup"/>
+ <tc:section label="Full Server Request">
+ <tc:form id="server">
+ <p>Server sided popup with <code class="language-markup"><tc:operation/></code>.
+ The attribute <code>collapsedMode="absent"</code> is set by default.
+ If you press the 'Submit'-button in the popup, the popup remains open,
+ because the server know the current state.</p>
+ <tc:button id="open" label="Open">
+ <tc:operation name="show" for="fullServerRequestPopup"/>
</tc:button>
- </tc:buttons>
-
- <tc:popup id="popup" collapsed="#{collapsibleController.collapsed}">
- <tc:box label="Test for Popup">
- Hallo, collapsible popup.
- <tc:in required="true" label="Required"/>
- <tc:buttons>
- <tc:button label="Close (on client)" omit="true">
- <tc:operation name="hide" for="popup"/>
- </tc:button>
- <tc:button label="Cancel and Close (immediate with action)" immediate="true"
- action="#{collapsibleController.cancel}">
- <tc:operation name="hide" for="popup"/>
- </tc:button>
- <tc:button label="Submit and Close" action="#{collapsibleController.action}">
- <tc:operation name="hide" for="popup"/>
+ <tc:button id="submitOnPage" label="Submit"/>
+ <tc:popup id="fullServerRequestPopup" collapsed="true">
+ <tc:box label="Full Server Request">
+ <tc:in id="in" label="Required" required="true"/>
+ <tc:button id="submitOnPopup" label="Submit"/>
+ <tc:button id="close" label="Close" immediate="true">
+ <tc:operation name="hide" for="fullServerRequestPopup"/>
</tc:button>
- <tc:button label="Submit and Keep Open" action="#{collapsibleController.action}"/>
- </tc:buttons>
- </tc:box>
- </tc:popup>
-
- <tc:out value="Requests: #{activityList.values[0].jsfRequest} / AJAX: #{activityList.values[0].ajaxRequest}"/>
- <!--<tc:out value="#{collapsibleController.collapsed}" label="collapsed"/>-->
-
- <tc:flowLayout textAlign="right">
- <tc:button label="Submit" action="#{collapsibleController.submit}"/>
- </tc:flowLayout>
+ </tc:box>
+ </tc:popup>
+ </tc:form>
</tc:section>
+ <tc:section label="Client Sided">
+ <tc:form id="client">
+ <p>For the client sided popup the attribute <code>collapsedMode="hidden"</code> must be set.
+ So the hidden popup is already rendered on the site. Otherwise a client sided opened popup has no content.</p>
+ <p>This leads to the problem of violations of hidden content.
+ In this case you cannot press the 'Submit'-button if the required field is empty.
+ Even if the popup is hidden.</p>
+ <p>The 'Submit'-button in the popup will close the popup, because the server didn't know the current state.</p>
+ <p>To avoid server request, the attribute <code>omit="true"</code>
+ is added to the 'Open'-button and the 'Close'-button.</p>
+ <tc:button id="open" label="Open" omit="true">
+ <tc:operation name="show" for="clientPopup"/>
+ </tc:button>
+ <tc:button id="submitOnPage" label="Submit"/>
+ <tc:popup id="clientPopup" collapsed="true" collapsedMode="hidden">
+ <tc:box label="Full Server Request">
+ <p>The opening of the popup is client sided.
+ Therefor the popup will be closed after pressing the 'Submit'-button which reload the page.</p>
+ <tc:in id="in" label="Required" required="true"/>
+ <tc:button id="submitOnPopup" label="Submit"/>
+ <tc:button id="close" label="Close" omit="true">
+ <tc:operation name="hide" for="clientPopup"/>
+ </tc:button>
+ </tc:box>
+ </tc:popup>
+ </tc:form>
+ </tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml?rev=1753530&r1=1753529&r2=1753530&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/20-collapsible-panel/collapsible-panel.xhtml Wed Jul 20 14:58:16 2016
@@ -21,77 +21,102 @@
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
- <ui:param name="title" value="Container"/>
-
- <tc:separator label="Collapsible panel without server request"/>
- <tc:buttons>
- <tc:button label="show" omit="true" id="show1">
- <tc:operation name="show" for="panel1"/>
- </tc:button>
- <tc:button label="hide" omit="true" id="hide1">
- <tc:operation name="hide" for="panel1"/>
- </tc:button>
- </tc:buttons>
- <tc:panel id="panel1">
-
- Here we have the transitions <code>show</code> and <code>hide</code> and there is no server request needed.
- The buttons have set <code>omit="true"</code>.
-
- <tc:panel>
- Hallo, collapsible panel.
- <tc:in required="true" label="Required"/>
- </tc:panel>
-
- </tc:panel>
-
- <tc:separator label="Collapsible panel with AJAX server request"/>
- <tc:buttons>
- <tc:button label="show" id="show2">
- <f:ajax execute="panel2" render="panel2"/>
- <tc:operation name="show" for="panel2"/>
- </tc:button>
- <tc:button label="hide" id="hide2">
- <f:ajax execute="panel2" render="panel2"/>
- <tc:operation name="hide" for="panel2"/>
- </tc:button>
- </tc:buttons>
- <tc:panel id="panel2">
-
- Here we have the transitions <code>show</code> and <code>hide</code> with AJAX request.
- The buttons have set <code>omit="false"</code> which is the default.
-
- <tc:panel>
- Hallo, collapsible panel.
- <tc:in required="true" label="Required"/>
- </tc:panel>
-
- </tc:panel>
-
- <tc:separator label="Collapsible panel with full server request"/>
- <tc:buttons>
- <tc:button label="show" id="show3">
- <tc:operation name="show" for="panel3"/>
- </tc:button>
- <tc:button label="hide" id="hide3">
- <tc:operation name="hide" for="panel3"/>
- </tc:button>
- </tc:buttons>
- <tc:panel id="panel3">
-
- Here we have the transitions <code>show</code> and <code>hide</code> with normal server request.
- The buttons have set <code>omit="false"</code> which is the default.
-
- <tc:panel>
- Hallo, collapsible panel.
- <tc:in required="true" label="Required"/>
- </tc:panel>
-
- </tc:panel>
-
- <tc:out value="Requests: #{activityList.values[0].jsfRequest} / AJAX: #{activityList.values[0].ajaxRequest}"/>
-
- <tc:flowLayout textAlign="right">
- <tc:button label="Submit"/>
- </tc:flowLayout>
-
+ <ui:param name="title" value="#{overviewBundle.collapsible_panel} <tc:panel>"/>
+ <p>This page show some examples for the collapsible concept of a
+ <tc:link label="#{overviewBundle.panel}" link="/faces/content/20-component/050-container/20-panel/panel.xhtml"/>.
+ Every panel contain a required inputfield to see if a validation occur while submitting.
+ For better visibility every panel has a border.</p>
+ <tc:section label="Simple Panel">
+ <p>A simple panel using an controller for the collapsible state.
+ For the 'hide'-Button is the attribute <code>immediate="true"</code> set to submitting without validation.
+ So the panel could be hide even if the inputfield is empty.</p>
+ <p>The <code>collapsibleMode</code> is not set.
+ The 'Submit'-button can be executed without violation if the panel is in the hidden state.</p>
+ <tc:form>
+ <tc:buttons>
+ <tc:button label="show" action="#{collapsiblePanelController.showPanel}"/>
+ <tc:button label="hide" action="#{collapsiblePanelController.hidePanel}" immediate="true"/>
+ </tc:buttons>
+ <tc:button label="Submit"/>
+ <tc:panel id="simplePanel" collapsed="#{collapsiblePanelController.panelCollapsed}">
+ <tc:style customClass="demo-data-attribute"/>
+ <tc:in label="Required" required="true"/>
+ </tc:panel>
+ </tc:form>
+ </tc:section>
+
+ <tc:section label="Full Server Request">
+ <p>In this example the collapsible state is changed by <code class="language-markup"><tc:operation/></code>
+ with full server request. So the server get the current state.</p>
+ <p>The <code>collapsibleMode</code> is not set.
+ The 'Submit'-button can be executed without violation if the panel is hidden.</p>
+ <p>For the 'hide'-Button the attribute <code>immediate="true"</code> is set to submitting without validation.</p>
+ <tc:form>
+ <tc:buttons>
+ <tc:button label="show">
+ <tc:operation name="show" for="serverPanel"/>
+ </tc:button>
+ <tc:button label="hide" immediate="true">
+ <tc:operation name="hide" for="serverPanel"/>
+ </tc:button>
+ </tc:buttons>
+ <tc:button label="Submit"/>
+ <tc:panel id="serverPanel">
+ <tc:style customClass="demo-data-attribute"/>
+ <tc:in label="Required" required="true"/>
+ </tc:panel>
+ </tc:form>
+ </tc:section>
+
+ <tc:section label="Client Sided">
+ <p>A panel which is opened and closed only by the client.
+ The attribute <code>omit="true"</code> is set for the 'show'-button and the 'hide'-button.</p>
+ <p>For the panel <code>collapsibleMode="hidden"</code> is set.
+ After the 'hide' transition, the panel will be in the 'hidden' state - not the 'absent' state.
+ The content of the hidden panel will also be validated.<br/>
+ So, if the inputfield is empty and the panel is hidden, a violation occur when pressing the 'Submit'-button.</p>
+ <tc:form>
+ <tc:buttons>
+ <tc:button label="show" omit="true">
+ <tc:operation name="show" for="clientPanel"/>
+ </tc:button>
+ <tc:button label="hide" omit="true" immediate="true">
+ <tc:operation name="hide" for="clientPanel"/>
+ </tc:button>
+ </tc:buttons>
+ <tc:button label="Submit"/>
+ <tc:panel id="clientPanel" collapsedMode="hidden">
+ <tc:style customClass="demo-data-attribute"/>
+ <tc:in label="Required" required="true"/>
+ </tc:panel>
+ </tc:form>
+ </tc:section>
+
+ <tc:section label="Ajax">
+ <p>Here we have the transitions <code>show</code> and <code>hide</code> with AJAX request.
+ The buttons have set <code>immediate="true"</code> to execute the transition without validation.</p>
+ <p>The <code>collapsibleMode</code> is not set.
+ The 'Submit'-button can be executed without violation if the panel is hidden.</p>
+ <pre><code class="language-markup"><tc:button label="show" immediate="true">
+ <f:ajax execute="ajaxPanel" render="ajaxPanel"/>
+ <tc:operation name="show" for="ajaxPanel"/>
+</tc:button></code></pre>
+ <tc:form>
+ <tc:buttons>
+ <tc:button label="show" immediate="true">
+ <f:ajax execute="ajaxPanel" render="ajaxPanel"/>
+ <tc:operation name="show" for="ajaxPanel"/>
+ </tc:button>
+ <tc:button label="hide" immediate="true">
+ <f:ajax execute="ajaxPanel" render="ajaxPanel"/>
+ <tc:operation name="hide" for="ajaxPanel"/>
+ </tc:button>
+ </tc:buttons>
+ <tc:button label="Submit"/>
+ <tc:panel id="ajaxPanel">
+ <tc:style customClass="demo-data-attribute"/>
+ <tc:in label="Required" required="true"/>
+ </tc:panel>
+ </tc:form>
+ </tc:section>
</ui:composition>