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

Reply via email to