[Products.Silva][Sylvain Viollon] Reorganize icons to be central...

[email protected] Tue, 27 Aug 2013 11:53:16 +0200
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Tue Aug 27 11:53:08 2013 +0200
revision:  11851:30d0bbee6340 in Products.Silva
branch:    2.4
details:   https://hg.infrae.com/Products.Silva?cmd=changeset;node=30d0bbee6340
modified:  Products/Silva/AutoTOC/content.py Products/Silva/EmailMessageService.py Products/Silva/ExtensionService.py Products/Silva/File/content.py Products/Silva/File/service.py Products/Silva/Folder/content.py Products/Silva/Ghost.py Products/Silva/GhostFolder.py Products/Silva/Image/content.py Products/Silva/Indexer/content.py Products/Silva/Link.py Products/Silva/Publication/content.py Products/Silva/Root.py Products/Silva/SimpleMembership.py Products/Silva/__init__.py Products/Silva/icon.py Products/Silva/icons/autotoc.png Products/Silva/icons/file.png Products/Silva/icons/folder.gif Products/Silva/icons/generic.gif Products/Silva/icons/ghost.gif Products/Silva/icons/ghost_broken.gif Products/Silva/icons/ghost_folder.gif Products/Silva/icons/ghost_publication.gif Products/Silva/icons
 /image.gif Products/Silva/icons/indexer.png Products/Silva/icons/link.png Products/Silva/icons/member.png Products/Silva/icons/publication.gif Products/Silva/icons/root.png Products/Silva/ic
 ons/service_extension.png Products/Silva/icons/service_files.gif Products/Silva/icons/service_member.png Products/Silva/icons/service_message.png Products/Silva/icons/silvageneric.gif Products/Silva/icons/silvaghost.gif Products/Silva/icons/silvaghost_broken.png Products/Silva/icons/silvaghost_folder.gif Products/Silva/icons/silvaghost_publication.gif Products/Silva/tests/test_icon.py Products/Silva/www/autotoc.png Products/Silva/www/containerpolicy_service.png Products/Silva/www/extension_service.gif Products/Silva/www/files_service.gif Products/Silva/www/link.png Products/Silva/www/member.png Products/Silva/www/members.png Products/Silva/www/message_service.png Products/Silva/www/silva.png Products/Silva/www/silvafile.png Products/Silva/www/silvafolder.gif Products/Silva/www/silvaghost.
 gif Products/Silva/www/silvaimage.gif Products/Silva/www/silvaindexer.png Products/Silva/www/silvapublication.gif
added:     Products/Silva/icons/autotoc.png Products/Silva/icons/file.png Products/Silva/icons/folder.gif Products/Silva/icons/generic.gif Products/Silva/icons/ghost.gif Products/Silva/icons/ghost_broken.gif Products/Silva/icons/ghost_folder.gif Products/Silva/icons/ghost_publication.gif Products/Silva/icons/image.gif Products/Silva/icons/indexer.png Products/Silva/icons/link.png Products/Silva/icons/member.png Products/Silva/icons/publication.gif Products/Silva/icons/root.png Products/Silva/icons/service_extension.png Products/Silva/icons/service_files.gif Products/Silva/icons/service_member.png Products/Silva/icons/service_message.png
removed:   Products/Silva/icons/silvageneric.gif Products/Silva/icons/silvaghost.gif Products/Silva/icons/silvaghost_broken.png Products/Silva/icons/silvaghost_folder.gif Products/Silva/icons/silvaghost_publication.gif Products/Silva/www/autotoc.png Products/Silva/www/containerpolicy_service.png Products/Silva/www/extension_service.gif Products/Silva/www/files_service.gif Products/Silva/www/link.png Products/Silva/www/member.png Products/Silva/www/members.png Products/Silva/www/message_service.png Products/Silva/www/silva.png Products/Silva/www/silvafile.png Products/Silva/www/silvafolder.gif Products/Silva/www/silvaghost.gif Products/Silva/www/silvaimage.gif Products/Silva/www/silvaindexer.png Products/Silva/www/silvapublication.gif
log:       Reorganize icons to be centralized in icon.py and the icons folder.


diffstat:

 Products/Silva/AutoTOC/content.py               |    2 +-
 Products/Silva/EmailMessageService.py           |    2 +-
 Products/Silva/ExtensionService.py              |    2 +-
 Products/Silva/File/content.py                  |    2 +-
 Products/Silva/File/service.py                  |    2 +-
 Products/Silva/Folder/content.py                |    2 +-
 Products/Silva/Ghost.py                         |    2 +-
 Products/Silva/GhostFolder.py                   |    4 +-
 Products/Silva/Image/content.py                 |    2 +-
 Products/Silva/Indexer/content.py               |    2 +-
 Products/Silva/Link.py                          |    2 +-
 Products/Silva/Publication/content.py           |    2 +-
 Products/Silva/Root.py                          |    2 +-
 Products/Silva/SimpleMembership.py              |    4 +-
 Products/Silva/__init__.py                      |   67 --------------------
 Products/Silva/icon.py                          |   79 ++++++++++++++++++++++-
 Products/Silva/icons/autotoc.png                |  Bin 
 Products/Silva/icons/file.png                   |  Bin 
 Products/Silva/icons/folder.gif                 |  Bin 
 Products/Silva/icons/generic.gif                |  Bin 
 Products/Silva/icons/ghost.gif                  |  Bin 
 Products/Silva/icons/ghost_broken.gif           |  Bin 
 Products/Silva/icons/ghost_folder.gif           |  Bin 
 Products/Silva/icons/ghost_publication.gif      |  Bin 
 Products/Silva/icons/image.gif                  |  Bin 
 Products/Silva/icons/indexer.png                |  Bin 
 Products/Silva/icons/link.png                   |  Bin 
 Products/Silva/icons/member.png                 |  Bin 
 Products/Silva/icons/publication.gif            |  Bin 
 Products/Silva/icons/root.png                   |  Bin 
 Products/Silva/icons/service_extension.png      |  Bin 
 Products/Silva/icons/service_files.gif          |  Bin 
 Products/Silva/icons/service_member.png         |  Bin 
 Products/Silva/icons/service_message.png        |  Bin 
 Products/Silva/icons/silvageneric.gif           |  Bin 
 Products/Silva/icons/silvaghost.gif             |  Bin 
 Products/Silva/icons/silvaghost_broken.png      |  Bin 
 Products/Silva/icons/silvaghost_folder.gif      |  Bin 
 Products/Silva/icons/silvaghost_publication.gif |  Bin 
 Products/Silva/tests/test_icon.py               |    2 +-
 Products/Silva/www/autotoc.png                  |  Bin 
 Products/Silva/www/containerpolicy_service.png  |  Bin 
 Products/Silva/www/extension_service.gif        |  Bin 
 Products/Silva/www/files_service.gif            |  Bin 
 Products/Silva/www/link.png                     |  Bin 
 Products/Silva/www/member.png                   |  Bin 
 Products/Silva/www/members.png                  |  Bin 
 Products/Silva/www/message_service.png          |  Bin 
 Products/Silva/www/silva.png                    |  Bin 
 Products/Silva/www/silvafile.png                |  Bin 
 Products/Silva/www/silvafolder.gif              |  Bin 
 Products/Silva/www/silvaghost.gif               |  Bin 
 Products/Silva/www/silvaimage.gif               |  Bin 
 Products/Silva/www/silvaindexer.png             |  Bin 
 Products/Silva/www/silvapublication.gif         |  Bin 
 55 files changed, 92 insertions(+), 88 deletions(-)

diffs (457 lines):

diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/AutoTOC/content.py
--- a/Products/Silva/AutoTOC/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/AutoTOC/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -33,7 +33,7 @@
     meta_type = "Silva AutoTOC"
 
     grok.implements(IAutoTOC)
-    silvaconf.icon('www/autotoc.png')
+    silvaconf.icon('icons/autotoc.png')
     silvaconf.priority(0.2)
 
     _local_types = ['Silva Document', 'Silva Publication', 'Silva Folder']
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/EmailMessageService.py
--- a/Products/Silva/EmailMessageService.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/EmailMessageService.py	Tue Aug 27 11:53:08 2013 +0200
@@ -155,7 +155,7 @@
     grok.implements(interfaces.IMessageService)
     grok.name('service_messages')
     silvaconf.default_service()
-    silvaconf.icon('www/message_service.png')
+    silvaconf.icon('icons/service_message.png')
 
     manage_options = (
         {'label':'Settings', 'action':'manage_settings'},
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/ExtensionService.py
--- a/Products/Silva/ExtensionService.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/ExtensionService.py	Tue Aug 27 11:53:08 2013 +0200
@@ -108,7 +108,7 @@
     grok.implements(IExtensionService)
     grok.name('service_extensions')
     silvaconf.default_service()
-    silvaconf.icon('www/silva.png')
+    silvaconf.icon('icons/service_extension.png')
 
     security = ClassSecurityInfo()
     manage_options = (
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/File/content.py
--- a/Products/Silva/File/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/File/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -93,7 +93,7 @@
     meta_type = "Silva File"
 
     grok.implements(interfaces.IFile)
-    silvaconf.icon('www/silvafile.png')
+    silvaconf.icon('icons/file.png')
     silvaconf.factory('manage_addFile')
 
     # Default values
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/File/service.py
--- a/Products/Silva/File/service.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/File/service.py	Tue Aug 27 11:53:08 2013 +0200
@@ -44,7 +44,7 @@
     grok.implements(IFilesService)
     grok.name('service_files')
     silvaconf.default_service()
-    silvaconf.icon('www/files_service.gif')
+    silvaconf.icon('icons/service_files.gif')
 
     security = ClassSecurityInfo()
 
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Folder/content.py
--- a/Products/Silva/Folder/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Folder/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -51,7 +51,7 @@
     meta_type = "Silva Folder"
 
     grok.implements(IFolder)
-    silvaconf.icon('www/silvafolder.gif')
+    silvaconf.icon('icons/folder.gif')
     silvaconf.priority(-5)
 
     security = ClassSecurityInfo()
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Ghost.py
--- a/Products/Silva/Ghost.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Ghost.py	Tue Aug 27 11:53:08 2013 +0200
@@ -187,7 +187,7 @@
     security = ClassSecurityInfo()
 
     grok.implements(IGhost)
-    silvaconf.icon('icons/silvaghost.gif')
+    silvaconf.icon('icons/ghost.gif')
     silvaconf.version_class('GhostVersion')
 
     security.declareProtected(
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/GhostFolder.py
--- a/Products/Silva/GhostFolder.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/GhostFolder.py	Tue Aug 27 11:53:08 2013 +0200
@@ -11,7 +11,7 @@
 # Zope 2
 from AccessControl import ClassSecurityInfo
 from AccessControl.security import checkPermission
-from Acquisition import aq_parent, aq_chain
+from Acquisition import aq_parent
 from App.class_init import InitializeClass
 from OFS.interfaces import IObjectClonedEvent
 
@@ -170,7 +170,7 @@
     meta_type = 'Silva Ghost Folder'
 
     grok.implements(IGhostFolder)
-    silvaconf.icon('icons/silvaghost_folder.gif')
+    silvaconf.icon('icons/ghost_folder.gif')
     silvaconf.priority(0)
 
     security = ClassSecurityInfo()
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Image/content.py
--- a/Products/Silva/Image/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Image/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -257,7 +257,7 @@
     }
 
     silvaconf.priority(-3)
-    silvaconf.icon('www/silvaimage.gif')
+    silvaconf.icon('icons/image.gif')
     silvaconf.factory('manage_addImage')
 
     security.declareProtected(
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Indexer/content.py
--- a/Products/Silva/Indexer/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Indexer/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -48,7 +48,7 @@
 
     meta_type = "Silva Indexer"
     grok.implements(IIndexer)
-    silvaconf.icon('www/silvaindexer.png')
+    silvaconf.icon('icons/indexer.png')
 
     def __init__(self, id):
         super(Indexer, self).__init__(id)
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Link.py
--- a/Products/Silva/Link.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Link.py	Tue Aug 27 11:53:08 2013 +0200
@@ -40,7 +40,7 @@
     meta_type = "Silva Link"
 
     grok.implements(interfaces.ILink)
-    silvaconf.icon('www/link.png')
+    silvaconf.icon('icons/link.png')
     silvaconf.versionClass('LinkVersion')
 
 
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Publication/content.py
--- a/Products/Silva/Publication/content.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Publication/content.py	Tue Aug 27 11:53:08 2013 +0200
@@ -45,7 +45,7 @@
 
     grok.implements(IPublication)
     silvaconf.priority(-5)
-    silvaconf.icon('www/silvapublication.gif')
+    silvaconf.icon('icons/publication.gif')
 
     @property
     def manage_options(self):
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/Root.py
--- a/Products/Silva/Root.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/Root.py	Tue Aug 27 11:53:08 2013 +0200
@@ -119,7 +119,7 @@
 
     # We do not want to register Root automaticaly.
     grok.implements(IRoot)
-    silvaconf.icon('www/silva.png')
+    silvaconf.icon('icons/root.png')
     silvaconf.zmi_addable(True)
     silvaconf.factory('manage_addRootForm')
     silvaconf.factory('manage_addRoot')
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/SimpleMembership.py
--- a/Products/Silva/SimpleMembership.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/SimpleMembership.py	Tue Aug 27 11:53:08 2013 +0200
@@ -32,7 +32,7 @@
 
     meta_type = 'Silva Simple Member'
 
-    silvaconf.icon('www/member.png')
+    silvaconf.icon('icons/member.png')
     silvaconf.factory('manage_addSimpleMemberForm')
     silvaconf.factory('manage_addSimpleMember')
 
@@ -150,7 +150,7 @@
 class SimpleMemberService(SilvaService):
     grok.implements(IMemberService)
     grok.baseclass()
-    silvaconf.icon('www/members.png')
+    silvaconf.icon('icons/service_member.png')
     security = ClassSecurityInfo()
     meta_type = 'Silva Simple Member Service'
 
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/__init__.py
--- a/Products/Silva/__init__.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/__init__.py	Tue Aug 27 11:53:08 2013 +0200
@@ -24,70 +24,3 @@
 MAILHOST_ID = 'service_mailhost'
 
 
-def initialize_icons():
-    from Products.Silva.icon import registry
-
-    mimeicons = [
-        ('application/msword', 'file_doc.png'),
-        ('application/pdf', 'file_pdf.png'),
-        ('application/postscript', 'file_illustrator.png'),
-        ('application/sdp', 'file_quicktime.png'),
-        ('application/vnd.ms-excel', 'file_xls.png'),
-        ('application/vnd.ms-powerpoint', 'file_ppt.png'),
-        ('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'file_ppt.png'),
-        ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'file_xls.png'),
-        ('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'file_doc.png'),
-        ('application/x-javascript', 'file_js.png'),
-        ('application/x-rtsp', 'file_quicktime.png'),
-        ('application/x-sdp', 'file_quicktime.png'),
-        ('application/x-zip-compressed', 'file_zip.png'),
-        ('audio/aiff', 'file_aiff.png'),
-        ('audio/basic', 'file_aiff.png'),
-        ('audio/mid', 'file_aiff.png'),
-        ('audio/midi', 'file_aiff.png'),
-        ('audio/mp3', 'file_aiff.png'),
-        ('audio/mp4', 'file_aiff.png'),
-        ('audio/mpeg', 'file_aiff.png'),
-        ('audio/mpeg3', 'file_aiff.png'),
-        ('audio/wav', 'file_aiff.png'),
-        ('audio/x-aiff', 'file_aiff.png'),
-        ('audio/x-gsm', 'file_aiff.png'),
-        ('audio/x-m4a', 'file_aiff.png'),
-        ('audio/x-m4p', 'file_aiff.png'),
-        ('audio/x-midi', 'file_aiff.png'),
-        ('audio/x-mp3', 'file_aiff.png'),
-        ('audio/x-mpeg', 'file_aiff.png'),
-        ('audio/x-mpeg3', 'file_aiff.png'),
-        ('audio/x-wav', 'file_aiff.png'),
-        ('text/css', 'file_css.png'),
-        ('text/html', 'file_html.png'),
-        ('text/plain', 'file_txt.png'),
-        ('text/xml', 'file_xml.png'),
-        ('video/avi', 'file_quicktime.png'),
-        ('video/mp4', 'file_quicktime.png'),
-        ('video/mpeg', 'file_quicktime.png'),
-        ('video/msvideo', 'file_quicktime.png'),
-        ('video/quicktime', 'file_quicktime.png'),
-        ('video/x-dv', 'file_quicktime.png'),
-        ('video/x-mpeg', 'file_quicktime.png'),
-        ('video/x-msvideo', 'file_quicktime.png'),
-        ]
-    for mimetype, icon_name in mimeicons:
-        registry.register(
-            ('mime_type', mimetype),
-            '++static++/silva.icons/%s' % icon_name)
-
-    misc_icons = [
-        ('meta_type', None, 'missing.png'),
-        ('ghostfolder', 'folder', 'silvaghost_folder.gif'),
-        ('ghostfolder', 'publication', 'silvaghost_publication.gif'),
-        ('ghostfolder', 'link_broken', 'silvaghost_broken.png'),
-        ('ghost', 'link_ok', 'silvaghost.gif'),
-        ('ghost', 'link_broken', 'silvaghost_broken.png'),
-    ]
-    for klass, kind, icon_name in misc_icons:
-        registry.register(
-            (klass, kind),
-            '++static++/silva.icons/%s' % icon_name)
-
-initialize_icons()
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icon.py
--- a/Products/Silva/icon.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/icon.py	Tue Aug 27 11:53:08 2013 +0200
@@ -3,7 +3,7 @@
 # See also LICENSE.txt
 
 from five import grok
-from zope.cachedescriptors.property import CachedProperty
+from zope.cachedescriptors.property import Lazy
 from zope.publisher.interfaces.browser import IBrowserRequest
 
 # Silva
@@ -90,22 +90,93 @@
 
         NOTE: this will overwrite previous icon declarations
         """
+        assert isinstance(identifier, tuple) and len(identifier) == 2, \
+            'Invalid icon identifier'
         self._icons[identifier] = icon_name
 
 
-registry = IconRegistry()
+@apply
+def registry():
+    """Create and initialize icon registry with Silva defaults.
+    """
+    registry = IconRegistry()
+
+    mime_icons = [
+        ('application/msword', 'file_doc.png'),
+        ('application/pdf', 'file_pdf.png'),
+        ('application/postscript', 'file_illustrator.png'),
+        ('application/sdp', 'file_quicktime.png'),
+        ('application/vnd.ms-excel', 'file_xls.png'),
+        ('application/vnd.ms-powerpoint', 'file_ppt.png'),
+        ('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'file_ppt.png'),
+        ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'file_xls.png'),
+        ('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'file_doc.png'),
+        ('application/x-javascript', 'file_js.png'),
+        ('application/x-rtsp', 'file_quicktime.png'),
+        ('application/x-sdp', 'file_quicktime.png'),
+        ('application/x-zip-compressed', 'file_zip.png'),
+        ('audio/aiff', 'file_aiff.png'),
+        ('audio/basic', 'file_aiff.png'),
+        ('audio/mid', 'file_aiff.png'),
+        ('audio/midi', 'file_aiff.png'),
+        ('audio/mp3', 'file_aiff.png'),
+        ('audio/mp4', 'file_aiff.png'),
+        ('audio/mpeg', 'file_aiff.png'),
+        ('audio/mpeg3', 'file_aiff.png'),
+        ('audio/wav', 'file_aiff.png'),
+        ('audio/x-aiff', 'file_aiff.png'),
+        ('audio/x-gsm', 'file_aiff.png'),
+        ('audio/x-m4a', 'file_aiff.png'),
+        ('audio/x-m4p', 'file_aiff.png'),
+        ('audio/x-midi', 'file_aiff.png'),
+        ('audio/x-mp3', 'file_aiff.png'),
+        ('audio/x-mpeg', 'file_aiff.png'),
+        ('audio/x-mpeg3', 'file_aiff.png'),
+        ('audio/x-wav', 'file_aiff.png'),
+        ('text/css', 'file_css.png'),
+        ('text/html', 'file_html.png'),
+        ('text/plain', 'file_txt.png'),
+        ('text/xml', 'file_xml.png'),
+        ('video/avi', 'file_quicktime.png'),
+        ('video/mp4', 'file_quicktime.png'),
+        ('video/mpeg', 'file_quicktime.png'),
+        ('video/msvideo', 'file_quicktime.png'),
+        ('video/quicktime', 'file_quicktime.png'),
+        ('video/x-dv', 'file_quicktime.png'),
+        ('video/x-mpeg', 'file_quicktime.png'),
+        ('video/x-msvideo', 'file_quicktime.png'),
+        ]
+    for mimetype, icon_name in mime_icons:
+        registry.register(
+            ('mime_type', mimetype),
+            '++static++/silva.icons/%s' % icon_name)
+
+    misc_icons = [
+        ('meta_type', None, 'missing.png'),
+        ('ghostfolder', 'folder', 'ghost_folder.gif'),
+        ('ghostfolder', 'publication', 'ghost_publication.gif'),
+        ('ghostfolder', 'link_broken', 'ghost_broken.png'),
+        ('ghost', 'link_ok', 'ghost.gif'),
+        ('ghost', 'link_broken', 'ghost_broken.png'),
+    ]
+    for cls, kind, icon_name in misc_icons:
+        registry.register(
+            (cls, kind),
+            '++static++/silva.icons/%s' % icon_name)
+
+    return registry
 
 
 class IconResolver(grok.Adapter):
     grok.context(IBrowserRequest)
     grok.implements(IIconResolver)
 
-    default = '++static++/silva.icons/silvageneric.gif'
+    default = '++static++/silva.icons/generic.gif'
 
     def __init__(self, request):
         self.request = request
 
-    @CachedProperty
+    @Lazy
     def _base_url(self):
         site = IVirtualSite(self.request)
         return site.get_root_url()
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/autotoc.png
Binary file Products/Silva/icons/autotoc.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/file.png
Binary file Products/Silva/icons/file.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/folder.gif
Binary file Products/Silva/icons/folder.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/generic.gif
Binary file Products/Silva/icons/generic.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/ghost.gif
Binary file Products/Silva/icons/ghost.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/ghost_broken.gif
Binary file Products/Silva/icons/ghost_broken.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/ghost_folder.gif
Binary file Products/Silva/icons/ghost_folder.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/ghost_publication.gif
Binary file Products/Silva/icons/ghost_publication.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/image.gif
Binary file Products/Silva/icons/image.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/indexer.png
Binary file Products/Silva/icons/indexer.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/link.png
Binary file Products/Silva/icons/link.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/member.png
Binary file Products/Silva/icons/member.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/publication.gif
Binary file Products/Silva/icons/publication.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/root.png
Binary file Products/Silva/icons/root.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/service_extension.png
Binary file Products/Silva/icons/service_extension.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/service_files.gif
Binary file Products/Silva/icons/service_files.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/service_member.png
Binary file Products/Silva/icons/service_member.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/service_message.png
Binary file Products/Silva/icons/service_message.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/silvageneric.gif
Binary file Products/Silva/icons/silvageneric.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/silvaghost.gif
Binary file Products/Silva/icons/silvaghost.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/silvaghost_broken.png
Binary file Products/Silva/icons/silvaghost_broken.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/silvaghost_folder.gif
Binary file Products/Silva/icons/silvaghost_folder.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/icons/silvaghost_publication.gif
Binary file Products/Silva/icons/silvaghost_publication.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/tests/test_icon.py
--- a/Products/Silva/tests/test_icon.py	Wed Jul 31 14:50:57 2013 +0200
+++ b/Products/Silva/tests/test_icon.py	Tue Aug 27 11:53:08 2013 +0200
@@ -76,7 +76,7 @@
             '<img height="16" width="16" src="http://localhost/root/++resource++icon-Silva-Root.png" alt="Silva Root" />')
         self.assertEqual(
             resolver.get_tag(identifier='default'),
-            '<img height="16" width="16" src="http://localhost/root/++static++/silva.icons/silvageneric.gif" alt="default" />')
+            '<img height="16" width="16" src="http://localhost/root/++static++/silva.icons/generic.gif" alt="default" />')
         self.assertEqual(
             resolver.get_tag(),
             '<img height="16" width="16" src="http://localhost/root/++static++/silva.icons/missing.png" alt="Missing" />')
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/autotoc.png
Binary file Products/Silva/www/autotoc.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/containerpolicy_service.png
Binary file Products/Silva/www/containerpolicy_service.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/extension_service.gif
Binary file Products/Silva/www/extension_service.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/files_service.gif
Binary file Products/Silva/www/files_service.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/link.png
Binary file Products/Silva/www/link.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/member.png
Binary file Products/Silva/www/member.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/members.png
Binary file Products/Silva/www/members.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/message_service.png
Binary file Products/Silva/www/message_service.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silva.png
Binary file Products/Silva/www/silva.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvafile.png
Binary file Products/Silva/www/silvafile.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvafolder.gif
Binary file Products/Silva/www/silvafolder.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvaghost.gif
Binary file Products/Silva/www/silvaghost.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvaimage.gif
Binary file Products/Silva/www/silvaimage.gif has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvaindexer.png
Binary file Products/Silva/www/silvaindexer.png has changed
diff -r 913fc5451b2f -r 30d0bbee6340 Products/Silva/www/silvapublication.gif
Binary file Products/Silva/www/silvapublication.gif has changed