Author: tmjee
Date: Sat Jun 10 11:50:10 2006
New Revision: 413351

URL: http://svn.apache.org/viewvc?rev=413351&view=rev
Log:
WW-1338
  - <saf:div ..> tag should be able to not auto start and depend
    make remote connection only when a topic of interest is received


Added:
    
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp  
 (with props)
Modified:
    
struts/action2/trunk/apps/showcase/src/main/webapp/WEB-INF/classes/struts.properties
    struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/index.jsp
    struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp
    
struts/action2/trunk/core/src/main/java/org/apache/struts/action2/components/Div.java
    struts/action2/trunk/core/src/main/resources/template/ajax/div.ftl

Modified: 
struts/action2/trunk/apps/showcase/src/main/webapp/WEB-INF/classes/struts.properties
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/apps/showcase/src/main/webapp/WEB-INF/classes/struts.properties?rev=413351&r1=413350&r2=413351&view=diff
==============================================================================
--- 
struts/action2/trunk/apps/showcase/src/main/webapp/WEB-INF/classes/struts.properties
 (original)
+++ 
struts/action2/trunk/apps/showcase/src/main/webapp/WEB-INF/classes/struts.properties
 Sat Jun 10 11:50:10 2006
@@ -7,3 +7,6 @@
 #struts.action.extension=jspa
 struts.url.http.port = 8080
 struts.freemarker.manager.classname=customFreemarkerManager
+
+struts.serve.static=true
+struts.serve.static.browserCache=false

Added: 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp?rev=413351&view=auto
==============================================================================
--- 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp 
(added)
+++ 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp 
Sat Jun 10 11:50:10 2006
@@ -0,0 +1,27 @@
+
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="saf" uri="/struts-action" %>
+
+<html>
+<head>
+    <title>Ajax Examples</title>
+    <jsp:include page="/ajax/commonInclude.jsp"/>
+</head>
+
+<body>
+
+<saf:div
+        id="once"
+        theme="ajax"
+        cssStyle="border: 1px solid yellow;"
+        href="/AjaxTest.action"
+        updateFreq="0"
+        delay="0">
+    Initial Content ... should not change</saf:div>
+
+<saf:include value="../footer.jsp"/>
+
+</body>
+</html>
+
+

Propchange: 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/index.jsp
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/index.jsp?rev=413351&r1=413350&r2=413351&view=diff
==============================================================================
--- struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/index.jsp 
(original)
+++ struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotediv/index.jsp 
Sat Jun 10 11:50:10 2006
@@ -40,6 +40,10 @@
         <li>
             <a href="example7.jsp">A div that calls the server, and JS in the 
resulting page is executed</a>
         </li>
+        
+        <li>
+               <a href="example8.jsp">A div that will not update itself 
(updateFreq=0 and delay=0)</a>
+        </li>
 
     </ol>
 

Modified: 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp?rev=413351&r1=413350&r2=413351&view=diff
==============================================================================
--- 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp 
(original)
+++ 
struts/action2/trunk/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp 
Sat Jun 10 11:50:10 2006
@@ -40,6 +40,18 @@
         delay="1000">Initial Content</saf:div>
 <br/><br/>
 
+Fourth Component:
+<saf:div
+          id="four"
+          theme="ajax"
+          cssStyle="border: 1px solid yellow;"
+          href="/AjaxTest.action"
+          listenTopics="myLink3_click"
+          delay="0"
+          updateFreq="0">Initial Content</saf:div>
+<br/><br/>
+
+
 <saf:url id="remoteLink" value   ="/AjaxRemoteLink.action" />
 <saf:url id="testLink" value   ="/AjaxTest.action" />
 
@@ -66,7 +78,7 @@
 
 Remote DIV that is not connected to any remote links:
 <saf:div
-        id="four"
+        id="five"
         cssStyle="border: 1px solid yellow;"
         href="/AjaxTest.action"
         theme="ajax"
@@ -82,6 +94,16 @@
         showErrorTransportText="true"
         errorText="An Error ocurred">Update
 </saf:a>
+<br/><br/>
+
+A Remote link that will update "Fourth Component"
+<saf:a 
+               id="link4"
+               theme="ajax"
+               href="%{remoteLink}"
+               notifyTopics="myLink3_click"
+               showErrorTransportText="true"
+               errorText="An Error Ocurred">Update</saf:a>
 <br/><br/>
 
 <saf:include value="../footer.jsp"/>

Modified: 
struts/action2/trunk/core/src/main/java/org/apache/struts/action2/components/Div.java
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/core/src/main/java/org/apache/struts/action2/components/Div.java?rev=413351&r1=413350&r2=413351&view=diff
==============================================================================
--- 
struts/action2/trunk/core/src/main/java/org/apache/struts/action2/components/Div.java
 (original)
+++ 
struts/action2/trunk/core/src/main/java/org/apache/struts/action2/components/Div.java
 Sat Jun 10 11:50:10 2006
@@ -18,6 +18,9 @@
 package org.apache.struts.action2.components;
 
 import com.opensymphony.xwork.util.OgnlValueStack;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.struts.action2.views.util.UrlHelper;
 
 import javax.servlet.http.HttpServletRequest;
@@ -49,6 +52,9 @@
  * description="Render HTML div providing content from remote call via AJAX"
   */
 public class Div extends RemoteCallUIBean {
+       
+       private static final Log _log = LogFactory.getLog(Div.class);
+       
 
     public static final String TEMPLATE = "div";
     public static final String TEMPLATE_CLOSE = "div-close";
@@ -84,6 +90,22 @@
             addParameter("delay", findString(delay));
         } else {
             addParameter("delay", "0");
+        }
+        
+        String tmpUpdateFreq = (String) getParameters().get("delay");
+        String tmpDelay = (String) getParameters().get("updateFreq");
+        try {
+               int _updateFreq = Integer.parseInt(tmpUpdateFreq);
+               int _delay = Integer.parseInt(tmpDelay);
+               
+               if (_updateFreq <= 0 && _delay <= 0) {
+                       addParameter("autoStart", "false");
+               }
+        }
+        catch(NumberFormatException e) {
+               // too bad, invalid updateFreq or delay provided, we
+               // can't determine autoStart mode.
+               _log.info("error while parsing updateFreq ["+tmpUpdateFreq+"] 
or delay ["+tmpDelay+"] to integer, cannot determine autoStart mode", e);
         }
 
         if (loadingText != null) {

Modified: struts/action2/trunk/core/src/main/resources/template/ajax/div.ftl
URL: 
http://svn.apache.org/viewvc/struts/action2/trunk/core/src/main/resources/template/ajax/div.ftl?rev=413351&r1=413350&r2=413351&view=diff
==============================================================================
--- struts/action2/trunk/core/src/main/resources/template/ajax/div.ftl 
(original)
+++ struts/action2/trunk/core/src/main/resources/template/ajax/div.ftl Sat Jun 
10 11:50:10 2006
@@ -10,7 +10,8 @@
        <#if 
parameters.updateFreq?exists>refresh='${parameters.updateFreq}'</#if>
        <#if 
parameters.listenTopics?exists>listenTopics='${parameters.listenTopics}'</#if>
        <#if 
parameters.afterLoading?exists>onLoad='${parameters.afterLoading}'</#if>
-
+       <#if 
parameters.autoStart?exists>autoStart='${parameters.autoStart}'</#if>
+       
 <#if parameters.tabindex?exists>
  tabindex="${parameters.tabindex?html}"<#rt/>
 </#if>


Reply via email to