Author: jmorliaguet Date: Sat Nov 19 23:06:33 2005 New Revision: 1901 Modified: cpsskins/branches/jmo-perspectives/configuration/perspectives/metaconfigure.py cpsskins/branches/jmo-perspectives/configuration/perspectives/metadirectives.py cpsskins/branches/jmo-perspectives/configuration/resources/metaconfigure.py cpsskins/branches/jmo-perspectives/engines/default/perspectives.zcml Log:
- functional implementation of file-system resources (can still be improved) Modified: cpsskins/branches/jmo-perspectives/configuration/perspectives/metaconfigure.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/perspectives/metaconfigure.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/perspectives/metaconfigure.py Sat Nov 19 23:06:33 2005 @@ -17,24 +17,29 @@ """ __docformat__ = "reStructuredText" -from zope.component import queryUtility, provideUtility +from zope.component import queryUtility, provideUtility, getUtility from zope.configuration.exceptions import ConfigurationError from zope.interface import alsoProvides from cpsskins import configuration from cpsskins.interfaces import ISettingType from cpsskins.perspectives import Perspective +from cpsskins.perspectives.interfaces import IPerspective alsoProvides(configuration.IPerspective, ISettingType) -def perspective(_context, name=u'', title=u''): +def perspective(_context, name=u'', resource=u''): if queryUtility(configuration.IPerspective, name) is not None: raise ConfigurationError( "The '%s' perspective has already been registered." % name) + if not resource: + raise ConfigurationError("Must specify a resource name") + # register as a global setting - resource = Perspective(name=name, title=title) - setting = configuration.Perspective(title=title, readonly=True, - resource=resource) + resource_object = getUtility(IPerspective, resource) + setting = configuration.Perspective(title=resource_object.title, + readonly=True, + resource=resource_object) provideUtility(setting, configuration.IPerspective, name) Modified: cpsskins/branches/jmo-perspectives/configuration/perspectives/metadirectives.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/perspectives/metadirectives.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/perspectives/metadirectives.py Sat Nov 19 23:06:33 2005 @@ -32,6 +32,12 @@ min_dots=1, ) + resource = TextLine( + title=_("Resource"), + description=_("The name of the resource."), + required=False, + ) + title = TextLine( title=_("Title"), description=_("The title of the perspective."), Modified: cpsskins/branches/jmo-perspectives/configuration/resources/metaconfigure.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/resources/metaconfigure.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/resources/metaconfigure.py Sat Nov 19 23:06:33 2005 @@ -19,7 +19,7 @@ from zope.configuration.exceptions import ConfigurationError from zope.xmlpickle import xmlpickle -from zope.component import providedBy +from zope.component import providedBy, provideUtility def resources(_context, type=None, file=None): @@ -43,6 +43,5 @@ raise TypeError("The specified resource does not implement " "the promised interface.") - # TODO: register the resource - print repr(resources) + provideUtility(resource, type, resource.name) Modified: cpsskins/branches/jmo-perspectives/engines/default/perspectives.zcml ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/default/perspectives.zcml (original) +++ cpsskins/branches/jmo-perspectives/engines/default/perspectives.zcml Sat Nov 19 23:06:33 2005 @@ -1,16 +1,19 @@ <configure xmlns="http://namespaces.zope.org/cpsskins"> - <perspective - name="cpsskins.globalperspective" - title="Global perspective" - /> - - <!-- XXX for testing --> + <!-- Resources --> <resources type="cpsskins.perspectives.interfaces.IPerspective" file="perspectives.xml" /> + + <!-- Settings --> + + <perspective + name="cpsskins.globalperspective" + resource="cpsskins.globalperspective" + /> + </configure> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins