[Checkins] SVN: z3c.jsontree/trunk/src/z3c/jsontree/ Fix some issue with ITreeItems adapter and add an additional

Roger Ineichen roger at projekt01.ch
Sun Apr 13 21:40:54 EDT 2008


Log message for revision 85350:
  Fix some issue with ITreeItems adapter and add an additional 
  discriminator which prevents to load this adapter instead of the @@ view.
  This is a workaround needed because of the base registry we use.

Changed:
  U   z3c.jsontree/trunk/src/z3c/jsontree/base.py
  U   z3c.jsontree/trunk/src/z3c/jsontree/browser/configure.zcml
  U   z3c.jsontree/trunk/src/z3c/jsontree/configure.zcml
  U   z3c.jsontree/trunk/src/z3c/jsontree/interfaces.py
  U   z3c.jsontree/trunk/src/z3c/jsontree/jsonrpc.py
  U   z3c.jsontree/trunk/src/z3c/jsontree/subitem.py

-=-
Modified: z3c.jsontree/trunk/src/z3c/jsontree/base.py
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/base.py	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/base.py	2008-04-14 01:40:52 UTC (rev 85350)
@@ -86,7 +86,7 @@
         return self.getId(self.context)
 
 
-class TreeBase(subitem.SubItemMixin):
+class TreeBase(subitem.SubItemAware):
     """Tree iterator base implementation."""
 
     root = None
@@ -225,14 +225,13 @@
                    icon.height, longDescURL))
 
     def icon(self):
-        """Returns a toggle icon including settings for json url."""
+        """Returns a additional named icon for the given context."""
         icon = zope.component.queryMultiAdapter((self.context, self.request), 
             name=self.iconName)
         if icon is not None:
             resource = getResource(icon.context, icon.rname, self.request)
             src = resource()
-            longDescURL = absoluteURL(self.context, self.request)
-            return ('<img src="%s" alt="toggle icon" width="%s" height="%s" ' 
+            return ('<img src="%s" alt="icon" width="%s" height="%s" ' 
                     'border="0" />' % (src, icon.width, icon.height))
         return u''
 

Modified: z3c.jsontree/trunk/src/z3c/jsontree/browser/configure.zcml
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/browser/configure.zcml	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/browser/configure.zcml	2008-04-14 01:40:52 UTC (rev 85350)
@@ -22,7 +22,7 @@
   <z3c:template
       template="li.pt"
       for="z3c.jsontree.interfaces.ILITagProvider"
-      layer="zope.publisher.interfaces.browser.IBrowserRequest"
+      layer="zope.publisher.interfaces.http.IHTTPRequest"
       />
 
   <zope:adapter
@@ -32,7 +32,7 @@
   <z3c:template
       template="ul.pt"
       for="z3c.jsontree.interfaces.IULTagProvider"
-      layer="zope.publisher.interfaces.browser.IBrowserRequest"
+      layer="zope.publisher.interfaces.http.IHTTPRequest"
       />
 
   <resourceDirectory

Modified: z3c.jsontree/trunk/src/z3c/jsontree/configure.zcml
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/configure.zcml	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/configure.zcml	2008-04-14 01:40:52 UTC (rev 85350)
@@ -5,25 +5,29 @@
 
   <adapter
       for="zope.interface.Interface
-           zope.publisher.interfaces.browser.IBrowserRequest"
+           zope.publisher.interfaces.browser.IBrowserRequest
+           z3c.jsontree.interfaces.ISubItemAware"
       factory=".subitem.NoneTreeItems"
       />
 
   <adapter
       for="zope.app.container.interfaces.IReadContainer
-           zope.publisher.interfaces.browser.IBrowserRequest"
+           zope.publisher.interfaces.browser.IBrowserRequest
+           z3c.jsontree.interfaces.ISubItemAware"
       factory=".subitem.ContainerTreeItems"
       />
 
   <adapter
       for="zope.interface.Interface
-           z3c.jsonrpc.interfaces.IJSONRPCRequest"
+           z3c.jsonrpc.interfaces.IJSONRPCRequest
+           z3c.jsontree.interfaces.ISubItemAware"
       factory=".subitem.NoneTreeItems"
       />
 
   <adapter
       for="zope.app.container.interfaces.IReadContainer
-           z3c.jsonrpc.interfaces.IJSONRPCRequest"
+           z3c.jsonrpc.interfaces.IJSONRPCRequest
+           z3c.jsontree.interfaces.ISubItemAware"
       factory=".subitem.ContainerTreeItems"
       />
 

Modified: z3c.jsontree/trunk/src/z3c/jsontree/interfaces.py
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/interfaces.py	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/interfaces.py	2008-04-14 01:40:52 UTC (rev 85350)
@@ -36,10 +36,14 @@
 STATE_STATIC = 'static'
 
 
+class ISubItemAware(zope.interface.Interface):
+    """Sub item aware object."""
+
+
 class ITreeItems(zope.interface.Interface):
     """Knows the items listed in tree for the given context."""
 
-    def __init__(context, provider):
+    def __init__(context, request, tree):
         """Adapts the context and the request.
         
         This allows to use different adapters for different layers on the same

Modified: z3c.jsontree/trunk/src/z3c/jsontree/jsonrpc.py
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/jsonrpc.py	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/jsonrpc.py	2008-04-14 01:40:52 UTC (rev 85350)
@@ -39,7 +39,7 @@
         return {'treeChilds': {'id':id, 'childs':[]}}
 
 
-class JSONTreeItems(subitem.SubItemMixin, MethodPublisher,
+class JSONTreeItems(subitem.SubItemAware, MethodPublisher,
     base.IdGenerator):
     """Returns the data of the childs from the path for the json tree.
     

Modified: z3c.jsontree/trunk/src/z3c/jsontree/subitem.py
===================================================================
--- z3c.jsontree/trunk/src/z3c/jsontree/subitem.py	2008-04-13 22:47:05 UTC (rev 85349)
+++ z3c.jsontree/trunk/src/z3c/jsontree/subitem.py	2008-04-14 01:40:52 UTC (rev 85350)
@@ -30,12 +30,14 @@
 _ = zope.i18nmessageid.MessageFactory('z3c')
 
 
-class SubItemMixin(object):
+class SubItemAware(object):
     """Base class for sub item lookup."""
 
+    zope.interface.implements(interfaces.ISubItemAware)
+
     def getSubItems(self, item):
         """Delegate call to ITreeItems adapter."""
-        adapter = zope.component.getMultiAdapter((item, self.request),
+        adapter = zope.component.getMultiAdapter((item, self.request, self),
             interfaces.ITreeItems)
         return adapter.subItems
 
@@ -45,9 +47,10 @@
 
     zope.interface.implements(interfaces.ITreeItems)
 
-    def __init__(self, context, request):
+    def __init__(self, context, request, tree):
         self.context = context
         self.request = request
+        self.tree = tree
 
 
 class NoneTreeItems(TreeItemsMixin):



More information about the Checkins mailing list