User: kz Date: 2008-03-05 17:44:38+0000 Modified: dba/reportdesign/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java
Log: INTEGRATION: CWS rptchart01_DEV300 (1.2.70); FILE MERGED 2008/02/20 10:52:57 oj 1.2.70.2: format changes 2008/02/19 06:42:50 oj 1.2.70.1: #i85225# ongoing work File Changes: Directory: /dba/reportdesign/java/com/sun/star/report/pentaho/parser/rpt/ ========================================================================= File [changed]: ReportReadHandler.java Url: http://dba.openoffice.org/source/browse/dba/reportdesign/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java?r1=1.2&r2=1.3 Delta lines: +176 -129 ----------------------- --- ReportReadHandler.java 2007-07-09 11:56:09+0000 1.2 +++ ReportReadHandler.java 2008-03-05 17:44:35+0000 1.3 @@ -33,8 +33,6 @@ * MA 02111-1307 USA * ************************************************************************/ - - package com.sun.star.report.pentaho.parser.rpt; import java.util.ArrayList; @@ -42,15 +40,16 @@ import com.sun.star.report.pentaho.OfficeNamespaces; import com.sun.star.report.pentaho.model.OfficeReport; import com.sun.star.report.pentaho.parser.ElementReadHandler; +import com.sun.star.report.pentaho.parser.chart.ChartReadHandler; import org.jfree.report.structure.Element; import org.jfree.report.structure.Section; -import org.jfree.report.JFreeReportInfo; import org.jfree.xmlns.parser.XmlReadHandler; import org.xml.sax.Attributes; import org.xml.sax.SAXException; public class ReportReadHandler extends ElementReadHandler { + private RootTableReadHandler pageHeader; private RootTableReadHandler pageFooter; private RootTableReadHandler reportHeader; @@ -59,12 +58,17 @@ private GroupReadHandler groups; private OfficeReport rootSection; private ArrayList functionHandlers; + private ArrayList preBodyHandlers; + private ArrayList postBodyHandlers; + private boolean pre = true; public ReportReadHandler() { rootSection = new OfficeReport(); rootSection.setAttribute(OfficeNamespaces.INTERNAL_NS, "simple-report-structure", Boolean.TRUE); functionHandlers = new ArrayList(); + preBodyHandlers = new ArrayList(); + postBodyHandlers = new ArrayList(); } /** @@ -80,6 +84,19 @@ final Attributes atts) throws SAXException { + if (OfficeNamespaces.CHART_NS.equals(uri) == true) + { + final ChartReadHandler erh = new ChartReadHandler(); + if (pre) + { + preBodyHandlers.add(erh); + } + else + { + postBodyHandlers.add(erh); + } + return erh; + } if (OfficeNamespaces.OOREPORT_NS.equals(uri) == false) { return null; @@ -112,6 +129,7 @@ } if ("detail".equals(tagName)) { + pre = false; detail = new DetailRootTableReadHandler(); return detail; } @@ -143,6 +161,12 @@ rootSection.setReportHeader(reportHeader.getElement()); } + final Section preBody = createSection("report-pre-body", preBodyHandlers); + if (preBody != null) + { + rootSection.setPreBodySection(preBody); + } + final Section groupBody = new Section(); groupBody.setNamespace(OfficeNamespaces.INTERNAL_NS); groupBody.setType("report-body"); @@ -158,6 +182,12 @@ groupBody.addNode(detail.getElement()); } + final Section postBody = createSection("report-post-body", postBodyHandlers); + if (postBody != null) + { + rootSection.setPostBodySection(postBody); + } + if (reportFooter != null) { rootSection.setReportFooter(reportFooter.getElement()); @@ -171,9 +201,26 @@ } } - public Element getElement() { return rootSection; } + + private final Section createSection(final String name, final ArrayList handler) + { + if (!handler.isEmpty()) + { + final Section section = new Section(); + section.setNamespace(OfficeNamespaces.INTERNAL_NS); + section.setType(name); + + for (int i = 0; i < handler.size(); i++) + { + final ElementReadHandler erh = (ElementReadHandler) handler.get(i); + section.addNode(erh.getElement()); + } + return section; + } + return null; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
