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 2009/10/29 17:23:58 UTC

svn commit: r831015 - in /myfaces/tobago/trunk: core/src/main/java/org/apache/myfaces/tobago/ core/src/main/java/org/apache/myfaces/tobago/component/ core/src/main/java/org/apache/myfaces/tobago/internal/taglib/ core/src/main/java/org/apache/myfaces/to...

Author: lofwyr
Date: Thu Oct 29 16:23:56 2009
New Revision: 831015

URL: http://svn.apache.org/viewvc?rev=831015&view=rev
Log:
TOBAGO-810: New interface OnComponentPopulated

Added:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/util/FacesVersion.java
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java   (contents, props changed)
      - copied, changed from r829789, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/OnComponentCreated.java
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentPopulated.java
Removed:
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/OnComponentCreated.java
Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/TobagoConstants.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIData.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIMessages.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPage.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPanel.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUISheetLayout.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroup.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIWizard.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/CreateComponentUtils.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/internal/taglib/TobagoTag.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java
    myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/component/GridLayoutManagerUnitTest.java
    myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java
    myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/DateExtensionHandler.java
    myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java
    myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/TobagoELTag.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/TobagoConstants.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/TobagoConstants.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/TobagoConstants.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/TobagoConstants.java Thu Oct 29 16:23:56 2009
@@ -22,7 +22,7 @@
  * @see org.apache.myfaces.tobago.component.Facets
  * @see org.apache.myfaces.tobago.component.RendererTypes
  * @see org.apache.myfaces.tobago.component.UICommandBase
- * @see org.apache.myfaces.tobago.OnComponentCreated
+ * @see org.apache.myfaces.tobago.component.OnComponentCreated
  * @see org.apache.myfaces.tobago.renderkit.HtmlUtils
  * @deprecated
  */

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIData.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIData.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIData.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIData.java Thu Oct 29 16:23:56 2009
@@ -19,7 +19,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.ajax.api.AjaxComponent;
 import org.apache.myfaces.tobago.ajax.api.AjaxUtils;
 import org.apache.myfaces.tobago.compat.FacesUtils;
@@ -56,7 +55,7 @@
 import java.util.Map;
 
 public abstract class AbstractUIData extends javax.faces.component.UIData
-    implements SheetStateChangeSource, SortActionSource, AjaxComponent, InvokeOnComponent, OnComponentCreated,
+    implements SheetStateChangeSource, SortActionSource, AjaxComponent, InvokeOnComponent, OnComponentPopulated,
     LayoutContainer, LayoutComponent {
 
   private static final Log LOG = LogFactory.getLog(AbstractUIData.class);
@@ -529,19 +528,19 @@
     return LayoutUtils.findLayoutChildren(this);
   }
 
+  public void onComponentPopulated(FacesContext facesContext, UIComponent component) {
+    if (getLayoutManager() == null) {
+      setLayoutManager(CreateComponentUtils.createAndInitLayout(
+          facesContext, ComponentTypes.SHEET_LAYOUT, RendererTypes.SHEET_LAYOUT));
+    }
+  }
+  
   public LayoutManager getLayoutManager() {
     return (LayoutManager) getFacet(Facets.LAYOUT);
   }
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
-    // if there is no layout manager set, create one
-    if (getLayoutManager() == null) {
-      FacesContext facesContext = FacesContext.getCurrentInstance();
-      LayoutManager layoutManager = (LayoutManager) CreateComponentUtils.createComponent(
-          facesContext, "org.apache.myfaces.tobago.SheetLayout", RendererTypes.SHEET_LAYOUT);
-      ((OnComponentCreated) layoutManager).onComponentCreated(facesContext, (UILayout) layoutManager);
-      getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
-    }
+  public void setLayoutManager(LayoutManager layoutManager) {
+    getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
   }
 
 // LAYOUT End

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIMessages.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIMessages.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIMessages.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIMessages.java Thu Oct 29 16:23:56 2009
@@ -18,12 +18,10 @@
  */
 
 import org.apache.commons.collections.iterators.SingletonIterator;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.layout.LayoutComponent;
 import org.apache.myfaces.tobago.layout.PixelMeasure;
 
 import javax.faces.application.FacesMessage;
-import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -77,7 +75,7 @@
     return messages;
   }
 
-  public void onComponentCreated(FacesContext facesContext, UIComponent component) {
+  public void onComponentCreated(FacesContext facesContext) {
     // todo: performance
     int count = createMessageList(facesContext).size();
     // todo: is this okay? to set local values?

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPage.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPage.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPage.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPage.java Thu Oct 29 16:23:56 2009
@@ -20,8 +20,6 @@
 import org.apache.commons.collections.KeyValue;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
-import static org.apache.myfaces.tobago.TobagoConstants.SUBCOMPONENT_SEP;
 import org.apache.myfaces.tobago.compat.FacesUtils;
 import org.apache.myfaces.tobago.compat.InvokeOnComponent;
 import org.apache.myfaces.tobago.layout.Box;
@@ -49,8 +47,10 @@
 import java.util.List;
 import java.util.StringTokenizer;
 
+import static org.apache.myfaces.tobago.TobagoConstants.SUBCOMPONENT_SEP;
+
 public abstract class AbstractUIPage extends AbstractUIForm 
-    implements InvokeOnComponent, LayoutContainer, DeprecatedDimension {
+    implements OnComponentPopulated, InvokeOnComponent, LayoutContainer, DeprecatedDimension {
 
   private static final Log LOG = LogFactory.getLog(AbstractUIPage.class);
 
@@ -333,25 +333,27 @@
     return FacesUtils.invokeOnComponent(context, this, clientId, callback);
   }
 
-// LAYOUT Begin
+  public void onComponentPopulated(FacesContext facesContext, UIComponent component) {
+    if (getLayoutManager() == null) {
+      setLayoutManager(CreateComponentUtils.createAndInitLayout(
+          facesContext, ComponentTypes.GRID_LAYOUT, RendererTypes.GRID_LAYOUT));
+    }
+  }
+
+  // LAYOUT Begin
   public List<LayoutComponent> getComponents() {
     return LayoutUtils.findLayoutChildren(this);
   }
 
   public LayoutManager getLayoutManager() {
-    LayoutManager layoutManager = (LayoutManager) getFacet(Facets.LAYOUT);
-    // todo: What is using as default, if nothing is defined?
-    if (layoutManager == null) {
-      FacesContext facesContext = FacesContext.getCurrentInstance();
-      layoutManager = (LayoutManager) CreateComponentUtils.createComponent(
-          facesContext, "org.apache.myfaces.tobago.GridLayout", RendererTypes.GRID_LAYOUT);
-      ((OnComponentCreated) layoutManager).onComponentCreated(facesContext, (UILayout) layoutManager);
-      getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
-    }
-    return layoutManager;
+    return (LayoutManager) getFacet(Facets.LAYOUT);
+  }
+
+  public void setLayoutManager(LayoutManager layoutManager) {
+    getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
   }
 
-// LAYOUT End
+  // LAYOUT End
 
   public abstract Measure getWidth();
 

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPanel.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPanel.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPanel.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIPanel.java Thu Oct 29 16:23:56 2009
@@ -19,17 +19,18 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.layout.LayoutComponent;
 import org.apache.myfaces.tobago.layout.LayoutContainer;
 import org.apache.myfaces.tobago.layout.LayoutManager;
 import org.apache.myfaces.tobago.layout.LayoutUtils;
 
+import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import java.io.IOException;
 import java.util.List;
 
-public abstract class AbstractUIPanel extends UIPanelBase implements LayoutContainer, LayoutComponent {
+public abstract class AbstractUIPanel extends UIPanelBase 
+    implements OnComponentPopulated, LayoutContainer, LayoutComponent {
 
   private static final Log LOG = LogFactory.getLog(AbstractUIPanel.class);
 
@@ -74,21 +75,22 @@
     super.encodeEnd(facesContext);
   }
 
+  public void onComponentPopulated(FacesContext facesContext, UIComponent component) {
+    if (getLayoutManager() == null) {
+      setLayoutManager(CreateComponentUtils.createAndInitLayout(
+          facesContext, ComponentTypes.GRID_LAYOUT, RendererTypes.GRID_LAYOUT));
+    }
+  }
+  
   public List<LayoutComponent> getComponents() {
     return LayoutUtils.findLayoutChildren(this);
   }
 
   public LayoutManager getLayoutManager() {
-    LayoutManager layoutManager = (LayoutManager) getFacet(Facets.LAYOUT);
-    // todo: What is using as default, if nothing is defined?
-    if (layoutManager == null) {
-      FacesContext facesContext = FacesContext.getCurrentInstance();
-      layoutManager = (LayoutManager) CreateComponentUtils.createComponent(
-          facesContext, "org.apache.myfaces.tobago.GridLayout", RendererTypes.GRID_LAYOUT);
-      ((OnComponentCreated) layoutManager).onComponentCreated(facesContext, (UILayout) layoutManager);
-      getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
-    }
-    return layoutManager;
+    return (LayoutManager) getFacet(Facets.LAYOUT);
   }
 
+  public void setLayoutManager(LayoutManager layoutManager) {
+    getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
+  }
 }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUISheetLayout.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUISheetLayout.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUISheetLayout.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUISheetLayout.java Thu Oct 29 16:23:56 2009
@@ -19,7 +19,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.layout.Display;
 import org.apache.myfaces.tobago.layout.Interval;
 import org.apache.myfaces.tobago.layout.IntervalList;
@@ -30,19 +29,13 @@
 import org.apache.myfaces.tobago.layout.LayoutUtils;
 import org.apache.myfaces.tobago.layout.Measure;
 
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-
-public abstract class AbstractUISheetLayout extends UILayout implements LayoutManager, OnComponentCreated {
+public abstract class AbstractUISheetLayout extends UILayout implements LayoutManager {
 
   private static final Log LOG = LogFactory.getLog(AbstractUIGridLayout.class);
 
   private boolean horizontalAuto;
   private boolean verticalAuto;
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
-  }
-
   public void init() {
     for (LayoutComponent component : getLayoutContainer().getComponents()) {
       if (component instanceof LayoutContainer) {

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroup.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroup.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroup.java Thu Oct 29 16:23:56 2009
@@ -19,7 +19,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.ajax.api.AjaxComponent;
 import org.apache.myfaces.tobago.ajax.api.AjaxUtils;
 import org.apache.myfaces.tobago.compat.FacesUtils;
@@ -47,7 +46,7 @@
 import java.util.List;
 
 public abstract class AbstractUITabGroup extends UIPanelBase
-    implements TabChangeSource, ActionSource, AjaxComponent, LayoutContainer, LayoutComponent, OnComponentCreated {
+    implements TabChangeSource, ActionSource, AjaxComponent, LayoutContainer, LayoutComponent, OnComponentPopulated {
 
   private static final Log LOG = LogFactory.getLog(AbstractUITabGroup.class);
 
@@ -293,21 +292,21 @@
 
 
   /**
-   * @since 1.1.0
+   * @since 1.5.0
    */
   public void addActionListener(ActionListener listener) {
     addFacesListener(listener);
   }
 
   /**
-   * @since 1.1.0
+   * @since 1.5.0
    */
   public ActionListener[] getActionListeners() {
     return (ActionListener[]) getFacesListeners(ActionListener.class);
   }
 
   /**
-   * @since 1.1.0
+   * @since 1.5.0
    */
   public void removeActionListener(ActionListener listener) {
     removeFacesListener(listener);
@@ -318,19 +317,19 @@
     return LayoutUtils.findLayoutChildren(this);
   }
 
+  public void onComponentPopulated(FacesContext facesContext, UIComponent component) {
+    if (getLayoutManager() == null) {
+      setLayoutManager(CreateComponentUtils.createAndInitLayout(
+          facesContext, ComponentTypes.TAB_GROUP_LAYOUT, RendererTypes.TAB_GROUP_LAYOUT));
+    }
+  }
+  
   public LayoutManager getLayoutManager() {
     return (LayoutManager) getFacet(Facets.LAYOUT);
   }
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
-    // if there is no layout manager set, create one
-    if (getLayoutManager() == null) {
-      FacesContext facesContext = FacesContext.getCurrentInstance();
-      LayoutManager layoutManager = (LayoutManager) CreateComponentUtils.createComponent(
-          facesContext, "org.apache.myfaces.tobago.TabGroupLayout", RendererTypes.TAB_GROUP_LAYOUT);
-      ((OnComponentCreated) layoutManager).onComponentCreated(facesContext, (UILayout) layoutManager);
-      getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
-    }
+  public void setLayoutManager(LayoutManager layoutManager) {
+    getFacets().put(Facets.LAYOUT, (UILayout) layoutManager);
   }
 
 // LAYOUT End

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUITabGroupLayout.java Thu Oct 29 16:23:56 2009
@@ -19,7 +19,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.layout.Display;
 import org.apache.myfaces.tobago.layout.Interval;
 import org.apache.myfaces.tobago.layout.IntervalList;
@@ -30,19 +29,13 @@
 import org.apache.myfaces.tobago.layout.LayoutUtils;
 import org.apache.myfaces.tobago.layout.Measure;
 
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-
-public abstract class AbstractUITabGroupLayout extends UILayout implements LayoutManager, OnComponentCreated {
+public abstract class AbstractUITabGroupLayout extends UILayout implements LayoutManager {
 
   private static final Log LOG = LogFactory.getLog(AbstractUIGridLayout.class);
 
   private boolean horizontalAuto;
   private boolean verticalAuto;
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
-  }
-
   public void init() {
     for (LayoutComponent component : getLayoutContainer().getComponents()) {
       if (component instanceof LayoutContainer) {

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIWizard.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIWizard.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIWizard.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/AbstractUIWizard.java Thu Oct 29 16:23:56 2009
@@ -17,11 +17,9 @@
  * limitations under the License.
  */
 
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.event.FacesEventWrapper;
 import org.apache.myfaces.tobago.model.Wizard;
 
-import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.el.ValueBinding;
 import javax.faces.event.AbortProcessingException;
@@ -95,7 +93,7 @@
     }
   }
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
+  public void onComponentCreated(FacesContext context) {
     Wizard wizard = getController();
     wizard.register();
     if (getOutcome() != null) {

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentTypes.java Thu Oct 29 16:23:56 2009
@@ -25,8 +25,11 @@
   // TODO: make a complete list.
 
   public static final String COLUMN = "org.apache.myfaces.tobago.Column";
+  public static final String GRID_LAYOUT = "org.apache.myfaces.tobago.GridLayout";
   public static final String OUT = "org.apache.myfaces.tobago.Out";
   public static final String SELECT_BOOLEAN = "org.apache.myfaces.tobago.SelectBoolean";
+  public static final String SHEET_LAYOUT = "org.apache.myfaces.tobago.SheetLayout";
+  public static final String TAB_GROUP_LAYOUT = "org.apache.myfaces.tobago.TabGroupLayout";
 
   private ComponentTypes() {
     // to prevent instantiation

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/CreateComponentUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/CreateComponentUtils.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/CreateComponentUtils.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/CreateComponentUtils.java Thu Oct 29 16:23:56 2009
@@ -19,6 +19,7 @@
 
 import org.apache.myfaces.tobago.internal.taglib.TagUtils;
 import org.apache.myfaces.tobago.layout.Display;
+import org.apache.myfaces.tobago.layout.LayoutManager;
 
 import javax.faces.component.UICommand;
 import javax.faces.component.UIComponent;
@@ -130,4 +131,16 @@
     }
     return checkbox;
   }
+
+  public static LayoutManager createAndInitLayout(FacesContext facesContext, String componentType, String rendererType) {
+    LayoutManager layoutManager = (LayoutManager) CreateComponentUtils.createComponent(
+        facesContext, componentType, rendererType, facesContext.getViewRoot().createUniqueId());
+    if (layoutManager instanceof OnComponentCreated) {
+      ((OnComponentCreated) layoutManager).onComponentCreated(facesContext);
+    }
+    if (layoutManager instanceof OnComponentPopulated) {
+      ((OnComponentPopulated) layoutManager).onComponentPopulated(facesContext);
+    }
+    return layoutManager;
+  }
 }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/UIDatePicker.java Thu Oct 29 16:23:56 2009
@@ -17,7 +17,6 @@
  * limitations under the License.
  */
 
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.renderkit.RendererBase;
 
 import javax.faces.component.UIComponent;
@@ -92,10 +91,10 @@
     super.broadcast(facesEvent);
   }
 
-  public void onComponentCreated(FacesContext context, UIComponent component) {
+  public void onComponentCreated(FacesContext context) {
     Renderer renderer = getRenderer(getFacesContext());
     if (renderer instanceof RendererBase) {
-      ((RendererBase) renderer).onComponentCreated(context, component);
+      ((RendererBase) renderer).onComponentCreated(context, this);
     }
   }
 }

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=831015&r1=831014&r2=831015&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 Thu Oct 29 16:23:56 2009
@@ -18,7 +18,8 @@
  */
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.myfaces.tobago.OnComponentCreated;
+import org.apache.myfaces.tobago.component.OnComponentCreated;
+import org.apache.myfaces.tobago.component.OnComponentPopulated;
 
 import javax.faces.component.UIComponent;
 import javax.faces.webapp.UIComponentTag;
@@ -33,11 +34,25 @@
     if (component instanceof OnComponentCreated
         && component.getAttributes().get(OnComponentCreated.MARKER) == null) {
       component.getAttributes().put(OnComponentCreated.MARKER, Boolean.TRUE);
-      ((OnComponentCreated) component).onComponentCreated(getFacesContext(), getComponentInstance());
+      ((OnComponentCreated) component).onComponentCreated(getFacesContext());
     }
     return result;
   }
 
+  @Override
+  public int doEndTag() throws JspException {
+    int result = super.doEndTag();
+    
+    UIComponent component = getComponentInstance();
+    if (component instanceof OnComponentPopulated
+        && component.getAttributes().get(OnComponentPopulated.MARKER) == null) {
+      component.getAttributes().put(OnComponentPopulated.MARKER, Boolean.TRUE);
+      ((OnComponentPopulated) component).onComponentPopulated(getFacesContext());
+    }
+    
+    return result;
+  }
+
   public String[] splitList(String renderers) {
     return StringUtils.split(renderers, ", ");
   }

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/LayoutContainer.java Thu Oct 29 16:23:56 2009
@@ -25,7 +25,7 @@
 
   LayoutManager getLayoutManager();
 
-//  void setLayoutManager(LayoutManager layoutManager);
+  void setLayoutManager(LayoutManager layoutManager);
 
   Measure getLeftOffset();
 

Added: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/util/FacesVersion.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/util/FacesVersion.java?rev=831015&view=auto
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/util/FacesVersion.java (added)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/util/FacesVersion.java Thu Oct 29 16:23:56 2009
@@ -0,0 +1,64 @@
+package org.apache.myfaces.tobago.util;
+
+import javax.faces.application.Application;
+
+/*
+ * 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.
+ */
+
+public enum FacesVersion {
+
+  VERSION_11,
+  VERSION_12,
+  VERSION_20;
+
+  public static FacesVersion CURRENT;
+
+  static {
+    try {
+      Application.class.getMethod("getExpressionFactory");
+
+      try {
+        Application.class.getMethod("getExceptionHandler");
+
+        CURRENT = VERSION_20;
+
+
+      } catch (NoSuchMethodException e) {
+        CURRENT = VERSION_12;
+      }
+
+    } catch (NoSuchMethodException e) {
+      CURRENT = VERSION_11;
+    }
+  }
+
+  /**
+   * Does the JSF is version 1.2 or higher
+   * @return Supports 1.2 or higher
+   */
+  public static boolean supports12() {
+    return CURRENT == VERSION_12 || CURRENT == VERSION_20;
+  }
+
+  /**
+   * Does the JSF is version 2.0 or higher
+   * @return Supports 2.0 or higher
+   */
+  public static boolean supports20() {
+    return CURRENT == VERSION_20;
+  }
+}

Modified: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/component/GridLayoutManagerUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/component/GridLayoutManagerUnitTest.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/component/GridLayoutManagerUnitTest.java (original)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/component/GridLayoutManagerUnitTest.java Thu Oct 29 16:23:56 2009
@@ -57,7 +57,6 @@
     manager.setColumnSpacing(PixelMeasure.ZERO);
     manager.setRowSpacing(PixelMeasure.ZERO);
     manager.setParent(container);
-    manager.onComponentCreated(null, manager);
     container.setLayoutManager(manager);
 
     container.setWidth(new PixelMeasure(300));
@@ -115,7 +114,6 @@
     manager.setColumnSpacing(PixelMeasure.ZERO);
     manager.setRowSpacing(PixelMeasure.ZERO);
     manager.setParent(container);
-    manager.onComponentCreated(null, manager);
     container.setLayoutManager(manager);
 
     container.setWidth(new PixelMeasure(300));
@@ -177,7 +175,6 @@
     manager.setColumnSpacing(PixelMeasure.ZERO);
     manager.setRowSpacing(PixelMeasure.ZERO);
     manager.setParent(container);
-    manager.onComponentCreated(null, manager);
     container.setLayoutManager(manager);
 
     UIGridLayout subManager = new UIGridLayout();
@@ -186,7 +183,6 @@
     subManager.setColumnSpacing(PixelMeasure.ZERO);
     subManager.setRowSpacing(PixelMeasure.ZERO);
     subManager.setParent(subContainer);
-    subManager.onComponentCreated(null, manager);
     subContainer.setLayoutManager(subManager);
     subContainer.getComponents().add(new MockComponent());
     subContainer.getComponents().add(new MockComponent());
@@ -260,7 +256,6 @@
     manager1.setColumnSpacing(PixelMeasure.ZERO);
     manager1.setRowSpacing(PixelMeasure.ZERO);
     manager1.setParent(container);
-    manager1.onComponentCreated(null, manager1);
     container.setLayoutManager(manager1);
 
     UIGridLayout manager2 = new UIGridLayout();
@@ -269,7 +264,6 @@
     manager2.setColumnSpacing(PixelMeasure.ZERO);
     manager2.setRowSpacing(PixelMeasure.ZERO);
     manager2.setParent(span1);
-    manager2.onComponentCreated(null, manager2);
     span1.setLayoutManager(manager2);
 
     UIGridLayout manager3 = new UIGridLayout();
@@ -278,7 +272,6 @@
     manager3.setColumnSpacing(PixelMeasure.ZERO);
     manager3.setRowSpacing(PixelMeasure.ZERO);
     manager3.setParent(span2);
-    manager3.onComponentCreated(null, manager3);
     span2.setLayoutManager(manager3);
 
     container.setWidth(new PixelMeasure(900));
@@ -347,7 +340,6 @@
     manager.setColumnSpacing(PixelMeasure.ZERO);
     manager.setRowSpacing(PixelMeasure.ZERO);
     manager.setParent(container);
-    manager.onComponentCreated(null, manager);
     container.setLayoutManager(manager);
 
     container.setWidth(new PixelMeasure(800));

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java Thu Oct 29 16:23:56 2009
@@ -21,10 +21,11 @@
 import com.sun.facelets.tag.MetaRuleset;
 import com.sun.facelets.tag.jsf.ComponentConfig;
 import com.sun.facelets.tag.jsf.ComponentHandler;
-import org.apache.myfaces.tobago.OnComponentCreated;
 import org.apache.myfaces.tobago.component.AbstractUIGridLayout;
 import org.apache.myfaces.tobago.component.DeprecatedDimension;
 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.SupportsMarkup;
 import org.apache.myfaces.tobago.event.SheetStateChangeSource;
 import org.apache.myfaces.tobago.event.SortActionSource;
@@ -68,7 +69,15 @@
     if (component instanceof OnComponentCreated
         && component.getAttributes().get(OnComponentCreated.MARKER) == null) {
       component.getAttributes().put(OnComponentCreated.MARKER, Boolean.TRUE);
-      ((OnComponentCreated) component).onComponentCreated(context.getFacesContext(), component);
+      ((OnComponentCreated) component).onComponentCreated(context.getFacesContext());
+    }
+  }
+
+  protected void onComponentPopulated(FaceletContext context, UIComponent component, UIComponent parent) {
+    if (component instanceof OnComponentPopulated
+        && component.getAttributes().get(OnComponentPopulated.MARKER) == null) {
+      component.getAttributes().put(OnComponentPopulated.MARKER, Boolean.TRUE);
+      ((OnComponentPopulated) component).onComponentPopulated(context.getFacesContext());
     }
   }
 }

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/DateExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/DateExtensionHandler.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/DateExtensionHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/DateExtensionHandler.java Thu Oct 29 16:23:56 2009
@@ -20,7 +20,7 @@
 import com.sun.facelets.FaceletContext;
 import com.sun.facelets.tag.jsf.ComponentConfig;
 import com.sun.facelets.tag.jsf.ComponentSupport;
-import org.apache.myfaces.tobago.OnComponentCreated;
+import org.apache.myfaces.tobago.component.OnComponentCreated;
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.component.UIDate;
 import org.apache.myfaces.tobago.component.UIDatePicker;
@@ -53,7 +53,7 @@
       picker.setId(root.createUniqueId());
       if (picker.getAttributes().get(OnComponentCreated.MARKER) == null) {
         picker.getAttributes().put(OnComponentCreated.MARKER, Boolean.TRUE);
-        picker.onComponentCreated(faceletContext.getFacesContext(), picker);
+        picker.onComponentCreated(faceletContext.getFacesContext());
       }
       panel.getChildren().add(picker);
     }

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java Thu Oct 29 16:23:56 2009
@@ -29,6 +29,8 @@
 import org.apache.myfaces.tobago.component.Attributes;
 import org.apache.myfaces.tobago.component.Facets;
 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.RendererTypes;
 import org.apache.myfaces.tobago.component.SupportsMarkup;
 import org.apache.myfaces.tobago.component.UIGridLayout;
@@ -196,8 +198,13 @@
     }
     gridLayout.setRows(getRows());
     gridLayout.setId(root.createUniqueId());
-    gridLayout.onComponentCreated(faceletContext.getFacesContext(), gridLayout);
+    if (gridLayout instanceof OnComponentCreated) {
+      ((OnComponentCreated)gridLayout).onComponentCreated(faceletContext.getFacesContext());
+    }
     panel.getFacets().put(Facets.LAYOUT, gridLayout);
+    if (gridLayout instanceof OnComponentPopulated) {
+      ((OnComponentPopulated)gridLayout).onComponentPopulated(faceletContext.getFacesContext());
+    }
   }
 
   protected MetaRuleset createMetaRuleset(Class aClass) {

Modified: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/TobagoELTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/TobagoELTag.java?rev=831015&r1=831014&r2=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/TobagoELTag.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/TobagoELTag.java Thu Oct 29 16:23:56 2009
@@ -20,7 +20,8 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.myfaces.tobago.OnComponentCreated;
+import org.apache.myfaces.tobago.component.OnComponentCreated;
+import org.apache.myfaces.tobago.component.OnComponentPopulated;
 
 import javax.faces.component.UIComponent;
 import javax.faces.webapp.UIComponentELTag;
@@ -31,16 +32,30 @@
 
   private static final Log LOG = LogFactory.getLog(TobagoELTag.class);
  
-  public int doEndTag() throws JspException {
+  public int doStartTag() throws JspException {
     UIComponent component = getComponentInstance();
     if (component instanceof OnComponentCreated
-        && component.getAttributes().get("org.apache.myfaces.tobago.CREATION_MARKER") == null) {
-      component.getAttributes().put("org.apache.myfaces.tobago.CREATION_MARKER", Boolean.TRUE);
-      ((OnComponentCreated) component).onComponentCreated(getFacesContext(), getComponentInstance());
+        && component.getAttributes().get(OnComponentCreated.MARKER) == null) {
+      component.getAttributes().put(OnComponentCreated.MARKER, Boolean.TRUE);
+      ((OnComponentCreated) component).onComponentCreated(getFacesContext());
     }
     return super.doEndTag();
   }
 
+  @Override
+  public int doEndTag() throws JspException {
+    int result = super.doEndTag();
+    
+    UIComponent component = getComponentInstance();
+    if (component instanceof OnComponentPopulated
+        && component.getAttributes().get(OnComponentCreated.MARKER) == null) {
+      component.getAttributes().put(OnComponentPopulated.MARKER, Boolean.TRUE);
+      ((OnComponentPopulated) component).onComponentPopulated(getFacesContext());
+    }
+    
+    return result;
+  }
+  
   public String[] splitList(String renderers) {
     return StringUtils.split(renderers, ", ");
   }

Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java (from r829789, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/OnComponentCreated.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/OnComponentCreated.java&r1=829789&r2=831015&rev=831015&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/OnComponentCreated.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java Thu Oct 29 16:23:56 2009
@@ -1,4 +1,4 @@
-package org.apache.myfaces.tobago;
+package org.apache.myfaces.tobago.component;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -17,16 +17,11 @@
  * limitations under the License.
  */
 
-import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 
-/*
- * Date: 09.06.2006
- * Time: 15:46:20
- */
 public interface OnComponentCreated {
 
-  String MARKER = "org.apache.myfaces.tobago.CREATION_MARKER";
+  String MARKER = "org.apache.myfaces.tobago.OnComponentCreated.MARKER";
 
-  void onComponentCreated(FacesContext context, UIComponent component);
+  void onComponentCreated(FacesContext facesContext);
 }

Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentCreated.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentPopulated.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentPopulated.java?rev=831015&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentPopulated.java (added)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/component/OnComponentPopulated.java Thu Oct 29 16:23:56 2009
@@ -0,0 +1,27 @@
+package org.apache.myfaces.tobago.component;
+
+/*
+ * 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.
+ */
+
+import javax.faces.context.FacesContext;
+
+public interface OnComponentPopulated {
+
+  String MARKER = "org.apache.myfaces.tobago.component.OnComponentPopulated.MARKER";
+
+  void onComponentPopulated(FacesContext facesContext);
+}
\ No newline at end of file