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

svn commit: r1753055 - in /myfaces/tobago/trunk: tobago-core/src/main/java/org/apache/myfaces/tobago/component/ tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/ tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/ tobago...

Author: weber
Date: Sun Jul 17 10:49:34 2016
New Revision: 1753055

URL: http://svn.apache.org/viewvc?rev=1753055&view=rev
Log:
TOBAGO-1577 - AJAX not working from renderedPartial attribute

Added:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsAjaxBehaviorHolder.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsAjaxBehaviorHolderRule.java
      - copied, changed from r1753025, myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsRenderedPartiallyRule.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAjaxBehavior.java
Removed:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsRenderedPartiallyRule.java
Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsRenderedPartially.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/CommandTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/MenuCommandTagDeclaration.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/Attributes.java Sun Jul 17 10:49:34 2016
@@ -71,6 +71,7 @@ public enum Attributes {
   disabled,
   enctype,
   escape,
+  executePartially,
   expanded,
   execute,
   event,
@@ -190,9 +191,14 @@ public enum Attributes {
   reference,
   relative,
   rendered,
+  /**
+   * @deprecated since Tobago 3.0.0
+   */
+  @Deprecated
   renderedPartially,
   rendererType,
   renderAs,
+  renderPartially,
   renderRange,
   renderRangeExtern,
   required,

Added: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsAjaxBehaviorHolder.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsAjaxBehaviorHolder.java?rev=1753055&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsAjaxBehaviorHolder.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsAjaxBehaviorHolder.java Sun Jul 17 10:49:34 2016
@@ -0,0 +1,15 @@
+package org.apache.myfaces.tobago.component;
+
+import javax.faces.component.behavior.ClientBehaviorHolder;
+
+public interface SupportsAjaxBehaviorHolder extends ClientBehaviorHolder {
+
+  String[] getRenderPartially();
+
+  void setRenderPartially(String[] renderedPartially);
+
+  String[] getExecutePartially();
+
+  void setExecutePartially(String[] renderedPartially);
+
+}

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsRenderedPartially.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsRenderedPartially.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsRenderedPartially.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/SupportsRenderedPartially.java Sun Jul 17 10:49:34 2016
@@ -19,7 +19,7 @@
 
 package org.apache.myfaces.tobago.component;
 
-
+@Deprecated
 public interface SupportsRenderedPartially {
 
   String[] getRenderedPartially();

Copied: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsAjaxBehaviorHolderRule.java (from r1753025, myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsRenderedPartiallyRule.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsAjaxBehaviorHolderRule.java?p2=myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsAjaxBehaviorHolderRule.java&p1=myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsRenderedPartiallyRule.java&r1=1753025&r2=1753055&rev=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsRenderedPartiallyRule.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/SupportsAjaxBehaviorHolderRule.java Sun Jul 17 10:49:34 2016
@@ -20,49 +20,91 @@
 package org.apache.myfaces.tobago.facelets;
 
 import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.component.SupportsRenderedPartially;
+import org.apache.myfaces.tobago.component.SupportsAjaxBehaviorHolder;
 import org.apache.myfaces.tobago.util.ComponentUtils;
 
 import javax.el.ValueExpression;
 import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.AjaxBehavior;
+import javax.faces.component.behavior.ClientBehavior;
 import javax.faces.view.facelets.FaceletContext;
 import javax.faces.view.facelets.MetaRule;
 import javax.faces.view.facelets.Metadata;
 import javax.faces.view.facelets.MetadataTarget;
 import javax.faces.view.facelets.TagAttribute;
+import java.util.List;
+import java.util.Map;
 
-public class SupportsRenderedPartiallyRule extends MetaRule {
+public class SupportsAjaxBehaviorHolderRule extends MetaRule {
 
-  public static final SupportsRenderedPartiallyRule INSTANCE = new SupportsRenderedPartiallyRule();
+  public static final SupportsAjaxBehaviorHolderRule INSTANCE = new SupportsAjaxBehaviorHolderRule();
 
   @Override
   public Metadata applyRule(final String name, final TagAttribute attribute, final MetadataTarget metadataTarget) {
-    if (metadataTarget.isTargetInstanceOf(SupportsRenderedPartially.class)) {
+    if (metadataTarget.isTargetInstanceOf(SupportsAjaxBehaviorHolder.class)) {
       Attributes a = Attributes.valueOfFailsafe(name);
-      if (Attributes.renderedPartially == a) {
-        return new SupportsRenderedPartiallyMapper(attribute);
+      if (a != null) {
+        switch (a) {
+          case renderPartially:
+          case renderedPartially:
+          case executePartially:
+            return new SupportsAjaxBehaviorHolderMapper(attribute, a);
+        }
       }
     }
     return null;
   }
 
-  static final class SupportsRenderedPartiallyMapper extends Metadata {
+  static final class SupportsAjaxBehaviorHolderMapper extends Metadata {
 
-    private final TagAttribute attribute;
+    private final TagAttribute tagAttribute;
+    private final Attributes tobagoAttribute;
 
-    public SupportsRenderedPartiallyMapper(final TagAttribute attribute) {
-      this.attribute = attribute;
+    public SupportsAjaxBehaviorHolderMapper(final TagAttribute tagAttribute, Attributes tobagoAttribute) {
+      this.tagAttribute = tagAttribute;
+      this.tobagoAttribute = tobagoAttribute;
     }
 
     @Override
-    public void applyMetadata(final FaceletContext ctx, final Object instance) {
-      if (attribute.isLiteral()) {
-        final String[] components = ComponentUtils.splitList(attribute.getValue());
-        ((SupportsRenderedPartially) instance).setRenderedPartially(components);
-      } else {
-        final ValueExpression expression = attribute.getValueExpression(ctx, Object.class);
-        ((UIComponent) instance).setValueExpression(Attributes.renderedPartially.getName(), expression);
+    public void applyMetadata(final FaceletContext faceletContext, final Object instance) {
+
+      final SupportsAjaxBehaviorHolder ajaxBehaviorHolder = (SupportsAjaxBehaviorHolder) instance;
+
+      AjaxBehavior ajaxBehavior = findAjaxBehavior(ajaxBehaviorHolder, faceletContext);
+
+
+      switch (tobagoAttribute) {
+        case renderedPartially:
+//          if (tagAttribute.isLiteral()) {
+//        final String[] components = ComponentUtils.splitList(tagAttribute.getValue());
+//          } else {
+//          }
+//          break;
+        case renderPartially:
+          ajaxBehavior.setValueExpression("render", tagAttribute.getValueExpression(faceletContext, Object.class));
+          break;
+        case executePartially:
+          ajaxBehavior.setValueExpression("execute", tagAttribute.getValueExpression(faceletContext, Object.class));
+          break;
+      }
+    }
+
+    private AjaxBehavior findAjaxBehavior(SupportsAjaxBehaviorHolder ajaxBehaviorHolder, FaceletContext faceletContext) {
+      Map<String, List<ClientBehavior>> clientBehaviors = ajaxBehaviorHolder.getClientBehaviors();
+
+      for (List<ClientBehavior> behaviors : clientBehaviors.values()) {
+        if (behaviors != null && !behaviors.isEmpty()) {
+          for (ClientBehavior cb : behaviors) {
+            if (cb instanceof AjaxBehavior) {
+              return (AjaxBehavior) cb;
+            }
+          }
+        }
       }
+      final AjaxBehavior ajaxBehavior
+          = (AjaxBehavior) faceletContext.getFacesContext().getApplication().createBehavior(AjaxBehavior.BEHAVIOR_ID);
+      ajaxBehaviorHolder.addClientBehavior(ajaxBehaviorHolder.getDefaultEventName(), ajaxBehavior);
+      return ajaxBehavior;
     }
   }
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java Sun Jul 17 10:49:34 2016
@@ -22,8 +22,8 @@ package org.apache.myfaces.tobago.facele
 import org.apache.myfaces.tobago.component.InputSuggest;
 import org.apache.myfaces.tobago.component.OnComponentCreated;
 import org.apache.myfaces.tobago.component.OnComponentPopulated;
+import org.apache.myfaces.tobago.component.SupportsAjaxBehaviorHolder;
 import org.apache.myfaces.tobago.component.Visual;
-import org.apache.myfaces.tobago.component.SupportsRenderedPartially;
 import org.apache.myfaces.tobago.config.TobagoConfig;
 import org.apache.myfaces.tobago.event.SheetStateChangeSource;
 import org.apache.myfaces.tobago.event.SortActionSource;
@@ -71,8 +71,8 @@ public class TobagoComponentHandler exte
     if (InputSuggest.class.isAssignableFrom(aClass)) {
       metaRuleset.addRule(SuggestMethodRule.INSTANCE);
     }
-    if (SupportsRenderedPartially.class.isAssignableFrom(aClass)) {
-      metaRuleset.addRule(SupportsRenderedPartiallyRule.INSTANCE);
+    if (SupportsAjaxBehaviorHolder.class.isAssignableFrom(aClass)) {
+      metaRuleset.addRule(SupportsAjaxBehaviorHolderRule.INSTANCE);
     }
 
     return metaRuleset;

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUICommand.java Sun Jul 17 10:49:34 2016
@@ -21,6 +21,7 @@ package org.apache.myfaces.tobago.intern
 
 import org.apache.myfaces.tobago.component.OnComponentPopulated;
 import org.apache.myfaces.tobago.component.SupportsAccessKey;
+import org.apache.myfaces.tobago.component.SupportsAjaxBehaviorHolder;
 import org.apache.myfaces.tobago.component.SupportsRenderedPartially;
 import org.apache.myfaces.tobago.component.Visual;
 import org.apache.myfaces.tobago.event.CollapsibleActionListener;
@@ -44,7 +45,8 @@ import java.util.List;
 
 public abstract class AbstractUICommand
     extends UICommand
-    implements SupportsRenderedPartially, SupportsAccessKey, OnComponentPopulated, Visual, ClientBehaviorHolder {
+    implements SupportsRenderedPartially, SupportsAjaxBehaviorHolder, SupportsAccessKey, OnComponentPopulated, Visual,
+               ClientBehaviorHolder {
 
   private static final Logger LOG = LoggerFactory.getLogger(AbstractUICommand.class);
 
@@ -178,6 +180,12 @@ public abstract class AbstractUICommand
   @Override
   public abstract String[] getRenderedPartially();
 
+  @Override
+  public abstract String[] getRenderPartially();
+
+  @Override
+  public abstract String[] getExecutePartially();
+
   public abstract boolean isOmit();
 
   public abstract String getTip();

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java Sun Jul 17 10:49:34 2016
@@ -27,6 +27,7 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasAction;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasActionListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAjaxBehavior;
 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.HasLabelAndAccessKey;
@@ -66,7 +67,7 @@ import javax.faces.component.UICommand;
     })
 public interface ButtonTagDeclaration
     extends HasIdBindingAndRendered, HasAction, HasActionListener, IsImmediateCommand,
-    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, IsDisabledBySecurity,
+    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, HasAjaxBehavior, IsDisabledBySecurity,
     IsOmit, IsVisual, HasLabelAndAccessKey, HasTip, HasImage,
     IsDefaultCommand, HasTabIndex {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/CommandTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/CommandTagDeclaration.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/CommandTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/CommandTagDeclaration.java Sun Jul 17 10:49:34 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasAction;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasActionListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAjaxBehavior;
 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.HasLabelAndAccessKey;
@@ -54,7 +55,7 @@ import javax.faces.component.UICommand;
     allowedChildComponenents = "NONE")
 public interface CommandTagDeclaration
     extends HasIdBindingAndRendered, HasAction, HasActionListener, IsImmediateCommand,
-    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, IsDisabledBySecurity,
+    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, HasAjaxBehavior, IsDisabledBySecurity,
     IsOmit, HasValue, IsVisual, HasLabelAndAccessKey, HasTip, HasImage,
     IsDefaultCommand {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/LinkTagDeclaration.java Sun Jul 17 10:49:34 2016
@@ -27,6 +27,7 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasAction;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasActionListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAjaxBehavior;
 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.HasLabelAndAccessKey;
@@ -64,6 +65,6 @@ import javax.faces.component.UICommand;
             allowedChildComponenents = "org.apache.myfaces.tobago.Out")})
 public interface LinkTagDeclaration
     extends HasIdBindingAndRendered, HasAction, HasActionListener, IsImmediateCommand,
-    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, IsDisabledBySecurity,
-    IsOmit, HasImage, HasTabIndex, IsVisual, HasLabelAndAccessKey, HasTip {
+            HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, HasAjaxBehavior, IsDisabledBySecurity,
+            IsOmit, HasImage, HasTabIndex, IsVisual, HasLabelAndAccessKey, HasTip {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/MenuCommandTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/MenuCommandTagDeclaration.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/MenuCommandTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/MenuCommandTagDeclaration.java Sun Jul 17 10:49:34 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasAction;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasActionListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAjaxBehavior;
 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.HasLabelAndAccessKey;
@@ -56,6 +57,6 @@ import javax.faces.component.UICommand;
     allowedChildComponenents = "NONE")
 public interface MenuCommandTagDeclaration
     extends HasAction, HasActionListener, IsImmediateCommand,
-    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, IsDisabledBySecurity, IsOmit, IsVisual,
-    HasIdBindingAndRendered, HasLabelAndAccessKey, HasTip, HasImage {
+            HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, HasAjaxBehavior, IsDisabledBySecurity, IsOmit, IsVisual,
+            HasIdBindingAndRendered, HasLabelAndAccessKey, HasTip, HasImage {
 }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TreeCommandTagDeclaration.java Sun Jul 17 10:49:34 2016
@@ -27,6 +27,7 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasAction;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasActionListener;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAjaxBehavior;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasLabelAndAccessKey;
 import org.apache.myfaces.tobago.internal.taglib.declaration.HasLink;
@@ -65,6 +66,6 @@ import javax.faces.component.UICommand;
     rendererType = RendererTypes.TREE_COMMAND)
 public interface TreeCommandTagDeclaration
     extends HasIdBindingAndRendered, HasAction, HasActionListener, IsImmediateCommand,
-    HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, IsDisabledBySecurity, IsOmit,
-    HasLabelAndAccessKey, HasTip, HasTabIndex, IsVisual {
+            HasLink, HasResource, IsTransition, HasTarget, HasRenderedPartially, HasAjaxBehavior, IsDisabledBySecurity, IsOmit,
+            HasLabelAndAccessKey, HasTip, HasTabIndex, IsVisual {
 }

Added: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAjaxBehavior.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAjaxBehavior.java?rev=1753055&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAjaxBehavior.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasAjaxBehavior.java Sun Jul 17 10:49:34 2016
@@ -0,0 +1,48 @@
+package org.apache.myfaces.tobago.internal.taglib.declaration;
+
+import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
+import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
+
+public interface HasAjaxBehavior {
+
+  /**
+   * <b>TODO: check this all</b>
+   * <p>
+   * Indicate the partially rendered components in a case of a submit.
+   * </p>
+   * <p>
+   * The search depends on the number of prefixed colons in the relativeId:
+   * </p>
+   * <dl>
+   *   <dd>number of prefixed colons == 0</dd>
+   *   <dt>fully relative</dt>
+   *   <dd>number of prefixed colons == 1</dd>
+   *   <dt>absolute (still normal findComponent syntax)</dt>
+   *   <dd>number of prefixed colons == 2</dd>
+   *   <dt>search in the current naming container (same as 0 colons)</dt>
+   *   <dd>number of prefixed colons == 3</dd>
+   *   <dt>search in the parent naming container of the current naming container</dt>
+   *   <dd>number of prefixed colons &gt; 3</dd>
+   *   <dt>go to the next parent naming container for each additional colon</dt>
+   * </dl>
+   * <p>
+   * If a literal is specified: to use more than one identifier the identifiers must be space delimited.
+   * </p>
+   * <p>
+   * Using this in a UISheet or UITabGroup component this list indicates components to update when calling
+   * internal AJAX requests like sort or paging commands.
+   * Don't forget to add the sheet-id or tagGroup-id in that case, if needed.
+   * </p>
+   * <p>
+   * You can also use @this for the component itself.
+   * </p>
+   */
+  @TagAttribute
+  @UIComponentTagAttribute(type = "java.lang.String[]")
+  void setRenderPartially(String componentIds);
+
+  @TagAttribute
+  @UIComponentTagAttribute(type = "java.lang.String[]")
+  void setExecutePartially(String componentIds);
+
+}

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml?rev=1753055&r1=1753054&r2=1753055&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/50-partial/partial.xhtml Sun Jul 17 10:49:34 2016
@@ -93,7 +93,7 @@
         </tc:button>
 
         <tc:button label="Reload right" tip="Reload right side box"
-                   action="#{partialReloadController.reload}" renderedPartially="right :page:header:headerInfo"/>
+                   action="#{partialReloadController.reload}" renderPartially="right :page:header:headerInfo"/>
 
         <tc:button label="Reload both" tip="Reload both boxes"
                    action="#{partialReloadController.reload}" renderedPartially="left right :page:header:headerInfo">