Author: jmorliaguet Date: Mon Mar 27 00:19:17 2006 New Revision: 2734 Modified: cpsskins/branches/jmo-perspectives/elements/element.py cpsskins/branches/jmo-perspectives/io/README.txt Log:
- more work on resource URIs Modified: cpsskins/branches/jmo-perspectives/elements/element.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/element.py (original) +++ cpsskins/branches/jmo-perspectives/elements/element.py Mon Mar 27 00:19:17 2006 @@ -23,6 +23,7 @@ from zope.app.container.interfaces import INameChooser from zope.app.content.interfaces import IContentType from zope.app.interface import queryType +from zope.app.zapi import getParent from zope.component import adapts from zope.interface import implements @@ -66,10 +67,23 @@ def getURI(self): element = self.element - prefix = IType(element).resourcename - suffix = str(IRelatable(element)) or \ - str(IRelatable(element.__parent__)) or u'' - return '%s.%s' % (prefix, suffix) + type = IType(element) + + elementname = type.elementname + resourcename = type.resourcename + contentname = type.contentname + + relatable = IRelatable(element, None) + if relatable is None: + relatable = IRelatable(getParent(element), u'') + identifier = str(relatable) + + parts = elementname, resourcename + if contentname != resourcename: + parts += contentname, + parts += identifier, + + return '-'.join(parts) class Node(Element): """A Node is an element in a tree structure. Modified: cpsskins/branches/jmo-perspectives/io/README.txt ============================================================================== --- cpsskins/branches/jmo-perspectives/io/README.txt (original) +++ cpsskins/branches/jmo-perspectives/io/README.txt Mon Mar 27 00:19:17 2006 @@ -117,34 +117,34 @@ 'cpsskins.actions' -Combination of the three categories ------------------------------------ - URI -~~~ +--- To identify resources, a URI (Uniform Resource Identifier) is used. -A URI consists of a prefix and a suffix separated by a '.' character. -The prefix is the *resource name* described above. -The suffix identifies the resource inside the namespace. +A URI consists of a combination of the element type, resource type and content +type separated with a '-'. For instance a portlet will be identified as: - 'portlet.123456' - + 'canvas-portlet-cpsskins.actions-123456' -elementname + resourcename -~~~~~~~~~~~~~~~~~~~~~~~~~~ +elementname - resourcename - id +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Example: - 'format.style', 'format.widget' + 'format-style', 'format-widget' + + >>> from cpsskins.elements.interfaces import IIdentifiable + >>> resource = Style() + >>> IIdentifiable(resource).getURI() + u'format-style-' -elementname + contentname -~~~~~~~~~~~~~~~~~~~~~~~~~ +elementname - resourcename - contentname - id +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Example: - 'portlet.cpsskins.actions', 'canvas.slot' + 'portlet-cpsskins.actions', 'canvas-slot' -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins