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>