Author: jmorliaguet
Date: Fri Jun 23 22:26:51 2006
New Revision: 3501

Modified:
   cpsskins/branches/paris-sprint-2006/controllers/theme.py
   cpsskins/branches/paris-sprint-2006/thememanager.py

Log:

- register themes / pages as utilities using events



Modified: cpsskins/branches/paris-sprint-2006/controllers/theme.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/controllers/theme.py    (original)
+++ cpsskins/branches/paris-sprint-2006/controllers/theme.py    Fri Jun 23 
22:26:51 2006
@@ -18,9 +18,11 @@
 __docformat__ = "reStructuredText"
 
 from zope.interface import implements
+from zope.traversing.api import getName
 
 from cpsskins.controllers import Controller
 from cpsskins.controllers.interfaces import IController
+from cpsskins.elements.interfaces import ITheme
 from cpsskins.utils import getThemeManager
 
 class ThemeController(Controller):
@@ -34,6 +36,13 @@
         element = self.element
 
         tmutil = getThemeManager(element)
+        tmutil.registerUtility(element, ITheme, getName(element))
         if tmutil.getDefaultTheme() is None:
             tmutil.setAsDefault(element)
 
+    def removed(self):
+        element = self.element
+        tmutil = getThemeManager(element)
+
+        tmutil.unregisterUtility(element, ITheme, getName(element))
+

Modified: cpsskins/branches/paris-sprint-2006/thememanager.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/thememanager.py (original)
+++ cpsskins/branches/paris-sprint-2006/thememanager.py Fri Jun 23 22:26:51 2006
@@ -130,6 +130,9 @@
     def getLocation(context):
         """Return the location in a given context"""
 
+    def inspect():
+        """Inspect themes"""
+
 class ThemeManagementFolder(BTreeContainer, PersistentComponents):
     """A theme management utility that can contain multiple .
     themes
@@ -228,7 +231,6 @@
 
         name = INameChooser(self).chooseName(name, theme)
         self[name] = theme
-        self.registerUtility(theme, ITheme, name)
         return name
 
     def addPage(self, theme=None, page=None, name=u''):
@@ -237,7 +239,6 @@
 
         name = INameChooser(theme).chooseName(name, page)
         theme[name] = page
-        theme.registerUtility(page, IThemePage, name)
         return name
 
     def getThemes(self):
@@ -249,7 +250,6 @@
     def deleteTheme(self, name=u''):
         for k, v in self.getUtilitiesFor(ITheme):
             if k == name:
-                self.unregisterUtility(v, ITheme, k)
                 del self[getName(v)]
                 return
 
@@ -257,7 +257,6 @@
 
     def deleteAllThemes(self):
         for k, v in self.getUtilitiesFor(ITheme):
-            self.unregisterUtility(v, ITheme, k)
             del self[getName(v)]
 
     def getThemeByName(self, name=u''):
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to