[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