[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8076 - in trunk: gnue-common/src/definitions gnue-reports/sample
From: |
btami |
Subject: |
[gnue] r8076 - in trunk: gnue-common/src/definitions gnue-reports/samples/foobulations gnue-reports/src/adapters/filters/Char gnue-reports/src/adapters/filters/Char/char gnue-reports/src/adapters/filters/Char/char/CHObjects gnue-reports/src/base/layout |
Date: |
Mon, 24 Oct 2005 08:19:02 -0500 (CDT) |
Author: btami
Date: 2005-10-24 08:19:01 -0500 (Mon, 24 Oct 2005)
New Revision: 8076
Modified:
trunk/gnue-common/src/definitions/GParser.py
trunk/gnue-reports/samples/foobulations/char.grd
trunk/gnue-reports/src/adapters/filters/Char/__init__.py
trunk/gnue-reports/src/adapters/filters/Char/char/Adapter.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHLabel.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHObject.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageFooter.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageHeader.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHSummaryPage.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHTitlePage.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHParser.py
trunk/gnue-reports/src/adapters/filters/Char/char/CHReport.py
trunk/gnue-reports/src/adapters/filters/Char/char/Writer.py
trunk/gnue-reports/src/base/layout/GRPassThru.py
Log:
preparing for designer's report support
Modified: trunk/gnue-common/src/definitions/GParser.py
===================================================================
--- trunk/gnue-common/src/definitions/GParser.py 2005-10-21 21:07:59 UTC
(rev 8075)
+++ trunk/gnue-common/src/definitions/GParser.py 2005-10-24 13:19:01 UTC
(rev 8076)
@@ -32,7 +32,7 @@
from gnue.common.definitions.GObjects import GObj
from gnue.common.definitions.GRootObj import GRootObj
from gnue.common.logic.GTrigger import GTrigger
-from gnue.common.utils.FileUtils import openResource
+from gnue.common.utils.FileUtils import openResource, dyn_import
try:
from xml.sax.handler import property_lexical_handler
@@ -248,6 +248,7 @@
self._tagCounts = {}
self.url = None
self.rootComments = []
+ self.doImportLayoutParser = True
#
# Called by client code to get the "root" node
@@ -300,6 +301,19 @@
loadedxmlattrs = {}
baseAttrs = {}
+ # Updating self.xmlElements with namespace specific parser definitions
+ # to let designer handle layout tags.
+ if self.default_namespace is None and self.doImportLayoutParser and ns:
+ try:
+ gnue, tool, toolNS = ns.split(':')
+ layoutParser = dyn_import('gnue.%s.adapters.filters.%s.LayoutParser' %
\
+ (tool.lower(), toolNS))
+ self.xmlElements.update(layoutParser.getXMLelements())
+ self.default_namespace = ns
+ except:
+ self.doImportLayoutParser = False
+ assert gDebug (7, "No parser defined for namespace %s, using PassThru
objects." % ns)
+
if not ns or ns == self.default_namespace:
#
# No namespace qualifier
@@ -399,9 +413,13 @@
self.root = object
self.bootstrapflag = 1
- self._tagCounts[name] += 1
+ try:
+ self._tagCounts[name] += 1
+ except KeyError:
+ pass
object._xmltag = name
+ object._xmlnamespace = ns
elif self.xmlMasqueradeNamespaceElements:
#
Modified: trunk/gnue-reports/samples/foobulations/char.grd
===================================================================
--- trunk/gnue-reports/samples/foobulations/char.grd 2005-10-21 21:07:59 UTC
(rev 8075)
+++ trunk/gnue-reports/samples/foobulations/char.grd 2005-10-24 13:19:01 UTC
(rev 8076)
@@ -5,7 +5,7 @@
</sources>
<layout xmlns:out="GNUe:Reports:Char" >
- <out:report width="80" height="15">
+ <out:chreport width="80" height="15">
<out:pageheader height="4">
<out:label x="0" y="0" width="80" align="center" bold="Y"
underline="Y">Monthly Accounting Foobulation Report</out:label>
@@ -64,7 +64,7 @@
<out:label x="65" y="2" width="10"><summ function="sum"
section="mynameBreak" field="foobs"/></out:label>
</out:summarypage>
- </out:report>
+ </out:chreport>
</layout>
</report>
Modified: trunk/gnue-reports/src/adapters/filters/Char/__init__.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/__init__.py 2005-10-21
21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/__init__.py 2005-10-24
13:19:01 UTC (rev 8076)
@@ -0,0 +1,4 @@
+from char import CHParser
+
+class LayoutParser(CHParser):
+ pass
Modified: trunk/gnue-reports/src/adapters/filters/Char/char/Adapter.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/Adapter.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/Adapter.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -19,7 +19,7 @@
# Copyright 2003-2004 Free Software Foundation
#
# $Id: Adapter.py 6763 2004-11-30 23:36:21Z jcater $
-
+
"""
Class that contains the base filter adapter for GNUe Reports'
"Char" markup.
@@ -72,6 +72,6 @@
def parse(self, report):
self.writer.initialize(report)
- report.process(self.writer)
+ report.chProcess(self.writer)
self.writer.finalize()
Modified: trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHLabel.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHLabel.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHLabel.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -36,7 +36,7 @@
def __init__(self, parent=None, type='CHLabel'):
CHObject.__init__(self, parent, type=type)
- def process(self, writer, band):
+ def chProcess(self, writer, band):
writer.render(self.getChildrenAsContent(), self.x, self.y, self.width,
band,
align=self.align, condensed=self.condensed, bold=self.bold,
italic=self.italic, underline=self.underline)
Modified:
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHObject.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHObject.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHObject.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -30,12 +30,12 @@
__all__ = ['CHObject', 'CHBand']
-from gnue.common.definitions.GObjects import GObj
+from gnue.reports.base.layout.GRPassThru import GRPassThru
-class CHObject(GObj):
+class CHObject(GRPassThru):
def __init__(self, parent=None, type='CHObject'):
- GObj.__init__(self, parent, type=type)
+ GRPassThru.__init__(self, parent, type=type)
class CHBand:
@@ -52,9 +52,9 @@
self.buffer.append([])
- def process(self, writer):
+ def chProcess(self, writer):
for child in self._children:
- child.process(writer, self)
+ child.chProcess(writer, self)
writer.renderBand(self)
self.resetBand()
Modified:
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageFooter.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageFooter.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageFooter.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -38,9 +38,9 @@
CHObject.__init__(self, parent, type=type)
CHBand.__init__(self)
- def process(self, writer):
+ def chProcess(self, writer):
writer.pageFooterDone = True
if writer.currLine < writer.reportHeight - self.height:
writer.printLines([""] * (writer.reportHeight - self.height -
writer.currLine), self._type)
- CHBand.process(self, writer)
+ CHBand.chProcess(self, writer)
Modified:
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageHeader.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageHeader.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHPageHeader.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -38,7 +38,7 @@
CHObject.__init__(self, parent, type=type)
CHBand.__init__(self)
- def process(self, writer):
+ def chProcess(self, writer):
writer.pageHeaderDone = True
- CHBand.process(self, writer)
-
\ No newline at end of file
+ CHBand.chProcess(self, writer)
+
Modified:
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHSummaryPage.py
===================================================================
---
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHSummaryPage.py
2005-10-21 21:07:59 UTC (rev 8075)
+++
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHSummaryPage.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -39,9 +39,9 @@
CHBand.__init__(self)
- def process(self, writer):
+ def chProcess(self, writer):
if writer.PageFooter and (not writer.pageFooterDone):
- writer.PageFooter.process(writer)
+ writer.PageFooter.chProcess(writer)
writer.newPage()
elif writer.currLine < writer.reportHeight:
writer.printLines([""] * (writer.reportHeight - writer.currLine),
self._type)
@@ -49,4 +49,4 @@
writer.pageHeaderDone = True
writer.pageFooterDone = True
- CHBand.process(self, writer)
+ CHBand.chProcess(self, writer)
Modified:
trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHTitlePage.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHTitlePage.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHObjects/CHTitlePage.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -40,11 +40,11 @@
CHBand.__init__(self)
- def process(self, writer):
+ def chProcess(self, writer):
writer.newPage()
writer.pageHeaderDone = True
writer.pageFooterDone = True
- CHBand.process(self, writer)
+ CHBand.chProcess(self, writer)
writer.newPage()
Modified: trunk/gnue-reports/src/adapters/filters/Char/char/CHParser.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHParser.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHParser.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -74,7 +74,7 @@
#
#
xmlElements = {
- 'report': {
+ 'chreport': {
'BaseClass': CHReport.CHReport,
'Required': 1,
'SingleInstance': 1,
Modified: trunk/gnue-reports/src/adapters/filters/Char/char/CHReport.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/CHReport.py
2005-10-21 21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/CHReport.py
2005-10-24 13:19:01 UTC (rev 8076)
@@ -28,36 +28,36 @@
#
__all__ = ['CHReport']
-
-from gnue.common.definitions.GObjects import GObj
+
from gnue.common.definitions.GRootObj import GRootObj
from gnue.common.apps import GDebug
+from gnue.reports.base.layout.GRPassThru import GRPassThru
import CHParser
-
-class CHReport(GRootObj, GObj):
+
+class CHReport(GRootObj, GRPassThru):
def __init__(self, parent=None):
GRootObj.__init__(self, 'report', CHParser.getXMLelements, CHParser)
- GObj.__init__(self, parent, type='CHReport')
+ GRPassThru.__init__(self, parent, type='CHReport')
- def process(self, writer):
+ def chProcess(self, writer):
writer.PageHeader = self.findChildOfType('CHPageHeader')
writer.PageFooter = self.findChildOfType('CHPageFooter')
-
- TitlePage = self.findChildOfType('CHTitlePage')
- if TitlePage:
- TitlePage.process(writer)
+ TitlePage = self.findChildOfType('CHTitlePage')
+ if TitlePage:
+ TitlePage.chProcess(writer)
+
for child in self._children:
- if child._type in ('CHDetail', 'CHGroupHeader', 'CHGroupFooter'):
- child.process(writer)
-
- SummaryPage = self.findChildOfType('CHSummaryPage')
- if SummaryPage:
- SummaryPage.process(writer)
+ if child._type in ('CHDetail', 'CHGroupHeader', 'CHGroupFooter'):
+ child.chProcess(writer)
+ SummaryPage = self.findChildOfType('CHSummaryPage')
+ if SummaryPage:
+ SummaryPage.chProcess(writer)
+
if writer.PageFooter and (not writer.pageFooterDone):
- writer.PageFooter.process(writer)
+ writer.PageFooter.chProcess(writer)
writer.newPage()
Modified: trunk/gnue-reports/src/adapters/filters/Char/char/Writer.py
===================================================================
--- trunk/gnue-reports/src/adapters/filters/Char/char/Writer.py 2005-10-21
21:07:59 UTC (rev 8075)
+++ trunk/gnue-reports/src/adapters/filters/Char/char/Writer.py 2005-10-24
13:19:01 UTC (rev 8076)
@@ -71,16 +71,16 @@
if cx < x:
if self.formatter != "xml":
outputLine += self.printdef.escape(' '*(x-cx))
- cx = x
-
- if self.formatter == "xml" and prefix[:6] == '<label':
+ cx = x
+
+ if self.formatter == "xml" and prefix[:6] == '<label':
prefix = prefix % cx
outputLine += prefix + \
self.printdef.escape(text).encode(_encoding,'replace') +
\
postfix
cx += len(text)
-
+
self.printLine(outputLine, band._type)
# self.output.write("[[ End Band %s ]]" % band._type)
@@ -88,7 +88,7 @@
def render(self, object, x, y, width, band,
align='none', condensed=False, bold=False,
italic=False, underline=False):
-
+
try:
curline = band.buffer[y]
except:
@@ -126,7 +126,7 @@
def newPage(self):
if self.pageNumber > 1:
self.output.write(self.printdef['page_end'])
- self.pageNumber += 1
+ self.pageNumber += 1
self.currLine = 0
self.pageHeaderDone = False
self.pageFooterDone = False
@@ -137,25 +137,25 @@
def printLine(self, line, bandtype):
if self.PageFooter and (not self.pageFooterDone):
if self.currLine + 1 > self.reportHeight - self.PageFooter.height:
- self.PageFooter.process(self)
+ self.PageFooter.chProcess(self)
self.newPage()
if self.PageHeader and (not self.pageHeaderDone) and bandtype !=
'CHSummaryPage':
- self.PageHeader.process(self)
+ self.PageHeader.chProcess(self)
fullline = self.printdef['line_begin'] + \
line + \
- self.printdef['line_end']
- if self.formatter == "xml":
- fullline = fullline % self.currLine
-
+ self.printdef['line_end']
+ if self.formatter == "xml":
+ fullline = fullline % self.currLine
+
self.output.write(fullline)
self.currLine += 1
def printLines(self, lines, bandtype):
for line in lines:
- if self.formatter == "xml":
+ if self.formatter == "xml":
self.currLine += 1
else:
self.printLine(line, bandtype)
@@ -166,5 +166,5 @@
'center' : lambda obj, width: string.center(obj, width),
'none' : lambda obj, width: string.ljust(obj, width),
}
-
-_encoding = gConfig('textEncoding')
\ No newline at end of file
+
+_encoding = gConfig('textEncoding')
Modified: trunk/gnue-reports/src/base/layout/GRPassThru.py
===================================================================
--- trunk/gnue-reports/src/base/layout/GRPassThru.py 2005-10-21 21:07:59 UTC
(rev 8075)
+++ trunk/gnue-reports/src/base/layout/GRPassThru.py 2005-10-24 13:19:01 UTC
(rev 8076)
@@ -39,8 +39,8 @@
# simply pass thru our layout engine
#
class GRPassThru(ContainerElement):
- def __init__(self, parent):
- ContainerElement.__init__(self, parent, 'GRPassThru')
+ def __init__(self, parent, type='GRPassThru'):
+ ContainerElement.__init__(self, parent, type=type)
def process(self, dest, mapper, isfirst, islast, firstSection, nextSection):
dest.write('<%s' % self._xmltag)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8076 - in trunk: gnue-common/src/definitions gnue-reports/samples/foobulations gnue-reports/src/adapters/filters/Char gnue-reports/src/adapters/filters/Char/char gnue-reports/src/adapters/filters/Char/char/CHObjects gnue-reports/src/base/layout,
btami <=