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]

Reply via email to