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 2009/12/23 09:15:59 UTC

svn commit: r893424 - /myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java

Author: bommel
Date: Wed Dec 23 08:15:58 2009
New Revision: 893424

URL: http://svn.apache.org/viewvc?rev=893424&view=rev
Log:
(TOBAGO-810) ensure layoutmanager for UIPage in jsf 1.1

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java?rev=893424&r1=893423&r2=893424&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java Wed Dec 23 08:15:58 2009
@@ -18,12 +18,16 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.myfaces.tobago.component.AbstractUIPage;
 import org.apache.myfaces.tobago.component.OnComponentCreated;
 import org.apache.myfaces.tobago.component.OnComponentPopulated;
+import org.apache.myfaces.tobago.util.FacesVersion;
 
 import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
 import javax.faces.webapp.UIComponentTag;
 import javax.servlet.jsp.JspException;
+import java.io.IOException;
 
 public abstract class TobagoTag extends UIComponentTag {
 
@@ -40,15 +44,32 @@
   }
 
   @Override
+  protected void encodeBegin() throws IOException {
+    // in jsf 1.1 the method component.encodeBegin is called in doEndTag ensure a LayoutManager for UIPage
+    if (getComponentInstance() instanceof AbstractUIPage && !FacesVersion.supports12()) {
+      onComponentPopulated(getComponentInstance());
+    }
+    super.encodeBegin();
+  }
+
+  @Override
   public int doEndTag() throws JspException {
     UIComponent component = getComponentInstance();
     int result = super.doEndTag();
+    // in jsf 1.1 the method component.encodeBegin is called in doEndTag ensure a LayoutManager for UIPage
+    if (!(component instanceof AbstractUIPage && !FacesVersion.supports12())) {
+       onComponentPopulated(component);
+    }
+    return result;
+  }
+
+  private void onComponentPopulated(UIComponent component) {
     if (component instanceof OnComponentPopulated
         && component.getAttributes().get(OnComponentPopulated.MARKER) == null) {
       component.getAttributes().put(OnComponentPopulated.MARKER, Boolean.TRUE);
-      ((OnComponentPopulated) component).onComponentPopulated(getFacesContext());
+      FacesContext facesContext = FacesContext.getCurrentInstance();
+      ((OnComponentPopulated) component).onComponentPopulated(facesContext);
     }
-    return result;
   }
 
   public String[] splitList(String renderers) {