Author: craigmcc
Date: Fri Oct  6 21:39:44 2006
New Revision: 453844

URL: http://svn.apache.org/viewvc?view=rev&rev=453844
Log:
Finish implementing the contract of FacesContext.getELContext() by firing
events to interested listeners if we just created a new ELContext.

Modified:
    
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockFacesContext12.java

Modified: 
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockFacesContext12.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockFacesContext12.java?view=diff&rev=453844&r1=453843&r2=453844
==============================================================================
--- 
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockFacesContext12.java
 (original)
+++ 
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockFacesContext12.java
 Fri Oct  6 21:39:44 2006
@@ -17,6 +17,8 @@
 package org.apache.shale.test.mock;
 
 import javax.el.ELContext;
+import javax.el.ELContextEvent;
+import javax.el.ELContextListener;
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.lifecycle.Lifecycle;
@@ -80,11 +82,21 @@
     public ELContext getELContext() {
 
         if (this.elContext == null) {
+
+            // Initialize a new ELContext
             this.elContext = new MockELContext();
             this.elContext.putContext(FacesContext.class, this);
-            // FIXME - Call Application.getELContextListeners() and send event 
if needed
-        }
 
+            // Notify interested listeners that this ELContext was created
+            ELContextListener[] listeners = 
getApplication().getELContextListeners();
+            if ((listeners != null) && (listeners.length > 0)) {
+                ELContextEvent event = new ELContextEvent(this.elContext);
+                for (int i = 0; i < listeners.length; i++) {
+                    listeners[i].contextCreated(event);
+                }
+            }
+
+        }
         return this.elContext;
 
     }


Reply via email to