You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by an...@apache.org on 2007/04/05 12:33:28 UTC

svn commit: r525790 - in /tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib: Contrib.library ajax/AjaxStatus.java ajax/AjaxStatus.jwc ajax/AjaxStatus.script

Author: andyhot
Date: Thu Apr  5 03:33:23 2007
New Revision: 525790

URL: http://svn.apache.org/viewvc?view=rev&rev=525790
Log:
Ajax status component for easy displaying loading messages, e.t.c. when on ajax requests

Added:
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.jwc
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.script
Modified:
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/Contrib.library

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/Contrib.library
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/Contrib.library?view=diff&rev=525790&r1=525789&r2=525790
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/Contrib.library (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/Contrib.library Thu Apr  5 03:33:23 2007
@@ -73,4 +73,5 @@
   <component-type type="ControlledCheckbox" specification-path="form/checkboxes/ControlledCheckbox.jwc"/>
   <component-type type="XTile" specification-path="ajax/XTile.jwc"/>
   <component-type type="Timeout" specification-path="ajax/Timeout.jwc"/>
+  <component-type type="AjaxStatus" specification-path="ajax/AjaxStatus.jwc"/>
 </library-specification>

Added: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.java?view=auto&rev=525790
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.java (added)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.java Thu Apr  5 03:33:23 2007
@@ -0,0 +1,45 @@
+// Copyright 2007 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.
+
+package org.apache.tapestry.contrib.ajax;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.tapestry.IMarkupWriter;
+import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.IScript;
+import org.apache.tapestry.PageRenderSupport;
+import org.apache.tapestry.TapestryUtils;
+import org.apache.tapestry.components.Any;
+
+/**
+ * @since 4.1.2
+ */
+public abstract class AjaxStatus extends Any
+{
+    public abstract IScript getScript();
+    
+    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
+    {
+        // render as if an Any component
+        super.renderComponent(writer, cycle);
+        // then add the script
+        if(!cycle.isRewinding()) {
+            PageRenderSupport pageRenderSupport = TapestryUtils.getPageRenderSupport(cycle, this);
+            Map symbols = new HashMap();
+            symbols.put("id", getClientId());
+            getScript().execute(this, cycle, pageRenderSupport, symbols);
+        }
+    }
+}

Added: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.jwc
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.jwc?view=auto&rev=525790
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.jwc (added)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.jwc Thu Apr  5 03:33:23 2007
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+   Copyright 2007 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.
+-->
+<!DOCTYPE component-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
+    "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
+<component-specification class="org.apache.tapestry.contrib.ajax.AjaxStatus">
+    <description>
+        An extension of the Any component that defines an html node that will be shown 
+        when ajax requests are in progress, and hidden when those requests end.
+    </description>
+    
+    <parameter name="element" default-value="ognl:templateTagName" >
+        <description>
+        The element to emulate.
+        </description>
+    </parameter>    
+    
+    <inject property="script" type="script" object="AjaxStatus.script"/>    
+</component-specification>

Added: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.script
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.script?view=auto&rev=525790
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.script (added)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/ajax/AjaxStatus.script Thu Apr  5 03:33:23 2007
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script PUBLIC
+  "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN" 
+  "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
+
+<script>
+    <input-symbol key="id" required="yes" />
+    <body>
+        <unique>
+            dojo.require("tapestry.fx");
+        </unique>
+    </body>
+    <initialization>
+if(tapestry.fx) tapestry.fx.attachAjaxStatus("${id}");
+    </initialization>
+</script>
\ No newline at end of file