cybertools/container
helmutm 0be4751c55 Refactored ordered container stuff out of loops package and put into cybertools.container
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1035 fd906abe-77d9-0310-91a1-e0d9ade77398
2006-01-27 08:21:24 +00:00
..
__init__.py Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
configure.zcml Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
contents.pt Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
cybertools.container-configure.zcml Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
DEPENDENCIES.cfg Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
interfaces.py Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
ordered.py Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
README.txt Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
SETUP.cfg Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00
tests.py Refactored ordered container stuff out of loops package and put into cybertools.container 2006-01-27 08:21:24 +00:00

Ordered Containers
==================

  ($Id$)

  >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
  >>> site = placefulSetUp(True)
  >>> from zope.interface import implements

Let's add an ordered container and place some objects in it:
      
  >>> from zope.app.container.interfaces import IOrderedContainer
  >>> import zope.app.container.ordered
  >>> class OrderedContainer(zope.app.container.ordered.OrderedContainer):
  ...     implements(IOrderedContainer)

  >>> c1 = OrderedContainer()
  >>> site['c1'] = c1
  >>> c1['sub1'] = OrderedContainer()
  >>> c1['sub2'] = OrderedContainer()
  >>> c1['sub3'] = OrderedContainer()
  >>> c1['sub4'] = OrderedContainer()
  >>> c1.keys()
  ['sub1', 'sub2', 'sub3', 'sub4']
      
A special management view provides methods for moving objects down, up,
to the bottom, and to the top
      
  >>> from cybertools.container.ordered import OrderedContainerView
  >>> from zope.publisher.browser import TestRequest
  >>> view = OrderedContainerView(c1, TestRequest())
  >>> view.moveToBottom(('sub3',))
  >>> c1.keys()
  ['sub1', 'sub2', 'sub4', 'sub3']
  >>> view.moveUp(('sub4',), 1)
  >>> c1.keys()
  ['sub1', 'sub4', 'sub2', 'sub3']
  >>> view.moveToTop(('sub2',))
  >>> c1.keys()
  ['sub2', 'sub1', 'sub4', 'sub3']
  >>> view.moveDown(('sub2',), 2)
  >>> c1.keys()
  ['sub1', 'sub4', 'sub2', 'sub3']

The end...
==========

  >>> placefulTearDown()