diff --git a/browser/configure.zcml b/browser/configure.zcml index 729893d..69aebe9 100644 --- a/browser/configure.zcml +++ b/browser/configure.zcml @@ -565,6 +565,35 @@ + + + + + + + + + + + - - - - - - - - - - diff --git a/configure.zcml b/configure.zcml index a778f5c..79ca278 100644 --- a/configure.zcml +++ b/configure.zcml @@ -184,6 +184,20 @@ interface="zope.app.container.interfaces.IReadContainer" />--> + + + + + + + + - @@ -435,6 +448,7 @@ + diff --git a/interfaces.py b/interfaces.py index 24eb26a..bfb67c4 100644 --- a/interfaces.py +++ b/interfaces.py @@ -511,6 +511,23 @@ class INodeContained(Interface): containers(INode, IViewManager) +# layout views/nodes + +class ILayoutView(INodeSchema): + """ Base interface for view nodes that use the cybertools.composer.layout + presentation mechanism. + """ + + +class ILayoutNode(ILayoutView, IBaseNode): + + contains(ILayoutView) + + +class ILayoutNodeContained(Interface): + containers(ILayoutNode, IViewManager) + + # record manager interfaces class IRecordManager(ILoopsObject): diff --git a/browser/layout/__init__.py b/layout/__init__.py similarity index 100% rename from browser/layout/__init__.py rename to layout/__init__.py diff --git a/browser/layout/node.py b/layout/base.py similarity index 62% rename from browser/layout/node.py rename to layout/base.py index a0e04bd..72ea308 100644 --- a/browser/layout/node.py +++ b/layout/base.py @@ -17,33 +17,18 @@ # """ -Layout management and controlling via view space nodes. +Layout stuff $Id$ """ -from zope.cachedescriptors.property import Lazy -from zope.component import adapts from zope.interface import implements -from cybertools.composer.layout.interfaces import ILayout -from loops.interfaces import INode -from loops.view import nodeTypes, NodeAdapter +from loops.interfaces import ILayoutNode, ILayoutNodeContained +from loops.view import Node -nodeTypes.append(('layout', 'Layout')) +class LayoutNode(Node): - -class NodeLayoutProvider(NodeAdapter): - - pass - - -class NodeLayout(object): - - implements(ILayout) - adapts(INode) - - def __init__(self, context): - self.context = context + implements(ILayoutNode, ILayoutNodeContained) diff --git a/layout/configure.zcml b/layout/configure.zcml new file mode 100644 index 0000000..458624a --- /dev/null +++ b/layout/configure.zcml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + diff --git a/tests/setup.py b/tests/setup.py index d056dcb..d119d48 100644 --- a/tests/setup.py +++ b/tests/setup.py @@ -52,6 +52,7 @@ from loops.concept import IndexAttributes as ConceptIndexAttributes from loops.config.base import GlobalOptions, LoopsOptions from loops.interfaces import ILoopsObject, IIndexAttributes from loops.interfaces import IDocument, IFile, ITextDocument +from loops.layout.base import LayoutNode from loops.organize.memberinfo import MemberInfoProvider from loops.organize.stateful.base import StatefulResourceIndexInfo, handleTransition from loops.predicate import Predicate #, MappingAttributeRelation diff --git a/view.py b/view.py index f0a9e36..8cd750e 100644 --- a/view.py +++ b/view.py @@ -37,6 +37,7 @@ from zope.security.proxy import removeSecurityProxy from zope.traversing.api import getName, getParent from persistent import Persistent +from cybertools.composer.layout.base import LayoutManager from cybertools.relation import DyadicRelation from cybertools.relation.registry import getRelations from cybertools.relation.interfaces import IRelationRegistry, IRelatable @@ -45,6 +46,7 @@ from loops.base import ParentInfo from loops.common import AdapterBase from loops.interfaces import IView, INode, INodeSchema, INodeAdapter from loops.interfaces import IViewManager, INodeContained +from loops.interfaces import ILayoutNode, ILayoutNodeContained from loops.interfaces import ILoopsContained from loops.interfaces import ITargetRelation from loops.interfaces import IConcept @@ -176,6 +178,11 @@ class Node(View, OrderedContainer): return self.nodeType in ('page', 'menu') +class LayoutNode(Node, LayoutManager): + + implements(ILayoutNode, ILayoutNodeContained) + + class ViewManager(OrderedContainer): implements(IViewManager, ILoopsContained)