cybertools/cybertools/container
2024-09-25 09:31:49 +02:00
..
__init__.py cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
base.py remove deprecated zope.app.container references 2024-09-23 22:50:46 +02:00
configure.zcml remove deprecated zope.app.container references 2024-09-23 22:50:46 +02:00
contents.pt cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
cybertools.container-configure.zcml cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
DEPENDENCIES.cfg cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
interfaces.py cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
ordered.py container: Python3 fix 2024-09-25 09:31:49 +02:00
README.txt remove deprecated zope.app.container references 2024-09-23 22:50:46 +02:00
SETUP.cfg cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00
tests.py cybertools.text: OK on py3 2023-11-27 18:49:05 +01:00

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

Let's add an ordered container and place some objects in it:
      
  >>> from zope.container.ordered import OrderedContainer
  >>> c1 = OrderedContainer()
  >>> 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.move_bottom(('sub3',))
  >>> c1.keys()
  ['sub1', 'sub2', 'sub4', 'sub3']
  >>> view.move_up(('sub4',), 1)
  >>> c1.keys()
  ['sub1', 'sub4', 'sub2', 'sub3']
  >>> view.move_top(('sub2',))
  >>> c1.keys()
  ['sub2', 'sub1', 'sub4', 'sub3']
  >>> view.move_down(('sub2',), 2)
  >>> c1.keys()
  ['sub1', 'sub4', 'sub2', 'sub3']