src/ztfy/baseskin/viewlet.py
changeset 0 747fc65e13e2
equal deleted inserted replaced
-1:000000000000 0:747fc65e13e2
       
     1 ### -*- coding: utf-8 -*- ####################################################
       
     2 ##############################################################################
       
     3 #
       
     4 # Copyright (c) 2008-2014 Thierry Florac <tflorac AT ulthar.net>
       
     5 # All Rights Reserved.
       
     6 #
       
     7 # This software is subject to the provisions of the Zope Public License,
       
     8 # Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
       
     9 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
       
    10 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
       
    11 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
       
    12 # FOR A PARTICULAR PURPOSE.
       
    13 #
       
    14 ##############################################################################
       
    15 
       
    16 __docformat__ = "restructuredtext"
       
    17 
       
    18 # import standard packages
       
    19 
       
    20 # import Zope3 interfaces
       
    21 from zope.contentprovider.interfaces import IContentProvider
       
    22 
       
    23 # import local interfaces
       
    24 from ztfy.baseskin.interfaces.form import IFormViewletsManager, IFormPrefixViewletsManager, \
       
    25     IWidgetsPrefixViewletsManager, IWidgetsSuffixViewletsManager, IFormSuffixViewletsManager
       
    26 
       
    27 # import Zope3 packages
       
    28 from z3c.template.template import getViewTemplate
       
    29 from zope.component import adapts
       
    30 from zope.interface import implements, Interface
       
    31 from zope.viewlet.viewlet import ViewletBase as Viewlet
       
    32 from zope.viewlet.manager import ViewletManagerBase as ViewletManager, WeightOrderedViewletManager
       
    33 
       
    34 # import local packages
       
    35 from ztfy.baseskin.layer import IBaseSkinLayer
       
    36 
       
    37 
       
    38 class ViewletManagerBase(ViewletManager):
       
    39     """Template based viewlet manager class"""
       
    40 
       
    41     template = getViewTemplate()
       
    42 
       
    43 
       
    44 class WeightViewletManagerBase(WeightOrderedViewletManager):
       
    45     """Template based weighted viewlet manager class"""
       
    46 
       
    47     template = getViewTemplate()
       
    48 
       
    49 
       
    50 class ViewletBase(Viewlet):
       
    51     """Template based viewlet"""
       
    52 
       
    53     render = getViewTemplate()
       
    54 
       
    55 
       
    56 class ContentProviderBase(object):
       
    57     """Generic template based content provider"""
       
    58 
       
    59     adapts(Interface, IBaseSkinLayer, Interface)
       
    60     implements(IContentProvider)
       
    61 
       
    62     def __init__(self, context, request, view):
       
    63         self.context = context
       
    64         self.request = request
       
    65         self.__parent__ = view
       
    66 
       
    67     def update(self):
       
    68         pass
       
    69 
       
    70     render = getViewTemplate()
       
    71 
       
    72 
       
    73 class FormViewletManager(WeightOrderedViewletManager):
       
    74     """Base form viewlet manager"""
       
    75 
       
    76     implements(IFormViewletsManager)
       
    77 
       
    78 
       
    79 class FormPrefixViewletManager(FormViewletManager):
       
    80     """Form prefix viewlet manager, displayed before form"""
       
    81 
       
    82     implements(IFormPrefixViewletsManager)
       
    83 
       
    84 
       
    85 class WidgetsPrefixViewletManager(FormViewletManager):
       
    86     """Form widgets prefix display manager, displayed before widgets"""
       
    87 
       
    88     implements(IWidgetsPrefixViewletsManager)
       
    89 
       
    90 
       
    91 class WidgetsSuffixViewletManager(FormViewletManager):
       
    92     """Form widgets suffix viewlet manager, displayed after widgets"""
       
    93 
       
    94     implements(IWidgetsSuffixViewletsManager)
       
    95 
       
    96 
       
    97 class FormSuffixViewletManager(FormViewletManager):
       
    98     """Form suffix viewlet manager, displayed after form"""
       
    99 
       
   100     implements(IFormSuffixViewletsManager)