diff options
author | Tres Seaver <tseaver@palladion.com> | 2009-05-13 20:52:19 +0000 |
---|---|---|
committer | Tres Seaver <tseaver@palladion.com> | 2009-05-13 20:52:19 +0000 |
commit | e4606fb77ec39f75f64954b22cdfdf90800a9387 (patch) | |
tree | 0cb953ea06c842aaa8f9cbd5dcc83f5ef68f2715 /src | |
parent | 97e30537a10ac446da0f44776a5eccd3d7d105d2 (diff) | |
download | zope-browser-e4606fb77ec39f75f64954b22cdfdf90800a9387.tar.gz |
Move ``IView`` and ``IBrowserView`` interfaces here from
``zope.publisher.interfaces`` to break undesirable dependencies.
Diffstat (limited to 'src')
-rw-r--r-- | src/zope/browser/README.txt | 59 | ||||
-rw-r--r-- | src/zope/browser/interfaces.py | 29 |
2 files changed, 65 insertions, 23 deletions
diff --git a/src/zope/browser/README.txt b/src/zope/browser/README.txt index 4db3d51..d6ae4d2 100644 --- a/src/zope/browser/README.txt +++ b/src/zope/browser/README.txt @@ -1,23 +1,54 @@ -====== -README -====== +IView +----- -This package provides shared browser components for Zope 3. +Views adapt both a context and a request. +There is not much we can test except that ``IView`` is importable +and an interface: + +.. doctest:: + + >>> from zope.interface import Interface + >>> from zope.browser.interfaces import IView + >>> Interface.providedBy(IView) + True + +IBrowserView +------------- + +Browser views are views specialized for requests from a browser (e.g., +as distinct from WebDAV, FTP, XML-RPC, etc.). + +There is not much we can test except that ``IBrowserView`` is importable +and an interface derived from ``IView``: + +.. doctest:: + + >>> from zope.interface import Interface + >>> from zope.browser.interfaces import IBrowserView + >>> Interface.providedBy(IBrowserView) + True + >>> IBrowserView.extends(IView) + True ITerms ------ -The ITerms interface is used as a base for ISource widget implementations. This -interfaces get used by zope.app.form and was initially defined in -zope.app.form.browser.interfaces.py. This makes it impossible to use for other -packages like z3c.form wihtout to depend on zope.app.form. Moving such base -components or interfaces to zope.browser will make it possible to share such -base components. +The ``ITerms`` interface is used as a base for ``ISource`` widget +implementations. This interfaces get used by ``zope.app.form`` and was +initially defined in ``zope.app.form.browser.interfaces``, which made it +impossible to use for other packages like ``z3c.form`` wihtout depending on +``zope.app.form``. + +Moving such base components / interfaces to ``zope.browser`` makes it +possible to share them without undesirable dependencies. + +There is not much we can test except that ITerms is importable +and an interface: -There is not much we can test except that ITerms is importable and an interface: +.. doctest:: - >>> import zope.interface - >>> from zope.browser import interfaces - >>> zope.interface.Interface.providedBy(interfaces.ITerms) + >>> from zope.interface import Interface + >>> from zope.browser.interfaces import ITerms + >>> Interface.providedBy(ITerms) True diff --git a/src/zope/browser/interfaces.py b/src/zope/browser/interfaces.py index e212bb0..b0c5788 100644 --- a/src/zope/browser/interfaces.py +++ b/src/zope/browser/interfaces.py @@ -1,6 +1,6 @@ ##############################################################################
#
-# Copyright (c) 2004 Zope Corporation and Contributors.
+# Copyright (c) 2004-2009 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
@@ -12,17 +12,28 @@ #
##############################################################################
"""Shared dependency less Zope3 brwoser components.
-
-$Id:$
"""
-
-import zope.interface
-
__docformat__ = 'restructuredtext'
-
-class ITerms(zope.interface.Interface):
-
+from zope.interface import Attribute
+from zope.interface import Interface
+
+class IView(Interface):
+ """ Views are multi-adapters for context and request objects.
+ """
+ context = Attribute("The context object the view renders")
+ request = Attribute("The request object driving the view")
+
+class IBrowserView(IView):
+ """ Views which are specialized for requests from a browser
+
+ o Such views are distinct from those geerated via WebDAV, FTP, XML-RPC,
+ etc..
+ """
+
+class ITerms(Interface):
+ """ Adapter providing lookups for vocabulary terms.
+ """
def getTerm(value):
"""Return an ITitledTokenizedTerm object for the given value
|