You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gm...@apache.org on 2007/01/28 17:50:06 UTC

svn commit: r500825 - in /myfaces/tomahawk/trunk/sandbox: core/src/main/java/org/apache/myfaces/custom/ppr/ core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ examples/src/main/java/org/apache/myfaces/examples/ppr/ examples/src/main/webapp/

Author: gmuellan
Date: Sun Jan 28 08:50:05 2007
New Revision: 500825

URL: http://svn.apache.org/viewvc?view=rev&rev=500825
Log:
added a first implementation of blocking a periodical update during a common request-response cycle

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js
    myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java
    myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java?view=diff&rev=500825&r1=500824&r2=500825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java Sun Jan 28 08:50:05 2007
@@ -101,6 +101,11 @@
             script.append(pprCtrlReference + "=" +
                     MY_FACES_PPR_INIT_CODE + "('" + fi.getFormName() + "',"+ pprGroup.getShowDebugMessages().booleanValue()+");\n");
 
+            if (pprGroup.getPeriodicalUpdate() != null)
+            {
+                script.append(pprCtrlReference + ".registerOnSubmitInterceptor();");
+            }
+
             renderInlineScript(facesContext, pprGroup, script.toString());
         }
 

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js?view=diff&rev=500825&r1=500824&r2=500825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js Sun Jan 28 08:50:05 2007
@@ -27,6 +27,7 @@
 
 org.apache.myfaces.PPRCtrl = function(formId, showDebugMessages)
 {
+    org.apache.myfaces.PPRCtrl.blockPeriodicalUpdateDuringPost = false;
     org.apache.myfaces.PPRCtrl.showDebugMessages = showDebugMessages;
                                 
     if(typeof window.myFacesPartialTriggers == "undefined")
@@ -76,6 +77,22 @@
     }
 };
 
+// registering a function (called before submit) on each form to block periodical refresh during request-response cycle
+
+org.apache.myfaces.PPRCtrl.prototype.registerOnSubmitInterceptor = function()
+{
+    var ppr = this;
+
+   for(var i = 0; i < document.forms.length; i++)
+    {
+        var form = document.forms[i];
+        dojo.event.connect(form, "onsubmit", function(evt) {
+            ppr.doBlockPeriodicalUpdateDuringPost();
+        });
+    }
+};
+
+
 // init function of automatically partial page refresh
 
 org.apache.myfaces.PPRCtrl.prototype.startPeriodicalUpdate = function(refreshTimeout, refreshZoneId)
@@ -85,12 +102,19 @@
     this.doAjaxSubmit(content, refreshTimeout, refreshZoneId);
 };
 
+// blocking periodical update and refreshing viewState
+
+org.apache.myfaces.PPRCtrl.prototype.doBlockPeriodicalUpdateDuringPost = function()
+{
+    org.apache.myfaces.PPRCtrl.blockPeriodicalUpdateDuringPost = true;
+};
+
 
 //Callback Method which handles the AJAX Response
 
 org.apache.myfaces.PPRCtrl.prototype.handleCallback = function(type, data, evt)
 {      
-    if(type == "load")
+    if(type == "load" && !org.apache.myfaces.PPRCtrl.blockPeriodicalUpdateDuringPost)
     {
 	    var componentUpdates = data.getElementsByTagName("component");
 	    var componentUpdate = null;
@@ -222,7 +246,7 @@
         formNode: this.form
     });
 
-    if(refreshTimeout)
+    if(refreshTimeout && !org.apache.myfaces.PPRCtrl.blockPeriodicalUpdateDuringPost)
     {
         window.setTimeout(function() {
             ppr.startPeriodicalUpdate(refreshTimeout, refreshZoneId);

Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java?view=diff&rev=500825&r1=500824&r2=500825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java Sun Jan 28 08:50:05 2007
@@ -64,6 +64,19 @@
 		return "test";
 	}
 
+    public String doTimeConsumingStuff()
+    {
+        try
+        {
+            Thread.sleep(7000L);
+        }
+        catch (InterruptedException e)
+        {
+            e.printStackTrace();  
+        }
+        return null;
+    }
+
     public List getPeriodicalUpdatedValues()
     {
         List refreshList = new ArrayList();

Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp?view=diff&rev=500825&r1=500824&r2=500825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp Sun Jan 28 08:50:05 2007
@@ -67,7 +67,7 @@
             <h:panelGrid>
                 <h:outputText value="List of updated addresses after 2000ms:"/>
 
-                <s:pprPanelGroup id="periodicalUpdatedArea" periodicalUpdate="2000">
+                <s:pprPanelGroup id="periodicalUpdatedArea" periodicalUpdate="2000" showDebugMessages="false">
                     <t:dataTable var="address" value="#{pprExampleBean.periodicalUpdatedValues}">
                         <t:column>
                             <f:facet name="header">
@@ -101,7 +101,7 @@
 
             <h:panelGrid>
                 <h:outputText value="List of updated addresses after 5000ms: (another ppr-group)"/>
-                <s:pprPanelGroup id="periodicalUpdatedArea2" periodicalUpdate="5000">
+                <s:pprPanelGroup id="periodicalUpdatedArea2" periodicalUpdate="5000" showDebugMessages="false">
                 <t:dataTable var="address" value="#{pprExampleBean.periodicalUpdatedValues}">
                     <t:column>
                         <f:facet name="header">
@@ -118,6 +118,8 @@
                 </t:dataTable>
                 </s:pprPanelGroup>
             </h:panelGrid>
+            
+            <h:commandButton action="#{pprExampleBean.doTimeConsumingStuff}" value="test blocking of auto refresh"/>
 
         </h:panelGrid>
     </h:form>