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()