Author: andyhot
Date: Sat Jan 19 18:46:31 2008
New Revision: 613500

URL: http://svn.apache.org/viewvc?rev=613500&view=rev
Log:
TAPESTRY-2065: Document addStatusMessage

Modified:
    tapestry/tapestry4/trunk/src/site/apt/ajax/eventlistener.apt
    tapestry/tapestry4/trunk/src/site/apt/ajax/responsebuilder.apt

Modified: tapestry/tapestry4/trunk/src/site/apt/ajax/eventlistener.apt
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/apt/ajax/eventlistener.apt?rev=613500&r1=613499&r2=613500&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/apt/ajax/eventlistener.apt (original)
+++ tapestry/tapestry4/trunk/src/site/apt/ajax/eventlistener.apt Sat Jan 19 
18:46:31 2008
@@ -13,7 +13,7 @@
   Tapestry 4.1. It offers an awful lot,  and is based around the functionality 
now familiar to many
   in {{{http://dojotoolkit.org}dojo}}'s 
{{{http://dojotoolkit.org/book/dojo-book-0-4/part-5-connecting-pieces/event-system-0}event
 API}}.
   
-  <<See also:>> 
{{{../tapestry-annotations/index.html#EventListener}EventListener}} core 
annotation documentation.,  
{{{http://www.quirksmode.org/js/introevents.html}Quircksmode}}
+  <<See also:>> 
{{{../tapestry-annotations/index.html#EventListener}EventListener}} core 
annotation documentation.,  
{{{http://www.quirksmode.org/js/introevents.html}Quirksmode}}
   
   At its core this new annotation allows you to bind client side events to 
page/component 
   {{{../usersguide/listenermethods.html}listener}} methods. "Client Side" 
events can have a lot

Modified: tapestry/tapestry4/trunk/src/site/apt/ajax/responsebuilder.apt
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/apt/ajax/responsebuilder.apt?rev=613500&r1=613499&r2=613500&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/apt/ajax/responsebuilder.apt (original)
+++ tapestry/tapestry4/trunk/src/site/apt/ajax/responsebuilder.apt Sat Jan 19 
18:46:31 2008
@@ -54,5 +54,41 @@
   
   Tapestry will correctly manage and render all javascript/form state/etc 
needed, depending on the component 
   type you are requesting an update on. 
+
+* Using ResponseBuilder for sending status messages and triggering client-side 
code
+
+  It is possible to trigger existing client-side code from a java listener 
method. This
+  is  made possible by 
{{{../apidocs/org/apache/tapestry/services/ResponseBuilder.html}ResponseBuilder}}s
 
+  addStatusMessage method.
+
++-----------------------------------------------------------------------
+....
+
[EMAIL PROTECTED](targets = "projectChoose", events = "onValueChanged")
+public void projectSelected(IRequestCycle cycle)
+{
+  cycle.getResponseBuilder().updateComponent("myComponentId");
+  cycle.getResponseBuilder().addStatusMessage(null, "info", "A project was 
selected");
+}
+
+....
++-----------------------------------------------------------------------
   
- 
+  When the client is sent the ajax response, tapestry's javascript will 
'publish' 
+  the status message at the specified topis, i.e. it will execute
+  dojo.event.topic.publish('info','A project was selected') 
+
+  You can take advantage of this behavior in several different ways:
+
+  [[1]] <<existing widgets>> - Dojo's Toaster is an example of a widget that
+  is subscribed to the 'info' topic. Whenever a message is published  there, 
it'll
+  scroll itself into view and display it.
+
+  [[1]] <<create new widgets>> - And making them behave like Toaster.
+
+  [[1]] <<trigger javascript code>> - it's easy to triggger your code whenever
+  a message is published. Here's some javascript that will alert the message:
+
++-----------------------------------------------------------------------
+dojo.event.topic.subscribe('info', function(msg) { alert(msg); });
++-----------------------------------------------------------------------


Reply via email to