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 2006/10/24 10:11:47 UTC
svn commit: r467270 - in /myfaces/tomahawk/trunk/sandbox:
core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/
core/src/main/java/org/apache/myfaces/custom/ppr/
core/src/main/resources/org/apache/myfaces/custom/ppr/resource/
core/src/main/...
Author: gmuellan
Date: Tue Oct 24 01:11:45 2006
New Revision: 467270
URL: http://svn.apache.org/viewvc?view=rev&rev=467270
Log:
resolved http://issues.apache.org/jira/browse/TOMAHAWK-751 - Enhancing PPRGroup - periodicalUpdate for refreshing a partial page automatically
Added:
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp
Modified:
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/AutoUpdateDataTable.java
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js
myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld
myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/ppr/PPRExampleBean.java
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/AutoUpdateDataTable.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/AutoUpdateDataTable.java?view=diff&rev=467270&r1=467269&r2=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/AutoUpdateDataTable.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/autoupdatedatatable/AutoUpdateDataTable.java Tue Oct 24 01:11:45 2006
@@ -30,6 +30,7 @@
* @version $Revision: $ $Date: $
* <p/>
* $Log: $
+ * @deprecated: Use periodicalUpdate mechanism of partial page rendering instead
*/
public class AutoUpdateDataTable extends HtmlDataTable implements AjaxComponent{
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java?view=diff&rev=467270&r1=467269&r2=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java Tue Oct 24 01:11:45 2006
@@ -31,8 +31,9 @@
public static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.PPRPanelGroup";
private String _partialTriggers;
-
- private String _partialTriggerPattern;
+ private Integer _periodicalUpdate;
+
+ private String _partialTriggerPattern;
private String _inlineLoadingMessage;
@@ -57,8 +58,20 @@
{
this._partialTriggers = partialTriggers;
}
-
- public String getPartialTriggerPattern()
+
+ public Integer getPeriodicalUpdate()
+ {
+ if (_periodicalUpdate != null) return _periodicalUpdate;
+ ValueBinding vb = getValueBinding("periodicalUpdate");
+ return (vb != null) ? (Integer) vb.getValue(getFacesContext()) : null;
+ }
+
+ public void setPeriodicalUpdate(Integer periodicalUpdate)
+ {
+ _periodicalUpdate = periodicalUpdate;
+ }
+
+ public String getPartialTriggerPattern()
{
if (_partialTriggerPattern != null) return _partialTriggerPattern;
ValueBinding vb = getValueBinding("partialTriggerPattern");
@@ -89,15 +102,17 @@
super.restoreState(context, values[0]);
_partialTriggers = (String) values[1];
_partialTriggerPattern = (String) values[2];
+ _periodicalUpdate = (Integer) values[3];
- }
+ }
public Object saveState(FacesContext context)
{
- Object[] values = new Object[3];
+ Object[] values = new Object[4];
values[0] = super.saveState(context);
values[1] = _partialTriggers;
values[2] = _partialTriggerPattern;
- return values;
+ values[3] = _periodicalUpdate;
+ return values;
}
}
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=467270&r1=467269&r2=467270
==============================================================================
--- 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 Tue Oct 24 01:11:45 2006
@@ -53,14 +53,14 @@
private static final String MY_FACES_PPR_INIT_CODE = "new org.apache.myfaces.PPRCtrl";
- public void encodeJavaScript(FacesContext facesContext, PPRPanelGroup uiComponent) throws IOException
+ public void encodeJavaScript(FacesContext facesContext, PPRPanelGroup pprGroup) throws IOException
{
if (facesContext.getExternalContext().getRequestMap().containsKey(PPR_RESPONSE))
{
return;
}
- FormInfo fi = _ComponentUtils.findNestingForm(uiComponent, facesContext);
+ FormInfo fi = _ComponentUtils.findNestingForm(pprGroup, facesContext);
if (fi == null)
{
throw new FacesException("PPRPanelGroup must be embedded in an form.");
@@ -70,11 +70,11 @@
{
facesContext.getExternalContext().getRequestMap().put(PPR_INITIALIZED, Boolean.TRUE);
- String javascriptLocation = (String) uiComponent.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
+ String javascriptLocation = (String) pprGroup.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
AddResource addResource = AddResourceFactory.getInstance(facesContext);
- DojoUtils.addMainInclude(facesContext, uiComponent, javascriptLocation, new DojoConfig());
- DojoUtils.addRequire(facesContext, uiComponent, "dojo.io.*");
- DojoUtils.addRequire(facesContext, uiComponent, "dojo.event.*");
+ DojoUtils.addMainInclude(facesContext, pprGroup, javascriptLocation, new DojoConfig());
+ DojoUtils.addRequire(facesContext, pprGroup, "dojo.io.*");
+ DojoUtils.addRequire(facesContext, pprGroup, "dojo.event.*");
addResource.addInlineScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, MY_FACES_PPR_INITIALIZED);
addResource.addJavaScriptAtPosition(facesContext,
@@ -91,26 +91,34 @@
"." +
fi.getFormName(),
Boolean.TRUE);
- writeInlineScript(facesContext, uiComponent,
- "document.getElementById('" +
+
+ renderInlineScript(facesContext, pprGroup,
+ "dojo.byId('" +
fi.getFormName() +
"').myFacesPPRCtrl =" +
MY_FACES_PPR_INIT_CODE + "('" + fi.getFormName() + "');");
}
+ String clientId = pprGroup.getClientId(facesContext);
+
+ if (pprGroup.getPeriodicalUpdate() != null)
+ {
+ String script = "dojo.byId('"+ fi.getFormName() + "').myFacesPPRCtrl.startPeriodicalUpdate("+ pprGroup.getPeriodicalUpdate() +",'"+ clientId +"');";
+
+ renderInlineScript(facesContext, pprGroup, script);
+ }
String partialTriggerId;
String partialTriggerClientId;
UIComponent partialTriggerComponent;
- String partialTriggers = uiComponent.getPartialTriggers();
- String clientId = uiComponent.getClientId(facesContext);
-
- String partialTriggerPattern = uiComponent.getPartialTriggerPattern();
+ String partialTriggers = pprGroup.getPartialTriggers();
+
+ String partialTriggerPattern = pprGroup.getPartialTriggerPattern();
if(partialTriggerPattern != null && partialTriggerPattern.trim().length()>0)
{
- writeInlineScript(facesContext, uiComponent,
- "document.getElementById('" +
+ renderInlineScript(facesContext, pprGroup,
+ "dojo.byId('" +
fi.getFormName() +
"').myFacesPPRCtrl." +
ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION +
@@ -121,12 +129,12 @@
"');");
}
- String inlineLoadingMessage = uiComponent.getInlineLoadingMessage();
+ String inlineLoadingMessage = pprGroup.getInlineLoadingMessage();
if(inlineLoadingMessage!= null && inlineLoadingMessage.trim().length()>0)
{
- writeInlineScript(facesContext, uiComponent,
- "document.getElementById('" +
+ renderInlineScript(facesContext, pprGroup,
+ "dojo.byId('" +
fi.getFormName() +
"').myFacesPPRCtrl." +
ADD_INLINE_LOADING_MESSAGE_FUNCTION +
@@ -143,7 +151,7 @@
while (st.hasMoreTokens())
{
partialTriggerId = st.nextToken();
- partialTriggerComponent = uiComponent.findComponent(partialTriggerId);
+ partialTriggerComponent = pprGroup.findComponent(partialTriggerId);
if(partialTriggerComponent == null)
{
partialTriggerComponent = FacesContext.getCurrentInstance().getViewRoot().findComponent(partialTriggerId);
@@ -151,8 +159,8 @@
if (partialTriggerComponent != null)
{
partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
- writeInlineScript(facesContext, uiComponent,
- "document.getElementById('" +
+ renderInlineScript(facesContext, pprGroup,
+ "dojo.byId('" +
fi.getFormName() +
"').myFacesPPRCtrl." +
ADD_PARTIAL_TRIGGER_FUNCTION +
@@ -171,8 +179,7 @@
}
}
}
-
- }
+ }
public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException
{
@@ -190,10 +197,9 @@
{
PPRPanelGroup pprGroup = (PPRPanelGroup) uiComponent;
- if ((pprGroup.getPartialTriggers() != null &&
- pprGroup.getPartialTriggers().length() > 0) ||
- (pprGroup.getPartialTriggerPattern() != null &&
- pprGroup.getPartialTriggerPattern().length() > 0))
+ if ((pprGroup.getPartialTriggers() != null && pprGroup.getPartialTriggers().length() > 0)
+ || (pprGroup.getPartialTriggerPattern() != null && pprGroup.getPartialTriggerPattern().length() > 0)
+ || pprGroup.getPeriodicalUpdate() != null)
{
encodeJavaScript(facesContext, pprGroup);
}
@@ -209,7 +215,7 @@
* @param script The script to be written.
* @throws IOException A forwarded exception from the underlying renderer.
*/
- private static void writeInlineScript(FacesContext facesContext, UIComponent component, String script) throws IOException
+ private static void renderInlineScript(FacesContext facesContext, UIComponent component, String script) throws IOException
{
ResponseWriter writer = facesContext.getResponseWriter();
writer.startElement(HTML.SCRIPT_ELEM, component);
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java?view=diff&rev=467270&r1=467269&r2=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java Tue Oct 24 01:11:45 2006
@@ -30,7 +30,9 @@
private String _inlineLoadingMessage;
- public String getComponentType()
+ private String _periodicalUpdate;
+
+ public String getComponentType()
{
return PPRPanelGroup.COMPONENT_TYPE;
}
@@ -44,7 +46,8 @@
{
super.release();
_partialTriggers = null;
- }
+ _periodicalUpdate = null;
+ }
protected void setProperties(UIComponent component)
{
@@ -53,7 +56,8 @@
setStringProperty(component, "partialTriggers", _partialTriggers);
setStringProperty(component, "partialTriggerPattern", _partialTriggerPattern);
setStringProperty(component, "inlineLoadingMessage", _inlineLoadingMessage);
- }
+ setIntegerProperty(component,"periodicalUpdate", _periodicalUpdate);
+ }
public String getPartialTriggers()
{
@@ -80,7 +84,9 @@
public void setInlineLoadingMessage(String loadingMessage) {
_inlineLoadingMessage = loadingMessage;
}
-
-
+ public void setPeriodicalUpdate(String periodicalUpdate)
+ {
+ _periodicalUpdate = periodicalUpdate;
+ }
}
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=467270&r1=467269&r2=467270
==============================================================================
--- 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 Tue Oct 24 01:11:45 2006
@@ -23,7 +23,7 @@
org.apache.myfaces.PPRCtrl = function(formId)
{
- if(typeof window.myFacesPartialTriggers == "undefined")
+ if(typeof window.myFacesPartialTriggers == "undefined")
{
window.myFacesPartialTriggers = new Array;
}
@@ -36,6 +36,7 @@
window.myFacesInlineLoadingMessage = new Array;
}
this.replaceFormSubmitFunction(formId);
+
this.addButtonOnClickHandlers();
}
@@ -54,7 +55,7 @@
//Method for JSF Components to register their Partial Triggers
org.apache.myfaces.PPRCtrl.prototype.addPartialTrigger= function(inputElementId, refreshZoneId)
-{
+{
if (window.myFacesPartialTriggers[inputElementId] === undefined)
{
window.myFacesPartialTriggers[inputElementId] = refreshZoneId;
@@ -68,6 +69,16 @@
}
};
+// starting point of automatically partial page refresh
+
+org.apache.myfaces.PPRCtrl.prototype.startPeriodicalUpdate = function(refreshTimeout, refreshZoneId)
+{
+ var content = new Array;
+ content["org.apache.myfaces.PPRCtrl.triggeredComponents"] = refreshZoneId;
+ this.doAjaxSubmit(content, refreshTimeout, refreshZoneId);
+};
+
+
//Callback Method which handles the AJAX Response
org.apache.myfaces.PPRCtrl.prototype.handleCallback = function(type, data, evt)
@@ -80,7 +91,7 @@
for (var i = 0; i < componentUpdates.length; i++)
{
componentUpdate = componentUpdates[i];
- domElement = document.getElementById(componentUpdate.getAttribute("id"));
+ domElement = dojo.byId(componentUpdate.getAttribute("id"));
//todo - doesn't work with tables in IE
domElement.innerHTML = componentUpdate.firstChild.data;
}
@@ -99,7 +110,8 @@
{
var form = formArray[i];
var domElement = form.elements['javax.faces.ViewState'];
- domElement.value = stateUpdate.getAttribute('value');
+ if(domElement)
+ domElement.value = stateUpdate.getAttribute('value');
}
}
else
@@ -150,31 +162,8 @@
if(triggeredComponents !=null)
{
this.displayInlineLoadingMessages(triggeredComponents);
- var requestUri = "";
- var formAction = this.form.attributes["action"];
- if(formAction == null)
- {
- requestUri = location.href;
- }
- else
- {
- requestUri = formAction.nodeValue;
- }
-
-
content["org.apache.myfaces.PPRCtrl.triggeredComponents"]=triggeredComponents;
- content["org.apache.myfaces.PPRCtrl.ajaxRequest"]="true";
- dojo.io.bind({
- url : requestUri,
- method : "post",
- useCache: false,
- content : content,
- handle : this.handleCallback,
- mimetype: "text/xml",
- transport: "XMLHTTPTransport",
- formNode: this.form
- });
- return false;
+ return this.doAjaxSubmit(content, null, null)
}
else
{
@@ -187,6 +176,43 @@
}
}
+org.apache.myfaces.PPRCtrl.prototype.doAjaxSubmit = function(content, refreshTimeout, refreshZoneId)
+{
+ var ppr = this;
+ var requestUri = "";
+ var formAction = this.form.attributes["action"];
+ if(formAction == null)
+ {
+ requestUri = location.href;
+ }
+ else
+ {
+ requestUri = formAction.nodeValue;
+ }
+
+ content["org.apache.myfaces.PPRCtrl.ajaxRequest"]="true";
+
+ dojo.io.bind({
+ url : requestUri,
+ method : "post",
+ useCache: false,
+ content : content,
+ handle : this.handleCallback,
+ mimetype: "text/xml",
+ transport: "XMLHTTPTransport",
+ formNode: this.form
+ });
+
+ if(refreshTimeout)
+ {
+ window.setTimeout(function() {
+ ppr.startPeriodicalUpdate(refreshTimeout, refreshZoneId);
+ }, refreshTimeout)
+ }
+
+ return false;
+};
+
//This Method replaces the content of the PPRPanelGroups which have
//an inline-loading-message set with the loading message
@@ -202,7 +228,7 @@
{
if(typeof window.myFacesInlineLoadingMessage[componentIds[index]] != "undefined")
{
- domElement = document.getElementById(componentIds[index]);
+ domElement = dojo.byId(componentIds[index]);
if(domElement != null)
{
domElement.innerHTML = window.myFacesInlineLoadingMessage[componentIds[index]];
@@ -223,7 +249,7 @@
org.apache.myfaces.PPRCtrl.prototype.replaceFormSubmitFunction = function(formId)
{
- this.form = document.getElementById(formId);
+ this.form = dojo.byId(formId);
if(typeof this.form == "undefined" || this.form.tagName.toLowerCase() != "form")
{
alert("MyFaces PPR Engine: Form with id:" + formId + " not found!");
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld?view=diff&rev=467270&r1=467269&r2=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld Tue Oct 24 01:11:45 2006
@@ -1163,16 +1163,24 @@
<type>java.lang.String</type>
<description>Regular Expression If the client Id of a submitting Component matches this Pattern the corresponding pprPanelGroup is updated via AJAX</description>
</attribute>
- <attribute>
+ <attribute>
<name>inlineLoadingMessage</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
<type>java.lang.String</type>
<description>If this attribute is set the content of the PPRPanelGroup will be replaced by the provided
- Loading-Message during partial update</description>
+ Loading-Message during partial update</description>
</attribute>
-
- </tag>
+ <attribute>
+ <name>periodicalUpdate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.Integer</type>
+ <description>Does a periodical refresh of the partial page inside the ppr group. In milliseconds.
+ No partialTriggers are needed.
+ </description>
+ </attribute>
+ </tag>
<tag>
<name>layoutingContentPane</name>
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=467270&r1=467269&r2=467270
==============================================================================
--- 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 Tue Oct 24 01:11:45 2006
@@ -16,7 +16,11 @@
package org.apache.myfaces.examples.ppr;
+import org.apache.myfaces.examples.inputSuggestAjax.Address;
+
import javax.faces.event.ValueChangeEvent;
+import java.util.List;
+import java.util.ArrayList;
/**
* @author Ernst Fastl
@@ -56,8 +60,22 @@
setMessage("testAction called");
return "test";
}
-
- public void testValueChangeListener(ValueChangeEvent event){
+
+ public List getPeriodicalUpdatedValues()
+ {
+ List refreshList = new ArrayList();
+
+ for (int i = 0; i < 10; i++)
+ {
+ Address address = new Address((int) (Math.random()*100), "dummyStreet", "fakeCity",
+ (int) (Math.random()*10), "noState");
+
+ refreshList.add(address);
+ }
+ return refreshList;
+ }
+
+ public void testValueChangeListener(ValueChangeEvent event){
_message = "Value Change to: ";
if(event.getNewValue()!=null)
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp?view=diff&rev=467270&r1=467269&r2=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp Tue Oct 24 01:11:45 2006
@@ -22,7 +22,8 @@
</h:panelGrid>
<h:outputText value="Partial Page Rendering"/>
<h:panelGrid style="padding-left:25px">
- <h:outputLink value="pprPanelGroup.jsf" ><f:verbatim>PPRPanelGroup - Panelgroup which gets refreshed by AJAX-Calls</f:verbatim></h:outputLink>
+ <h:outputLink value="pprPanelGroup.jsf" ><f:verbatim>PPRPanelGroup - parts of a page are getting manually refreshed by AJAX-Calls</f:verbatim></h:outputLink>
+ <h:outputLink value="pprPanelGroupPeriodicalUpdate.jsf" ><f:verbatim>PPRPanelGroup - parts of a page are getting automatically refreshed by AJAX-Calls (through periodic intervals)</f:verbatim></h:outputLink>
</h:panelGrid>
<h:outputText value="Resource Serving"/>
<h:panelGrid style="padding-left:25px">
Added: 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=auto&rev=467270
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp (added)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/pprPanelGroupPeriodicalUpdate.jsp Tue Oct 24 01:11:45 2006
@@ -0,0 +1,130 @@
+<%@ page session="false" contentType="text/html;charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://myfaces.apache.org/sandbox" prefix="s"%>
+<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
+
+<!--
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+//-->
+
+<html>
+
+<%@ include file="inc/head.inc"%>
+
+
+<body>
+<h1>PPR Example - PeriodicalUpdate</h1>
+Automatically page refresh through periodic updates
+<f:view>
+
+ <h:form id="mainform">
+
+
+ <t:messages id="messageList" styleClass="error" showDetail="true"
+ summaryFormat="{0} " />
+
+ <h:panelGrid columns="5">
+
+ <h:panelGrid>
+ <h:outputText value="List of addresses (not refreshed):"/>
+
+ <t:dataTable var="address" value="#{pprExampleBean.periodicalUpdatedValues}">
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="streetnumber"/>
+ </f:facet>
+ <h:outputText value="#{address.streetNumber}"/>
+ </t:column>
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="streetname"/>
+ </f:facet>
+ <h:outputText value="#{address.streetName}"/>
+ </t:column>
+ </t:dataTable>
+ </h:panelGrid>
+
+ <h:panelGroup/>
+
+ <h:panelGrid>
+ <h:outputText value="List of updated addresses after 2000ms:"/>
+
+ <s:pprPanelGroup id="periodicalUpdatedArea" periodicalUpdate="2000">
+ <t:dataTable var="address" value="#{pprExampleBean.periodicalUpdatedValues}">
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="streetnumber"/>
+ </f:facet>
+ <h:outputText value="#{address.streetNumber}"/>
+ </t:column>
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="streetname"/>
+ </f:facet>
+ <h:outputText value="#{address.streetName}"/>
+ </t:column>
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="zip"/>
+ </f:facet>
+ <h:outputText value="#{address.zip}"/>
+ </t:column>
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="state"/>
+ </f:facet>
+ <h:outputText value="#{address.state}"/>
+ </t:column>
+ </t:dataTable>
+ </s:pprPanelGroup>
+ </h:panelGrid>
+
+ <h:panelGroup/>
+
+ <h:panelGrid>
+ <h:outputText value="List of updated addresses after 5000ms: (another ppr-group)"/>
+ <s:pprPanelGroup id="periodicalUpdatedArea2" periodicalUpdate="5000">
+ <t:dataTable var="address" value="#{pprExampleBean.periodicalUpdatedValues}">
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="zip"/>
+ </f:facet>
+ <h:outputText value="#{address.zip}"/>
+ </t:column>
+ <t:column>
+ <f:facet name="header">
+ <h:outputText value="state"/>
+ </f:facet>
+ <h:outputText value="#{address.state}"/>
+ </t:column>
+ </t:dataTable>
+ </s:pprPanelGroup>
+ </h:panelGrid>
+
+ </h:panelGrid>
+ </h:form>
+
+
+</f:view>
+
+<%@include file="inc/page_footer.jsp"%>
+
+</body>
+
+</html>
+