#
# Copyright (c) 2008-2015 Thierry Florac <tflorac AT ulthar.net>
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
"""PyAMS_viewlet.interfaces module
The module defines viewlet and viewlets manager interfaces.
"""
from zope.contentprovider.interfaces import IContentProvider
from zope.interface import Attribute
from zope.interface.common.mapping import IReadMapping
__docformat__ = 'restructuredtext'
[docs]class IViewlet(IContentProvider):
"""A content provider that is managed by another content provider, known
as viewlet manager.
Note that you *cannot* call viewlets directly as a provider, i.e. through
the TALES ``provider`` expression, since it always has to know its manager.
"""
manager = Attribute("""The Viewlet Manager
The viewlet manager for which the viewlet is registered. The viewlet
manager will contain any additional data that was provided by the
view.
""")
[docs]class IViewletManager(IContentProvider, IReadMapping):
"""A component that provides access to the content providers.
The viewlet manager's responsibilities are:
(1) Aggregation of all viewlets registered for the manager.
(2) Apply a set of filters to determine the availability of the
viewlets.
(3) Sort the viewlets based on some implemented policy.
(4) Provide an environment in which the viewlets are rendered.
(5) Render itself by rendering the HTML content of the viewlets.
"""
def filter(self, viewlets):
"""Filter manager viewlets"""
def sort(self, viewlets):
"""Sort manager viewlets"""
def reset(self):
"""Reset manager status; this can be required if the manager between renderings"""