Author: jmorliaguet
Date: Sat Oct 22 17:38:00 2005
New Revision: 28541

Modified:
   z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py
   z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py
Log:

- we give a chance to portlets to update their data before doing
  the actual rendering.



Modified: z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py
==============================================================================
--- z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py        
(original)
+++ z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py        
Sat Oct 22 17:38:00 2005
@@ -25,7 +25,7 @@
 from zope.publisher.interfaces import IRequest
 
 from cpsskins.browser.negociation.interfaces import INegociation
-from cpsskins.browser.rendering.interfaces import IDisplayData
+from cpsskins.browser.rendering.interfaces import IDisplayData, IUpdateData
 from cpsskins.configuration.interfaces import IRegistry
 from cpsskins.elements.interfaces import IElement, ILeaf, ISlot, IDisplayable
 from cpsskins.relations.interfaces import IPredicate
@@ -204,6 +204,11 @@
         theme = getThemeManager().getThemeInContext(element)
 
         if ILeaf.providedBy(element):
+            # update leaf elements before rendering them
+            update_data = queryMultiAdapter((element, info), IUpdateData)
+            if update_data is not None:
+                update_data(**kw)
+            # do the actual rendering
             display_data = getMultiAdapter((element, info), IDisplayData)
             if callable(display_data):
                 rendered = display_data(**kw)

Modified: 
z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py
==============================================================================
--- z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py    
(original)
+++ z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py    
Sat Oct 22 17:38:00 2005
@@ -33,6 +33,10 @@
     def update(map):
         """Update map entries."""
 
+class IUpdateData(Interface):
+    """Hook adapter interface to give leaf elements such as portlets a chance
+    to update their data before rendering it."""
+
 class IDisplayData(Interface):
     """Information used by filters for generating some output to display."""
 
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to