You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/11/19 15:15:00 UTC

svn commit: r596307 - /myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java

Author: bommel
Date: Mon Nov 19 06:14:59 2007
New Revision: 596307

URL: http://svn.apache.org/viewvc?rev=596307&view=rev
Log:
(TOBAGO-545) SupportMarkupRule should support expressions

Modified:
    myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java?rev=596307&r1=596306&r2=596307&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/SupportsMarkupRule.java Mon Nov 19 06:14:59 2007
@@ -22,10 +22,14 @@
 import com.sun.facelets.tag.MetadataTarget;
 import com.sun.facelets.tag.MetaRule;
 import com.sun.facelets.FaceletContext;
+import com.sun.facelets.el.LegacyValueBinding;
+import com.sun.facelets.el.ELAdaptor;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.component.SupportsMarkup;
+import org.apache.myfaces.tobago.TobagoConstants;
 
 import javax.faces.component.UIComponent;
+import javax.el.ValueExpression;
 
 /*
  * User: bommel
@@ -38,7 +42,7 @@
   public Metadata applyRule(String name, TagAttribute attribute,
       MetadataTarget metadataTarget) {
     if (metadataTarget.isTargetInstanceOf(SupportsMarkup.class)) {
-      if ("markup".equals(name)) {
+      if (TobagoConstants.ATTR_MARKUP.equals(name)) {
         return new SupportsMarkupMapper(attribute);
       }
     }
@@ -54,7 +58,12 @@
     }
 
     public void applyMetadata(FaceletContext ctx, Object instance) {
-      ComponentUtil.setMarkup((UIComponent) instance, attribute.getValue());
+      if (attribute.isLiteral()) {
+        ComponentUtil.setMarkup((UIComponent) instance, attribute.getValue());
+      } else {
+        ValueExpression expression = attribute.getValueExpression(ctx, Object.class);
+        ELAdaptor.setExpression((UIComponent) instance, TobagoConstants.ATTR_MARKUP, expression);
+      }
     }
   }
 }