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/08/15 09:40:14 UTC

svn commit: r566045 - in /myfaces/tobago/trunk: contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/ core/src/main/java/org/apache/myfaces/tobago/component/ core/src/main/java/org/apache/myfaces/tobago/renderkit/html/ theme/scarborough/sr...

Author: bommel
Date: Wed Aug 15 00:40:13 2007
New Revision: 566045

URL: http://svn.apache.org/viewvc?view=rev&rev=566045
Log:
(TOBAGO-466) Extend AttributeHandler for handling methodexpression in a facelet composition

Modified:
    myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AttributeHandler.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PanelRenderer.java

Modified: myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AttributeHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AttributeHandler.java?view=diff&rev=566045&r1=566044&r2=566045
==============================================================================
--- myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AttributeHandler.java (original)
+++ myfaces/tobago/trunk/contrib/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AttributeHandler.java Wed Aug 15 00:40:13 2007
@@ -20,6 +20,7 @@
 import javax.el.ELException;
 import javax.el.MethodExpression;
 import javax.el.ExpressionFactory;
+import javax.el.ValueExpression;
 import javax.faces.FacesException;
 import javax.faces.component.UIComponent;
 import javax.faces.component.EditableValueHolder;
@@ -37,8 +38,11 @@
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.component.UICommand;
 import org.apache.myfaces.tobago.component.SupportsMarkup;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public final class AttributeHandler extends TagHandler {
+  private static final Log LOG = LogFactory.getLog(AttributeHandler.class);
 
   private final TagAttribute name;
 
@@ -59,21 +63,28 @@
     if (ComponentSupport.isNew(parent)) {
       String nameValue = name.getValue(faceletContext);
       if (TobagoConstants.ATTR_RENDERED.equals(nameValue)) {
-        // TODO expression
         if (value.isLiteral()) {
           parent.setRendered(value.getBoolean(faceletContext));
         } else {
           ELAdaptor.setExpression(parent, nameValue, value.getValueExpression(faceletContext, Object.class));
         }
       } else if (TobagoConstants.ATTR_RENDERED_PARTIALLY.equals(nameValue) && parent instanceof UICommand) {
-        // TODO test expression
+        // TODO expression
         ComponentUtil.setRenderedPartially((UICommand) parent, value.getValue());
       } else if (TobagoConstants.ATTR_STYLE_CLASS.equals(nameValue)) {
-        // TODO test expression
+        // TODO expression
         ComponentUtil.setStyleClasses(parent, value.getValue());
-      } else if (TobagoConstants.ATTR_MARKUP.equals(nameValue) && parent instanceof SupportsMarkup) {
-        // TODO test expression
-        ComponentUtil.setMarkup(parent, value.getValue());
+      } else if (TobagoConstants.ATTR_MARKUP.equals(nameValue)) {
+        if (parent instanceof SupportsMarkup) {
+          if (value.isLiteral()) {
+            ComponentUtil.setMarkup(parent, value.getValue());
+          } else {
+            ValueExpression expression = value.getValueExpression(faceletContext, Object.class);
+            ELAdaptor.setExpression(parent, nameValue, expression);
+          }
+        } else {
+          LOG.error("Component is not instanceof SupportsMarkup. Instance is: " + parent.getClass().getName());
+        }
       } else if (parent instanceof EditableValueHolder && TobagoConstants.ATTR_VALIDATOR.equals(nameValue)) {
         MethodExpression methodExpression =  getMethodExpression(faceletContext, null, ComponentUtil.VALIDATOR_ARGS);
         if (methodExpression != null) {

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java?view=diff&rev=566045&r1=566044&r2=566045
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java Wed Aug 15 00:40:13 2007
@@ -398,6 +398,8 @@
           String [] markups  = markup.split(",");
           ((SupportsMarkup) markupComponent).setMarkup(markups);
         }
+      } else {
+        LOG.error("Component did not support Markup " + markupComponent.getClass().getName());
       }
     }
   }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java?view=diff&rev=566045&r1=566044&r2=566045
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java Wed Aug 15 00:40:13 2007
@@ -600,7 +600,7 @@
       }
       return clientId;
     }
-    // TODO log error message if no component founc
+    LOG.error("No Component found for id " + componentId);
     return null;
   }
 

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PanelRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PanelRenderer.java?view=diff&rev=566045&r1=566044&r2=566045
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PanelRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PanelRenderer.java Wed Aug 15 00:40:13 2007
@@ -126,7 +126,7 @@
   }
 
   public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException {
-     String clientId = component.getClientId(facesContext);
+    String clientId = component.getClientId(facesContext);
     TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);
     writer.startElement(HtmlConstants.DIV, component);
     writer.writeClassAttribute();