You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2016/07/04 13:21:10 UTC

svn commit: r1751276 - in /myfaces/tobago/trunk: tobago-core/src/main/java/org/apache/myfaces/tobago/event/ tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/ tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/comp...

Author: lofwyr
Date: Mon Jul  4 13:21:10 2016
New Revision: 1751276

URL: http://svn.apache.org/viewvc?rev=1751276&view=rev
Log:
TOBAGO 1565: Specification for "collapsible" for Popup, Box, Section, ...
- refactoring: split the state to 2 attributes:
   collapsed=true|false (default: false)
   collapsedMode=absent|hidden (default: absent)

Added:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCollapsedMode.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseMode.java
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseModeUnitTest.java
Removed:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/event/CollapsibleActionEvent.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseState.java
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseStateUnitTest.java
Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICollapsiblePanel.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/BoxTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PanelTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PopupTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SectionTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsCollapsible.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleController.java
    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-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/Collapse.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/BoxRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRendererBase.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PopupRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SectionRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js
    myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component.stg

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICollapsiblePanel.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICollapsiblePanel.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICollapsiblePanel.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICollapsiblePanel.java Mon Jul  4 13:21:10 2016
@@ -20,7 +20,7 @@
 package org.apache.myfaces.tobago.internal.component;
 
 import org.apache.myfaces.tobago.component.Facets;
-import org.apache.myfaces.tobago.model.CollapseState;
+import org.apache.myfaces.tobago.model.CollapseMode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -31,7 +31,7 @@ public abstract class AbstractUICollapsi
 
   private static final Logger LOG = LoggerFactory.getLogger(AbstractUICollapsiblePanel.class);
 
-  private volatile CollapseState nextState;
+  private transient Boolean nextState;
 
   @Override
   public void processDecodes(final FacesContext facesContext) {
@@ -70,19 +70,17 @@ public abstract class AbstractUICollapsi
     }
   }
 
-  private boolean isNormalLifecycle() {
-    return !getCollapsed().isSkipLifecycle();
+  public boolean isNormalLifecycle() {
+    return getCollapsedMode() == CollapseMode.hidden || !isCollapsed();
   }
 
-  public abstract CollapseState getCollapsed();
+  public abstract boolean isCollapsed();
 
-  public abstract void setCollapsed(final CollapseState collapsed);
+  public abstract void setCollapsed(final boolean collapsed);
 
-  public CollapseState getNextState() {
-    return nextState;
-  }
+  public abstract CollapseMode getCollapsedMode();
 
-  public void setNextState(CollapseState nextState) {
+  public void setNextState(Boolean nextState) {
     this.nextState = nextState;
   }
 

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/BoxTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/BoxTagDeclaration.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/BoxTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/BoxTagDeclaration.java Mon Jul  4 13:21:10 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.component.Facets;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasCollapsedMode;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasLabel;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
@@ -54,6 +55,5 @@ import javax.faces.component.UIPanel;
             + "The layout manager tag should surround the content instead.")})
 
 public interface BoxTagDeclaration
-    extends HasIdBindingAndRendered, IsVisual, HasLabel, HasTip, IsCollapsible {
-
+    extends HasIdBindingAndRendered, IsVisual, HasLabel, HasTip, IsCollapsible, HasCollapsedMode {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PanelTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PanelTagDeclaration.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PanelTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PanelTagDeclaration.java Mon Jul  4 13:21:10 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.component.Facets;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasCollapsedMode;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsCollapsible;
@@ -49,5 +50,5 @@ import javax.faces.component.UIPanel;
         @Facet(name = Facets.LAYOUT, description = "Deprecated. Contains an layout manager. "
             + "The layout manager tag should surround the content instead.")})
 public interface PanelTagDeclaration
-    extends HasIdBindingAndRendered, IsVisual, IsCollapsible, HasTip {
+    extends HasIdBindingAndRendered, IsVisual, IsCollapsible, HasCollapsedMode, HasTip {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PopupTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PopupTagDeclaration.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PopupTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/PopupTagDeclaration.java Mon Jul  4 13:21:10 2016
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.component.AbstractUIPopup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasCollapsedMode;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
 import org.apache.myfaces.tobago.internal.taglib.declaration.IsCollapsible;
@@ -40,5 +41,5 @@ import org.apache.myfaces.tobago.interna
     rendererType = RendererTypes.POPUP
 )
 public interface PopupTagDeclaration
-    extends HasIdBindingAndRendered, IsVisual, IsCollapsible, HasTip {
+    extends HasIdBindingAndRendered, IsVisual, IsCollapsible, HasCollapsedMode, HasTip {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SectionTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SectionTagDeclaration.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SectionTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/SectionTagDeclaration.java Mon Jul  4 13:21:10 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
 import org.apache.myfaces.tobago.component.Facets;
 import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasCollapsedMode;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasImage;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasLabel;
@@ -47,5 +48,5 @@ import org.apache.myfaces.tobago.interna
             allowedChildComponenents = "org.apache.myfaces.tobago.Label")})
 
 public interface SectionTagDeclaration
-    extends HasIdBindingAndRendered, HasLabel, IsVisual, HasImage, IsCollapsible, HasTip {
+    extends HasIdBindingAndRendered, HasLabel, IsVisual, HasImage, IsCollapsible, HasCollapsedMode, HasTip {
 }

Added: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCollapsedMode.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCollapsedMode.java?rev=1751276&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCollapsedMode.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCollapsedMode.java Mon Jul  4 13:21:10 2016
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.taglib.declaration;
+
+import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
+import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
+import org.apache.myfaces.tobago.model.CollapseMode;
+
+public interface HasCollapsedMode {
+
+  /**
+   * Enum indicating the mode of the collapsed state of this component.
+   */
+  @TagAttribute
+  @UIComponentTagAttribute(
+          type = "org.apache.myfaces.tobago.model.CollapseMode",
+          defaultValue = CollapseMode.ABSENT,
+          defaultCode = "org.apache.myfaces.tobago.model.CollapseMode.absent")
+  void setCollapsedMode(String collapsed);
+}

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsCollapsible.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsCollapsible.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsCollapsible.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/IsCollapsible.java Mon Jul  4 13:21:10 2016
@@ -21,7 +21,6 @@ package org.apache.myfaces.tobago.intern
 
 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
-import org.apache.myfaces.tobago.model.CollapseState;
 
 public interface IsCollapsible {
 
@@ -29,9 +28,6 @@ public interface IsCollapsible {
    * Enum indicating the collapsed state of this component.
    */
   @TagAttribute
-  @UIComponentTagAttribute(
-      type = "org.apache.myfaces.tobago.model.CollapseState",
-      defaultValue = CollapseState.VISIBLE,
-      defaultCode = "org.apache.myfaces.tobago.model.CollapseState.visible")
+  @UIComponentTagAttribute(type = "boolean", defaultValue = "false")
   void setCollapsed(String collapsed);
 }

Added: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseMode.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseMode.java?rev=1751276&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseMode.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/model/CollapseMode.java Mon Jul  4 13:21:10 2016
@@ -0,0 +1,29 @@
+/*
+ * 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.model;
+
+public enum CollapseMode {
+
+  hidden,
+  absent;
+
+  public static final String HIDDEN = "hidden";
+  public static final String ABSENT = "absent";
+}

Added: myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseModeUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseModeUnitTest.java?rev=1751276&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseModeUnitTest.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/model/CollapseModeUnitTest.java Mon Jul  4 13:21:10 2016
@@ -0,0 +1,31 @@
+/*
+ * 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.model;
+
+import org.apache.myfaces.tobago.util.EnumUnitTest;
+import org.junit.Test;
+
+public class CollapseModeUnitTest extends EnumUnitTest {
+
+  @Test
+  public void testNames() throws IllegalAccessException, NoSuchFieldException {
+    testNames(CollapseMode.class);
+  }
+}

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleController.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/CollapsibleController.java Mon Jul  4 13:21:10 2016
@@ -19,7 +19,6 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,7 +32,7 @@ public class CollapsibleController imple
 
   private static final Logger LOG = LoggerFactory.getLogger(CollapsibleController.class);
 
-  private CollapseState collapsed = CollapseState.hidden;
+  private boolean collapsed = true;
 
   public String action() {
     LOG.info("action(): collapsed={}", collapsed);
@@ -45,11 +44,11 @@ public class CollapsibleController imple
     return null;
   }
 
-  public CollapseState getCollapsed() {
+  public boolean isCollapsed() {
     return collapsed;
   }
 
-  public void setCollapsed(CollapseState collapsed) {
+  public void setCollapsed(boolean collapsed) {
     this.collapsed = collapsed;
   }
 }

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=1751276&r1=1751275&r2=1751276&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 Mon Jul  4 13:21:10 2016
@@ -46,7 +46,6 @@
     </tc:box>
 
   </tc:section>
-
   <tc:section label="Collapsible section with AJAX server request" id="section2">
 
     Here we have the transitions <code>show</code> and <code>drop</code> and there is no server request needed.
@@ -59,9 +58,9 @@
             <f:ajax execute="box2" render="box2"/>
             <tc:operation name="show" for="box2"/>
           </tc:button>
-          <tc:button label="drop" id="drop2">
+          <tc:button label="hide" id="hide2">
             <f:ajax execute="box2" render="box2"/>
-            <tc:operation name="drop" for="box2"/>
+            <tc:operation name="hide" for="box2"/>
           </tc:button>
         </tc:buttons>
       </f:facet>
@@ -84,8 +83,8 @@
           <tc:button label="show" id="show3">
             <tc:operation name="show" for="box3"/>
           </tc:button>
-          <tc:button label="drop" id="drop3">
-            <tc:operation name="drop" for="box3"/>
+          <tc:button label="hide" id="hide3">
+            <tc:operation name="hide" for="box3"/>
           </tc:button>
         </tc:buttons>
       </f:facet>

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=1751276&r1=1751275&r2=1751276&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 Mon Jul  4 13:21:10 2016
@@ -45,7 +45,7 @@
           </tc:button>
           <tc:button label="Cancel and Close (immediate with action)" immediate="true"
                      action="#{collapsibleController.cancel}">
-            <tc:operation name="drop" for="popup"/>
+            <tc:operation name="hide" for="popup"/>
           </tc:button>
           <tc:button label="Submit and Close" action="#{collapsibleController.action}">
             <tc:operation name="hide" for="popup"/>

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=1751276&r1=1751275&r2=1751276&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 Mon Jul  4 13:21:10 2016
@@ -52,7 +52,7 @@
     </tc:button>
     <tc:button label="drop" id="drop2">
       <f:ajax execute="panel2" render="panel2"/>
-      <tc:operation name="drop" for="panel2"/>
+      <tc:operation name="hide" for="panel2"/>
     </tc:button>
   </tc:buttons>
   <tc:panel id="panel2">
@@ -73,7 +73,7 @@
       <tc:operation name="show" for="panel3"/>
     </tc:button>
     <tc:button label="drop" id="drop3">
-      <tc:operation name="drop" for="panel3"/>
+      <tc:operation name="hide" for="panel3"/>
     </tc:button>
   </tc:buttons>
   <tc:panel id="panel3">

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/30-collapsible-section/collapsible-section.xhtml Mon Jul  4 13:21:10 2016
@@ -56,7 +56,7 @@
         </tc:button>
         <tc:button label="drop" id="drop2">
           <f:ajax execute="section2" render="section2"/>
-          <tc:operation name="drop" for="section2"/>
+          <tc:operation name="hide" for="section2"/>
         </tc:button>
       </tc:buttons>
     </f:facet>
@@ -79,7 +79,7 @@
           <tc:operation name="show" for="section3"/>
         </tc:button>
         <tc:button label="drop" id="drop3">
-          <tc:operation name="drop" for="section3"/>
+          <tc:operation name="hide" for="section3"/>
         </tc:button>
       </tc:buttons>
     </f:facet>

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/Collapse.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/Collapse.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/Collapse.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/Collapse.java Mon Jul  4 13:21:10 2016
@@ -38,6 +38,6 @@ public class Collapse {
   }
 
   public enum Action {
-    show, hide, drop
+    show, hide
   }
 }

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/BoxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/BoxRenderer.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/BoxRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/BoxRenderer.java Mon Jul  4 13:21:10 2016
@@ -22,7 +22,6 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.UIMenuBar;
 import org.apache.myfaces.tobago.internal.component.AbstractUIBox;
 import org.apache.myfaces.tobago.internal.util.Deprecation;
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
@@ -52,10 +51,10 @@ public class BoxRenderer extends PanelRe
     final UIComponent bar = ComponentUtils.getFacet(box, Facets.bar);
 
     writer.startElement(HtmlElements.DIV);
-    final CollapseState collapsed = box.getCollapsed();
+    final boolean collapsed = box.isCollapsed();
     writer.writeClassAttribute(
         Classes.create(box),
-        collapsed == CollapseState.visible ? null : TobagoClass.COLLAPSED,
+        collapsed ? TobagoClass.COLLAPSED : null,
         BootstrapClass.CARD,
         box.getCustomClass());
     final String clientId = box.getClientId(facesContext);

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRenderer.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRenderer.java Mon Jul  4 13:21:10 2016
@@ -23,7 +23,6 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.UIPanel;
 import org.apache.myfaces.tobago.component.UIReload;
 import org.apache.myfaces.tobago.internal.util.FacesContextUtils;
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
 import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
@@ -45,14 +44,14 @@ public class PanelRenderer extends Panel
     final UIPanel panel = (UIPanel) component;
     final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
     final String clientId = panel.getClientId(facesContext);
-    final CollapseState collapsed = panel.getCollapsed();
+    final boolean collapsed = panel.isCollapsed();
 
     writer.startElement(HtmlElements.DIV);
     writer.writeIdAttribute(clientId);
     writer.writeClassAttribute(
         Classes.create(panel),
         panel.getCustomClass(),
-        collapsed == CollapseState.visible ? null : TobagoClass.COLLAPSED);
+        collapsed ? TobagoClass.COLLAPSED : null);
     writer.writeStyleAttribute(panel.getStyle());
 
     HtmlRendererUtils.writeDataAttributes(facesContext, writer, panel);

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRendererBase.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRendererBase.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PanelRendererBase.java Mon Jul  4 13:21:10 2016
@@ -21,7 +21,6 @@ package org.apache.myfaces.tobago.render
 
 import org.apache.myfaces.tobago.internal.component.AbstractUICollapsiblePanel;
 import org.apache.myfaces.tobago.internal.util.StringUtils;
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.apache.myfaces.tobago.renderkit.RendererBase;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
@@ -48,18 +47,19 @@ public class PanelRendererBase extends R
     if (requestParameterMap.containsKey(hiddenId)) {
       final String newValue = requestParameterMap.get(hiddenId);
       if (StringUtils.isNotBlank(newValue)) {
-        collapsible.setNextState(CollapseState.valueOf(newValue));
+        collapsible.setNextState(Boolean.valueOf(newValue));
       }
     }
   }
 
-  protected void encodeHidden(final TobagoResponseWriter writer, final String clientId, final CollapseState collapsed)
+  protected void encodeHidden(final TobagoResponseWriter writer, final String clientId, final boolean collapsed)
       throws IOException {
+    final String hiddenId = clientId + ComponentUtils.SUB_SEPARATOR + "collapse";
     writer.startElement(HtmlElements.INPUT);
     writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN);
-    writer.writeNameAttribute(clientId + ComponentUtils.SUB_SEPARATOR + "collapse");
-    writer.writeIdAttribute(clientId + ComponentUtils.SUB_SEPARATOR + "collapse");
-    writer.writeAttribute(HtmlAttributes.VALUE, collapsed.name(), false);
+    writer.writeNameAttribute(hiddenId);
+    writer.writeIdAttribute(hiddenId);
+    writer.writeAttribute(HtmlAttributes.VALUE, Boolean.toString(collapsed), false);
     writer.endElement(HtmlElements.INPUT);
   }
 
@@ -70,9 +70,8 @@ public class PanelRendererBase extends R
 
   @Override
   public void encodeChildren(final FacesContext facesContext, final UIComponent component) throws IOException {
-    if (((AbstractUICollapsiblePanel) component).getCollapsed().isSkipLifecycle()) {
-      return;
+    if (((AbstractUICollapsiblePanel) component).isNormalLifecycle()) {
+      super.encodeChildren(facesContext, component);
     }
-    super.encodeChildren(facesContext, component);
   }
 }

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PopupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PopupRenderer.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PopupRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/PopupRenderer.java Mon Jul  4 13:21:10 2016
@@ -20,7 +20,6 @@
 package org.apache.myfaces.tobago.renderkit.html.standard.standard.tag;
 
 import org.apache.myfaces.tobago.internal.component.AbstractUIPopup;
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
@@ -41,7 +40,7 @@ public class PopupRenderer extends Panel
     final AbstractUIPopup popup = (AbstractUIPopup) component;
     final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
     final String clientId = popup.getClientId(facesContext);
-    final CollapseState collapsed = popup.getCollapsed();
+    final boolean collapsed = popup.isCollapsed();
 
     writer.startElement(HtmlElements.DIV);
     writer.writeClassAttribute(TobagoClass.POPUP, BootstrapClass.MODAL, BootstrapClass.FADE);

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SectionRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SectionRenderer.java?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SectionRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SectionRenderer.java Mon Jul  4 13:21:10 2016
@@ -21,7 +21,6 @@ package org.apache.myfaces.tobago.render
 
 import org.apache.myfaces.tobago.component.Facets;
 import org.apache.myfaces.tobago.internal.component.AbstractUISection;
-import org.apache.myfaces.tobago.model.CollapseState;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
@@ -42,13 +41,13 @@ public class SectionRenderer extends Pan
     final AbstractUISection section = (AbstractUISection) component;
     final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
     final String clientId = section.getClientId(facesContext);
-    final CollapseState collapsed = section.getCollapsed();
+    final boolean collapsed = section.isCollapsed();
 
     writer.startElement(HtmlElements.DIV);
     writer.writeIdAttribute(clientId);
     writer.writeClassAttribute(
         Classes.create(section),
-        collapsed == CollapseState.visible ? null : TobagoClass.COLLAPSED,
+        collapsed ? TobagoClass.COLLAPSED : null,
         section.getCustomClass());
     HtmlRendererUtils.writeDataAttributes(facesContext, writer, section);
 

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js Mon Jul  4 13:21:10 2016
@@ -20,13 +20,13 @@ Tobago.Popup = {};
 /**
  * Init popup for bootstrap
  */
-Tobago.Popup.init = function(elements) {
+Tobago.Popup.init = function (elements) {
 
   var popups = Tobago.Utils.selectWithJQuery(elements, ".modal");
-  popups.each(function() {
+  popups.each(function () {
     var $popup = jQuery(this);
     var $hidden = Tobago.Collapse.findHidden($popup);
-    if ($hidden.val() == "visible") {
+    if ($hidden.val() == "false") {
       jQuery(this).modal(); // inits and opens the popup
     } else {
       jQuery(this).modal("hide"); // inits and hides the popup
@@ -34,7 +34,7 @@ Tobago.Popup.init = function(elements) {
   });
 };
 
-Tobago.Popup.close = function(button) {
+Tobago.Popup.close = function (button) {
   jQuery(button).parents('.modal:first').modal("hide");
 
 };
@@ -53,39 +53,29 @@ Tobago.Collapse.execute = function (coll
   var $for = jQuery(Tobago.Utils.escapeClientId(collapse.forId));
   var $hidden = Tobago.Collapse.findHidden($for);
   var isPopup = $for.hasClass("tobago-popup");
-  var state = $hidden.val();
-  var newState;
+  var newCollapsed;
   switch (transition) {
     case "hide":
-      newState = "hidden";
+      newCollapsed = true;
       break;
     case "show":
-      newState = "visible";
-      break;
-    case "drop":
-      newState = "absent";
+      newCollapsed = false;
       break;
     default:
       console.error("unknown transition: '" + transition + "'");
   }
-  if (newState == "hidden") {
+  if (newCollapsed) {
     if (isPopup) {
       $for.modal("hide");
     } else {
       $for.addClass("tobago-collapsed");
     }
-  } else if (newState == "visible") {
+  } else {
     if (isPopup) {
       $for.modal("show");
     } else {
       $for.removeClass("tobago-collapsed");
     }
-  } // else (absent): nothing to do, because here comes an update from the server
-
-  var serverRequestRequired = state == "absent" || newState == "absent";
-  if (serverRequestRequired) {
-    console.info("serverRequestRequired!"); // todo: remove var serverRequestRequired: is not needed.
-    // tbd. this this must be done be the deveopoer manually
   }
-  $hidden.val(newState);
+  $hidden.val(newCollapsed);
 };

Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component.stg?rev=1751276&r1=1751275&r2=1751276&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component.stg Mon Jul  4 13:21:10 2016
@@ -330,7 +330,7 @@ SanitizeModeProperty(property) ::= <<
 <NormalProperty(property)>
 >>
 
-CollapseStateProperty(property) ::= <<
+CollapseModeProperty(property) ::= <<
 <NormalProperty(property)>
 >>