Author: jmorliaguet
Date: Tue Dec 13 01:51:41 2005
New Revision: 2025

Modified:
   cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py
   cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py
   cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py
   cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py
   cpsskins/branches/jmo-perspectives/elements/configure.zcml
   cpsskins/branches/jmo-perspectives/elements/display.py
   cpsskins/branches/jmo-perspectives/elements/element.py
   cpsskins/branches/jmo-perspectives/elements/format.py
   cpsskins/branches/jmo-perspectives/elements/interfaces.py
   cpsskins/branches/jmo-perspectives/elements/presentation.py
   cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt
   cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py
   cpsskins/branches/jmo-perspectives/engines/editing/views.py
   cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt
   cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py
Log:

- updated the classification of resources

- removed 'formatname' (='resourcename')

- added method properties to access resource names, element names, ...



Modified: cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py    
(original)
+++ cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py    Tue Dec 
13 01:51:41 2005
@@ -93,13 +93,13 @@
 
         # look for renderers associated to the element's content type
         iface = IType(element).getContentType()
-        name = engine + '.' + iface.__name__  # XXX create a dotted name
+        name = engine + '.' + iface.getTaggedValue('name')
         renderer = queryUtility(configuration.IRenderer, name)
         if renderer is None:
             # fall back to the element type
             iface = IType(element).getElementType()
 
-        name = engine + '.' + iface.__name__ # XXX create a dotted name
+        name = engine + '.' + iface.getTaggedValue('name')
         renderer = queryUtility(configuration.IRenderer, name)
         if renderer is None:
             logger.log(INFO,

Modified: 
cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py  
(original)
+++ cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py  
Tue Dec 13 01:51:41 2005
@@ -72,7 +72,6 @@
                    configuration.IDisplay, name)
 
     # set up interface types
-    alsoProvides(IDisplay, IElementType)
     alsoProvides(schema, IContentType)
 
     schema.setTaggedValue('name', name)

Modified: 
cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py   
(original)
+++ cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py   
Tue Dec 13 01:51:41 2005
@@ -29,6 +29,7 @@
 
 from cpsskins.elements.interfaces import IElementType, IFormat
 from cpsskins.ontology import FormatPredicate, IFormatPredicate
+from cpsskins.setup.interfaces import IResourceType
 
 def getAbsolutePath(_context, file):
     return os.path.abspath(str(_context.path(file)))
@@ -76,8 +77,8 @@
     provideUtility(FormatPredicate(predicate), IFormatPredicate, name)
 
     # set up interface types
+    alsoProvides(schema, IResourceType)
     alsoProvides(schema, IContentType)
-    alsoProvides(IFormat, IElementType)
 
     # set tagged values
     schema.setTaggedValue('predicate', predicate)

Modified: 
cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py 
(original)
+++ cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py 
Tue Dec 13 01:51:41 2005
@@ -47,7 +47,7 @@
         renderer(self._context, engine, self.for_)
 
         for iface in self.for_:
-            name = engine + '.' + iface.__name__ # XXX create a dotted name
+            name = engine + '.' + iface.getTaggedValue('name')
             provideUtility(configuration.Renderer(filters=self.filters),
                            configuration.IRenderer, name)
 

Modified: cpsskins/branches/jmo-perspectives/elements/configure.zcml
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/configure.zcml  (original)
+++ cpsskins/branches/jmo-perspectives/elements/configure.zcml  Tue Dec 13 
01:51:41 2005
@@ -129,11 +129,19 @@
   />
 
 
+  <!-- Canvas elements -->
+
+  <interface
+      interface=".interfaces.ICanvas"
+      type=".interfaces.IElementType"
+  />
+
+
   <!-- Theme -->
 
   <interface
       interface=".interfaces.ITheme"
-      type=".interfaces.IElementType"
+      type="cpsskins.setup.interfaces.IResourceType"
   />
 
   <interface
@@ -166,7 +174,7 @@
 
   <interface
       interface=".interfaces.IThemePage"
-      type=".interfaces.IElementType"
+      type="cpsskins.setup.interfaces.IResourceType"
   />
 
   <interface
@@ -223,7 +231,7 @@
 
   <interface
       interface=".interfaces.IPageBlock"
-      type=".interfaces.IElementType"
+      type="cpsskins.setup.interfaces.IResourceType"
   />
 
   <interface
@@ -281,7 +289,7 @@
 
   <interface
       interface=".interfaces.ICell"
-      type=".interfaces.IElementType"
+      type="cpsskins.setup.interfaces.IResourceType"
   />
 
   <interface
@@ -345,7 +353,7 @@
 
   <interface
       interface=".interfaces.ISlot"
-      type=".interfaces.IElementType"
+      type="cpsskins.setup.interfaces.IResourceType"
   />
 
   <interface

Modified: cpsskins/branches/jmo-perspectives/elements/display.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/display.py      (original)
+++ cpsskins/branches/jmo-perspectives/elements/display.py      Tue Dec 13 
01:51:41 2005
@@ -205,10 +205,10 @@
         context = self.context
 
         presentation = queryUtility(configuration.IPresentation,
-                                    IType(context).contenttype())
+                                    IType(context).contentname)
         if presentation is None:
             presentation = queryUtility(configuration.IPresentation,
-                                        IType(context).elementtype())
+                                        IType(context).elementname)
 
         display = getUtility(configuration.IDisplay, presentation.display)
         return apply(display.factory, ())

Modified: cpsskins/branches/jmo-perspectives/elements/element.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/element.py      (original)
+++ cpsskins/branches/jmo-perspectives/elements/element.py      Tue Dec 13 
01:51:41 2005
@@ -66,7 +66,7 @@
 
     def getURI(self):
         element = self.element
-        prefix = IType(element).resourcetype
+        prefix = IType(element).resourcename
         suffix = str(IRelatable(element)) or \
                  str(IRelatable(element.__parent__)) or u''
         return '%s.%s' % (prefix, suffix)
@@ -130,20 +130,26 @@
     def __init__(self, element):
         self.element = element
 
-    def getContentType(self):
-        return queryType(self.element, IContentType)
-
     def getElementType(self):
         return queryType(self.element, IElementType)
 
     def getResourceType(self):
-        return queryType(self.element, IResourceType)
+        return queryType(self.element, IResourceType) or self.getElementType()
 
-    def contenttype(self):
-        return self.getContentType().getTaggedValue('name')
+    def getContentType(self):
+        return queryType(self.element, IContentType)
 
-    def elementtype(self):
+    def getElementName(self):
         return self.getElementType().getTaggedValue('name')
 
-    def resourcetype(self):
+    def getResourceName(self):
         return self.getResourceType().getTaggedValue('name')
+
+    def getContentName(self):
+        return self.getContentType().getTaggedValue('name')
+
+    elementname = property(getElementName)
+
+    resourcename = property(getResourceName)
+
+    contentname = property(getContentName)

Modified: cpsskins/branches/jmo-perspectives/elements/format.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/format.py       (original)
+++ cpsskins/branches/jmo-perspectives/elements/format.py       Tue Dec 13 
01:51:41 2005
@@ -48,15 +48,10 @@
         reltool = IRelationTool(self)
         return reltool.getFirsts(second=self, predicate=hasFormat)
 
-    def _getPredicate(self):
+    def getPredicate(self):
         return IType(self).getContentType().getTaggedValue('predicate')
 
-    def _getFormatName(self):
-        return IType(self).getContentType().getTaggedValue('name')
-
-    formatname = property(_getFormatName)
-
-    predicate = property(_getPredicate)
+    predicate = property(getPredicate)
 
 class Formattable(object):
     """This adapter makes elements formattable.
@@ -135,7 +130,7 @@
     def getFormatNames(self):
         """Return the list of format names in alphabetical order.
         """
-        names = [f.formatname for f in self.getFormats()]
+        names = [IType(f).resourcename for f in self.getFormats()]
         names.sort()
         return names
 
@@ -155,7 +150,7 @@
         context = self.context
         reltool = IRelationTool(context)
 
-        predicate = self.getPredicate(format.formatname)
+        predicate = self.getPredicate(IType(format).resourcename)
         relations = reltool.search(first=context, predicate=predicate)
         reltool.remove(relations)
 

Modified: cpsskins/branches/jmo-perspectives/elements/interfaces.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/interfaces.py   (original)
+++ cpsskins/branches/jmo-perspectives/elements/interfaces.py   Tue Dec 13 
01:51:41 2005
@@ -41,18 +41,25 @@
 
 class IType(Interface):
 
+    def getElementType():
+        """ """
+
+    def getResourceType():
+        """ """
+
     def getContentType():
         """ """
 
-    def getElementType():
+    def getElementName():
         """ """
 
-    def contenttype():
+    def getResourceName():
         """ """
 
-    def elementtype():
+    def getContentName():
         """ """
 
+
 class INode(IElement):
     """A generic tree node"""
 
@@ -68,6 +75,11 @@
         """Return the list of child nodes
         """
 
+class ICanvas(IElement):
+    """A canvas element"""
+
+ICanvas.setTaggedValue('name', u'canvas')
+
 class IDisplay(IElement):
     """A display element"""
 
@@ -112,8 +124,6 @@
 
 class IFormat(IElement):
 
-    formatname = Attribute(u"Format name")
-
     type = Attribute("The type of format.")
 
     def findDisplays():
@@ -181,7 +191,7 @@
  
 IPortlet.setTaggedValue('name', u'portlet')
 
-class ISlot(IInnerNode, IItemContainer):
+class ISlot(ICanvas, IInnerNode, IItemContainer):
     """A slot.
     """
 
@@ -200,7 +210,7 @@
 
 ISlot.setTaggedValue('name', u'slot')
 
-class ICell(IInnerNode):
+class ICell(ICanvas, IInnerNode):
     """A cell.
     """
     title = TextLine(
@@ -209,7 +219,7 @@
 
 ICell.setTaggedValue('name', u'cell')
 
-class IPageBlock(IInnerNode):
+class IPageBlock(ICanvas, IInnerNode):
     """A page block.
     """
     title = TextLine(
@@ -218,7 +228,7 @@
 
 IPageBlock.setTaggedValue('name', u'pageblock')
 
-class IThemePage(IInnerNode):
+class IThemePage(ICanvas, IInnerNode):
     """A page.
     """
     title = TextLine(
@@ -231,7 +241,7 @@
 
 IThemePage.setTaggedValue('name', u'themepage')
 
-class ITheme(IInnerNode):
+class ITheme(ICanvas, IInnerNode):
     """A theme.
     """
 
@@ -340,6 +350,3 @@
     different content types will be categorized under the same element type.
     """
 
-class IDisplayType(IInterface):
-    """The display type categorizes displays elements."""
-

Modified: cpsskins/branches/jmo-perspectives/elements/presentation.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/elements/presentation.py (original)
+++ cpsskins/branches/jmo-perspectives/elements/presentation.py Tue Dec 13 
01:51:41 2005
@@ -58,10 +58,10 @@
         formattable = IFormattable(display)
 
         factory_info = queryUtility(configuration.IPresentation,
-                                    IType(context).contenttype())
+                                    IType(context).contentname)
         if factory_info is None:
             factory_info = queryUtility(configuration.IPresentation,
-                                        IType(context).elementtype())
+                                        IType(context).elementname)
         for name, type in factory_info.formats.items():
             formattable.addFormat(name=name, type=type)
 
@@ -165,7 +165,7 @@
 
             formats_info = {}
             for format in formattable.getFormats():
-                format_name = format.formatname
+                format_name = format.resourcename
                 format_info = formats_info[format_name] = {}
                 format_info['format'] = format
 

Modified: 
cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt
==============================================================================
--- cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt 
(original)
+++ cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt 
Tue Dec 13 01:51:41 2005
@@ -7,7 +7,7 @@
     getDisplay nocall:context/displayable:getDisplay;
     actual_display python: getDisplay(perspective);
     formats actual_display/formattable:getFormatNames|python:[];
-    parent_type parent/type:elementtype;
+    parent_type parent/type:getElementName;
     editable python: str(parent_type) == 'ISlot' and 1 or 0;
     title context/title;
     id context/identifier"

Modified: 
cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py
==============================================================================
--- 
cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py    
    (original)
+++ 
cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py    
    Tue Dec 13 01:51:41 2005
@@ -130,7 +130,7 @@
         self.style = style
 
     def __str__(self):
-        return 'style%s' % IIdentifiable(self.style).getURI()
+        return 'style%s' % self.style.identifier
 
     def __call__(self):
         """Render the style in CSS"""

Modified: cpsskins/branches/jmo-perspectives/engines/editing/views.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/engines/editing/views.py (original)
+++ cpsskins/branches/jmo-perspectives/engines/editing/views.py Tue Dec 13 
01:51:41 2005
@@ -106,8 +106,9 @@
         main = context
 
         # Edited element
+        type = IType(context)
         element_info = {
-            'title': IType(context).contenttype,
+            'title': '%s.%s' % (type.elementname, type.contentname),
             'url': '@@edit-menu.html?main_url=@@edit.html',
             'selected': not format_name,
             'icon': '',
@@ -121,7 +122,8 @@
             is_setting = ISetting.providedBy(f)
             if is_setting:
                 f = IResource(f).getResource()
-            name = f.formatname
+            type = IType(f)
+            name = type.resourcename
             selected = name == format_name
             if selected:
                 format = f
@@ -133,7 +135,7 @@
                     main = format
 
             formats_info.append({
-                'title': IType(f).contenttype,
+                'title': '%s.%s' % (type.elementname, type.resourcename),
                 'url': './@@edit-menu.html?format=%s' % name,
                 'selected': selected,
                 })

Modified: 
cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt
==============================================================================
--- 
cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt    
    (original)
+++ 
cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt    
    Tue Dec 13 01:51:41 2005
@@ -15,6 +15,6 @@
   <div class="portletBox">
     <strong tal:condition="title" tal:content="title" />
     (<tal:block i18n:domain="cpsskins"
-      i18n:translate="" content="context/type:contenttype" />)
+      i18n:translate="" content="context/type:getContentName" />)
   </div>
 </div>

Modified: cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py
==============================================================================
--- cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py  
(original)
+++ cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py  Tue Dec 
13 01:51:41 2005
@@ -22,6 +22,7 @@
 from zope.component import getUtilitiesFor, getUtility, getMultiAdapter
 from zope.component import queryUtility, getAllUtilitiesRegisteredFor
 
+from cpsskins.elements.interfaces import IType
 from cpsskins.setup.interfaces import ISetting, IGlobalSetting
 from cpsskins.setup.interfaces import IResourceType, IResourceManager, 
IResource
 from cpsskins.io.interfaces import IDataExporter
@@ -42,8 +43,7 @@
         # get all settings
         for name, setting in getUtilitiesFor(ISetting):
             resource = IResource(setting).getResource()
-            resource_type = queryType(resource, IResourceType)
-            info.setdefault(resource_type.getTaggedValue('name'), []).append({
+            info.setdefault(IType(resource).resourcename, []).append({
                 'name': name,
                 'setting': setting,
                 'resource': resource,
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to