Metadata-Version: 1.1
Name: zope.app.tree
Version: 4.0.0
Summary: Static Tree Implementation
Home-page: http://github.com/zopefoundation/zope.app.tree
Author: Zope Corporation and Contributors
Author-email: zope-dev@zope.org
License: ZPL 2.1
Description: This package was designed to be a light-weight and easy-to-use static tree
        implementation. It allows the developer to quickly create trees with nodes
        that can be opened and closed without the use of JavaScript. The tree state
        can be retained over multiple sessions.
        
        
        ==========
         ZopeTree
        ==========
        
        
        What is ZopeTree?
        =================
        
        ZopeTree is a port of Philipp's Zope2 product ZopeTree. ZopeTree was
        meant to be a light-weight and easy-to-use static tree implementation,
        mainly designed for use in ZPTs. It was originally written because
        Zope2's `ZTUtils.Tree` was found to be too complicated and inflexible.
        
        The `ZTUtils` package has not been ported to Zope3. Parts of it, like
        batching, have found their way into Zope3, though. Only support for
        static tree generation is not in the core.
        
        
        How to use it
        =============
        
        Using the skin
        --------------
        
        ZopeTree comes with a pre-defined skin, StaticTree. It looks just
        like Zope3's default skin, Rotterdam, except that it displays a static
        tree in the navigation box instead of the Javascript/XML based dynamic
        tree.
        
        Using predefined views on objects
        ---------------------------------
        
        ZopeTree comes with several predefined views:
        
        `cookie_tree`
          simple view using cookies for tree state storage.
        
        `folder_cookie_tree`
          same as above, however only showing folders.
        
        `site_cookie_tree`
          same as above, with the nearest site as root node.
        
        `root_cookie_tree`
          same as above, with the root container as root node.
        
        The example page template(s) in the browser package give an idea how
        to use these views for HTML templating.
        
        Customization
        =============
        
        The best way to customize ZopeTree is to define your own view for
        objects (usually '*'). If you want to use the cookie functionality,
        simply extend the cookie browser view::
        
          from zope.app.tree.filters import OnlyInterfacesFilter
          from zope.app.tree.browser.cookie import CookieTreeView
        
          class BendableStaticTreeView(StaticTreeView):
        
              def bendablesTree(self):
                  # tree with only IBendables, but also show the folder
                  # they're in
                  filter = OnlyInterfacesFilter(IBendable, IFolder)
                  return self.cookieTree(filter)
        
        You can also write your own filters. All you have to do is implement
        the IObjectFindFilter interface (which is trivial)::
        
          from zope.interface import implements
          from zope.app.interfaces.find import IObjectFindFilter
        
          class BendableFilter:
              implements(IObjectFindFilter)
        
              def matches(self, obj)
                  # only allow bendable objects
                  return obj.isBendable()
        
        
        License and Copyright
        =====================
        
        This product is released under the terms of the `Zope Public License
        (ZPL) v2.1`__. See the `ZopePublicLicense.txt` file at the root of your
        Zope distribution.
        
        Copyright (c) 2003 Philipp "philiKON" von Weitershausen
        Copyright (c) 2004 Zope Corporation and Contributors
        
        .. __: http://www.zope.org/Resources/ZPL/ZPL-2.1
        
        
        Credits
        =======
        
        Thanks to ZopeMag (http://zopemag.com) for sponsoring development of
        the original ZopeTree product.
        
        Thanks to Runyaga LLC (http://runyaga.com) for sponsoring the Zope3
        port.
        
        
        =========
         CHANGES
        =========
        
        4.0.0 (2017-05-16)
        ==================
        
        - Add support for Python 3.4, 3.5, 3.6 and PyPy.
        
        - Fix #264614: Test for node filter didn't do what it was expected to do.
        
        - Import ISite from zope.component after it was moved there from
          zope.location.
        
        3.6.0 (2009-02-01)
        ==================
        
        - Converted from using zope.app.container to zope.container.
        
        3.5.1 (2009-01-29)
        ==================
        
        - Add compatibility for newer zope.traversing releases that require us
          to explicitly set up testing. This also works with older releases.
        
        3.5.0 (2009-01-17)
        ==================
        
        - Get rid of zope.app.zapi dependency, replacing its uses with
          direct imports.
        
        - Clean up dependencies, move testing and rotterdam dependencies
          to extra requires.
        
        - Fix mailing list address to zope-dev@zope.org instead of retired
          zope3-dev@zope.org. Change `cheeseshop` to `pypi` in the package
          url.
        
        - Replace __used_for__ in adapters.py with zope.component.adapts
          calls to make more sense.
        
        - Remove obsolete zpkg files, zcml include file for mkzopeinstance-based
          installations, versions.txt that makes no sense now.
        
        3.4.0 (2007-10-28)
        ==================
        
        - Initial release independent of the main Zope tree.
        
        v1.2 (2004-02-19) -- 'Scruffy'
        ==============================
        
        - Moved to `zope.app.tree`
        
        - It is now called 'ZopeTree' again.  Hoorray!
        
        - Refactored browser stuff into its own browser subpackage.
        
        - Separated the handling of tree state from the cookie functionality
          to provide a base class for views based on other tree state sources.
        
        v1.1 (2004-02-16) -- 'Zapp'
        ===========================
        
        - Added support for displaying lines in a tree (Stephan Richter)
        
          - Changes in `Node.getFlatDict()` to provide more data.  Removed
            'depth' from node info, but added 'row-state' and
            'last-level-node'.  Changed interface and test accordingly.
        
          - Updated templates for `StaticTree` skin and example.  Note that
            third party templates from 1.0.x will not work anymore and must be
            updated as well!
        
        v1.0.1 (2004-01-16) -- 'Nibbler'
        ================================
        
        - Added last remaining pieces for unit tests
        
        - Updated documentation
        
        - Rounded some rough edges in the skin
        
        - Integrated it into the Zope3 distribution below the `zope.products`
          package
        
        v1.0 (2003-11-24) -- 'Lur'
        ==========================
        
        - Ported to Zope 3
        
        - Renamed it to 'statictree'
        
        - Much more unit tests
        
        - Added filter functionality
        
        - Provided sample implementations as well as an alternate
          rotterdam-like skin using the static tree
        
Keywords: zope3 tree static zpt
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
