Author: andyhot
Date: Sun Apr 22 18:15:33 2007
New Revision: 531308

URL: http://svn.apache.org/viewvc?view=rev&rev=531308
Log:
Support adding status messages to an XHR response. No changes yet to the 
ResponseBuilder interface, you'll have to cast to DojoAjaxResponseBuilder to 
use this for now

Modified:
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java?view=diff&rev=531308&r1=531307&r2=531308
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
 Sun Apr 22 18:15:33 2007
@@ -69,6 +69,8 @@
     private List _parts = new ArrayList();
     // Map of specialized writers, like scripts
     private Map _writers = new HashMap();
+    // List of status messages.
+    private List _statusMessages;
     
     private IRequestCycle _cycle;
     
@@ -492,6 +494,30 @@
         
         writer.end();
     }
+        
+    public void addStatus(IMarkupWriter normalWriter, String text)
+    {
+        addStatus(normalWriter, text, "info");
+    }  
+    
+    public void addStatus(IMarkupWriter normalWriter, String text, String 
category)
+    {
+        if (_statusMessages==null)
+        {
+            _statusMessages = new ArrayList();
+        }
+        _statusMessages.add(category);
+        _statusMessages.add(text);        
+    }
+    
+    void writeStatusMessages() {
+        for (int i=0; i<_statusMessages.size(); i+=2)
+        {
+            IMarkupWriter writer = getWriter((String) _statusMessages.get(i), 
"status");
+            writer.printRaw((String) _statusMessages.get(i+1));                
+        }
+        _statusMessages = null;            
+    }
     
     /** 
      * [EMAIL PROTECTED]
@@ -632,6 +658,8 @@
     void endResponse()
     {
         // write out captured content
+        if (_statusMessages != null)        
+            writeStatusMessages();
         
         Iterator keys = _writers.keySet().iterator();
         String buffer = null;


Reply via email to