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