[Checkins] SVN: zope.generic/trunk/src/zope/generic/type/ add
ordered container as base type
Dominik Huber
dominik.huber at perse.ch
Thu Apr 20 10:24:05 EDT 2006
Log message for revision 67175:
add ordered container as base type
Changed:
U zope.generic/trunk/src/zope/generic/type/api.py
U zope.generic/trunk/src/zope/generic/type/base.py
U zope.generic/trunk/src/zope/generic/type/configure.zcml
-=-
Modified: zope.generic/trunk/src/zope/generic/type/api.py
===================================================================
--- zope.generic/trunk/src/zope/generic/type/api.py 2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/api.py 2006-04-20 14:24:03 UTC (rev 67175)
@@ -22,6 +22,7 @@
from zope.generic.type.base import Contained
from zope.generic.type.base import Container
from zope.generic.type.base import Folder
+from zope.generic.type.base import OrderedContainer
from zope.generic.type.helper import acquireObjectConfiguration
from zope.generic.type.helper import createObject
Modified: zope.generic/trunk/src/zope/generic/type/base.py
===================================================================
--- zope.generic/trunk/src/zope/generic/type/base.py 2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/base.py 2006-04-20 14:24:03 UTC (rev 67175)
@@ -25,6 +25,7 @@
from zope.app.annotation.interfaces import IAttributeAnnotatable
from zope.app.container import contained
from zope.app.container import btree
+from zope.app.container import ordered
from zope.app import folder
from zope.generic.configuration.api import IAttributeConfigurable
@@ -54,7 +55,9 @@
__keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
- keyface = __keyface__
+ @property
+ def keyface(self):
+ return self.__keyface__
@@ -75,7 +78,9 @@
__keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
- keyface = __keyface__
+ @property
+ def keyface(self):
+ return self.__keyface__
class Container(btree.BTreeContainer):
@@ -95,9 +100,35 @@
__keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
- keyface = __keyface__
+ @property
+ def keyface(self):
+ return self.__keyface__
+
+class OrderedContainer(ordered.OrderedContainer):
+ """Default implementation local, persistend and ordered-containerish objects."""
+
+ implements(IDirectlyTyped, IAttributeConfigurable, IAttributeAnnotatable)
+
+ def __init__(self, __keyface__, *pos, **kws):
+ super(OrderedContainer, self).__init__()
+ self.__dict__['__keyface__'] = __keyface__
+ updateDirectlyProvided(self, __keyface__)
+ initializer = IInitializer(self, None)
+ if initializer:
+ initializer(*pos, **kws)
+
+ provides('__keyface__')
+
+ __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
+
+ @property
+ def keyface(self):
+ return self.__keyface__
+
+
+
class Folder(folder.Folder):
"""Default implementation local, persistend and containerish possible sites."""
@@ -115,4 +146,6 @@
__keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
- keyface = __keyface__
+ @property
+ def keyface(self):
+ return self.__keyface__
Modified: zope.generic/trunk/src/zope/generic/type/configure.zcml
===================================================================
--- zope.generic/trunk/src/zope/generic/type/configure.zcml 2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/configure.zcml 2006-04-20 14:24:03 UTC (rev 67175)
@@ -41,6 +41,26 @@
/>
</class>
+ <!-- persistent generic ordered container implementation -->
+ <class class=".base.OrderedContainer">
+ <require
+ permission="zope.Public"
+ interface="zope.generic.type.ITyped"
+ />
+ <require
+ permission="zope.View"
+ interface="zope.app.container.interfaces.IReadContainer"
+ />
+ <require
+ permission="zope.ManageContent"
+ interface="zope.app.container.interfaces.IWriteContainer"
+ />
+ <require
+ permission="zope.ManageContent"
+ attributes="updateOrder"
+ />
+ </class>
+
<!-- persistent generic folder implementation -->
<class class=".base.Folder">
<require
More information about the Checkins
mailing list