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">&lt;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">&lt;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} &lt;tc:object&gt;"/>
   <tc:script file="content/20-component/020-output/60-object/object.js"/>
 
   <p>The <code class="language-markup">&lt;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">&lt;tc:object src="https://www.google.com/maps/..."/&gt;</code></pre>
     <tc:object id="o1"
@@ -53,18 +55,27 @@
   &lt;tc:dataAttribute name="maps-zoom" value="12"/&gt;
   &lt;tc:dataAttribute name="maps-target" value="page:map"/&gt;
 &lt;/tc:button&gt;</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}  &lt;tc:buttons>"/>
+  <ui:param name="title" value="#{overviewBundle.commands}  &lt;tc:commands>"/>
   <p>Links/Commands can be grouped with the <code class="language-markup">&lt;tc:commands/></code> tag.
     Just add some <code class="language-markup">&lt;tc:link/></code> or
     <code class="language-markup">&lt;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">&lt;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">&lt;tc:button label="Submit"/></code></pre>
+    <tc:button label="Submit"/>
+  </tc:section>
+
+  <tc:section label="#{overviewBundle.buttons}">
+    <pre><code class="language-markup">&lt;tc:buttons>
+  &lt;tc:button label="Left" omit="true"/>
+  &lt;tc:button label="Center" omit="true"/>
+  &lt;tc:button label="Right" omit="true"/>
+&lt;/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">&lt;tc:commands>
+  &lt;tc:link label="Apache Website" link="https://www.apache.org"/>
+  &lt;tc:link label="Wikipedia" link="https://en.wikipedia.org/wiki/Apache_Software_Foundation"/>
+&lt;/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">&lt;tc:button label="Submit"/></code>
-          <br/>The 'Submit'-button submit the value in the inputfield.</p>
-
-        <p><b>Submit &amp; Close</b><br/>
-          <code class="language-markup">&lt;tc:button label="Submit &amp; Close" action="\#{popupController.closePopup1}"/></code>
-          <br/>The 'Submit &amp; 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">&lt;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 &amp; 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">&lt;tc:button label="Submit"/></code>
+            <br/>The 'Submit'-button submit the value in the inputfield.</p>
+
+          <p><b>Submit &amp; Close</b><br/>
+            <code class="language-markup">&lt;tc:button label="Submit &amp; Close" action="\#{popupController.closePopup1}"/></code>
+            <br/>The 'Submit &amp; 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">&lt;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 &amp; 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">&lt;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">&lt;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">&lt;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">&lt;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">&lt;tc:button label="Submit">
+      <pre><code class="language-markup">&lt;tc:button label="Open" omit="true">
+  &lt;tc:operation name="show" for="clientPopup"/>
+&lt;/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">&lt;tc:button label="Submit">
   &lt;f:ajax execute="in" render="in :::out clientPopupMessages"/>
 &lt;/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 &amp; Close</b>
-         <pre><code class="language-markup">&lt;tc:button label="Submit &amp; Close">
+          <b>Submit &amp; Close</b>
+          <pre><code class="language-markup">&lt;tc:button label="Submit &amp; Close">
   &lt;tc:operation name="hide" for="clientPopup"/>
 &lt;/tc:button></code></pre>
-        <p>The 'Submit &amp; Close'-button execute a submit and run the operation 'hide' to close the popup.</p>
+          <p>The 'Submit &amp; Close'-button execute a submit and run the operation 'hide' to close the popup.</p>
 
-        <b>Cancel</b>
-         <pre><code class="language-markup">&lt;tc:button label="Cancel" omit="true">
+          <b>Cancel</b>
+          <pre><code class="language-markup">&lt;tc:button label="Cancel" omit="true">
   &lt;tc:operation name="hide" for="clientPopup"/>
 &lt;/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 &amp; 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 &amp; 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">&lt;tc:tab label="Only label"/></code></pre>
+        <pre><code id="tabHead1Code" class="language-markup">&lt;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">&lt;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">&lt;tc:tab image="image/feather-leaf.png"></code></pre>
+        <pre><code id="tabHead3Code" class="language-markup">&lt;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">&lt;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">&lt;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">&lt;tc:in label="Input">
   &lt;f:validateLength minimum="2" maximum="4"/>
 &lt;/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">&lt;tc:in label="Number" markup="number">
   &lt;f:validateLongRange minimum="3" maximum="77"/>
 &lt;/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">&lt;tc:in label="Letter &amp; Number" >
   &lt;f:validateRegex pattern="[A-Za-z][0-9]"/>
 &lt;/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 &amp; Number">
+      <tc:in id="in" label="Letter &amp; 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">&lt;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">&lt;tc:in label="Input" value="\#{validationJsr303Controller.length}"/></code></pre>
+    <pre><code
+            class="language-markup">&lt;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}  &lt;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="&lt;tc:gridLayout/>" image="image/feather-leaf.png"
-             link="#{overviewBundle.tagDocUrl}/gridLayout.html"/>
-    |
-    <tc:link label="&lt;tc:flexLayout/>" image="image/feather-leaf.png"
-             link="#{overviewBundle.tagDocUrl}/flexLayout.html"/>
-    |
-    <tc:link label="&lt;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">&lt;tc:box/></code>
         tags withing a <code class="language-markup">&lt;tc:segmentLayout/></code>.</p>
     <pre><code class="language-markup">&lt;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">&lt;tc:section/></code></p>
     <pre><code class="language-markup">&lt;ui:repeat value="\#{forEachController.rivers}" var="river">
   &lt;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} &lt;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">&lt;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">&lt;tc:box id="box1" label="Full Request Box 1">
+  &lt;f:facet name="bar">
+    &lt;tc:buttons>
+      &lt;tc:button label="show">
+        &lt;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">&lt;tc:box id="noRequestBox" label="No Request Box"
+        collapsed="true" collapsedMode="hidden">
+  &lt;tc:button label="show" omit="true">
+    &lt;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">&lt;tc:box id="ajaxBox" label="Collapsible Box (AJAX)" collapsedMode="absent">
+  ...
+    &lt;tc:button label="show" immediate="true">
+      &lt;f:ajax execute="ajaxBox" render="ajaxBox"/>
+      &lt;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} &lt;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">&lt;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} &lt;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">&lt;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">&lt;tc:button label="show" immediate="true">
+  &lt;f:ajax execute="ajaxPanel" render="ajaxPanel"/>
+  &lt;tc:operation name="show" for="ajaxPanel"/>
+&lt;/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>