diff --git a/z2/browser/__init__.py b/z2/browser/__init__.py
new file mode 100644
index 0000000..38314f3
--- /dev/null
+++ b/z2/browser/__init__.py
@@ -0,0 +1,3 @@
+"""
+$Id$
+"""
diff --git a/z2/browser/configure.zcml b/z2/browser/configure.zcml
new file mode 100644
index 0000000..f5b6abc
--- /dev/null
+++ b/z2/browser/configure.zcml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/z2/browser/generic.pt b/z2/browser/generic.pt
new file mode 100644
index 0000000..01755ca
--- /dev/null
+++ b/z2/browser/generic.pt
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/z2/browser.py b/z2/browser/view.py
similarity index 60%
rename from z2/browser.py
rename to z2/browser/view.py
index d161617..baeceae 100644
--- a/z2/browser.py
+++ b/z2/browser/view.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2010 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,12 +22,38 @@ Base classes for views.
$Id$
"""
+from zope.app.pagetemplate import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from zope import component
from Products.Five import BrowserView
+#from Products.Five.browser.pagetemplatefile import PageTemplateFile
-class GenericView(BrowserView):
+generic_page = ViewPageTemplateFile('generic.pt')
+view_macros = ViewPageTemplateFile('view_macros.pt')
+
+
+class BaseView(BrowserView):
+
+ index = generic_page
+ default_template = None # specify in subclass
+
+ def __call__(self):
+ return self.index(self)
+
+ def getMainMacro(self):
+ return view_macros.macros['main']
+
+ def getDefaultTemplate(self):
+ return self.default_template
+
+ def getContentMacro(self):
+ return self.getDefaultTemplate().macros[self.content_renderer]
+
+
+# generic views for use with generic persistent objects with type-based adapters
+
+class GenericView(BaseView):
name = 'index_html'
diff --git a/z2/browser/view_macros.pt b/z2/browser/view_macros.pt
new file mode 100644
index 0000000..839b04e
--- /dev/null
+++ b/z2/browser/view_macros.pt
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
Top Bar
+
+
+
+ Content
+
+
+
+
+
+
+
+
diff --git a/z2/configure.zcml b/z2/configure.zcml
index 6d22a6b..f63e19c 100644
--- a/z2/configure.zcml
+++ b/z2/configure.zcml
@@ -14,16 +14,6 @@
-->
-
-
-
+