summaryrefslogtreecommitdiff
path: root/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor
diff options
context:
space:
mode:
Diffstat (limited to 'reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor')
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java2
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java54
-rwxr-xr-xreportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java89
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java29
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java4
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java195
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java200
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java275
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java90
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java21
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java6
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java401
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java3
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java8
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java78
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java234
19 files changed, 852 insertions, 893 deletions
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java
index 3f7245bf12c9..622699aa89d6 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java
@@ -242,7 +242,7 @@ public abstract class AbstractReportElementLayoutController
}
catch (DataSourceException e)
{
- // ignore .. assume that the reference has not changed.
+ // ignore .. assume that the reference has not changed.
}
}
final LValue[] childValues = lValue.getChildValues();
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java
index 9ced56ef7ac4..7a96eabbb6b5 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import org.jfree.report.flow.layoutprocessor.LayoutController;
@@ -55,37 +53,35 @@ import com.sun.star.report.pentaho.model.FixedTextElement;
* @since 05.03.2007
*/
public class FixedTextLayoutController
- extends AbstractReportElementLayoutController
+ extends AbstractReportElementLayoutController
{
- public FixedTextLayoutController()
- {
- }
-
+ public FixedTextLayoutController()
+ {
+ }
- protected boolean isValueChanged()
- {
- final FlowController controller = getFlowController();
- final GlobalMasterRow masterRow = controller.getMasterRow();
- final ReportDataRow reportDataRow = masterRow.getReportDataRow();
- return reportDataRow.getCursor() == 0;
- }
+ protected boolean isValueChanged()
+ {
+ final FlowController controller = getFlowController();
+ final GlobalMasterRow masterRow = controller.getMasterRow();
+ final ReportDataRow reportDataRow = masterRow.getReportDataRow();
+ return reportDataRow.getCursor() == 0;
+ }
- protected LayoutController delegateContentGeneration
- (final ReportTarget target)
- throws ReportProcessingException, ReportDataFactoryException,
- DataSourceException
- {
- final FixedTextElement fte = (FixedTextElement) getNode();
- final Section content = fte.getContent();
+ protected LayoutController delegateContentGeneration(final ReportTarget target)
+ throws ReportProcessingException, ReportDataFactoryException,
+ DataSourceException
+ {
+ final FixedTextElement fte = (FixedTextElement) getNode();
+ final Section content = fte.getContent();
- final FlowController flowController = getFlowController();
- final ReportContext reportContext = flowController.getReportContext();
- final LayoutControllerFactory layoutControllerFactory =
- reportContext.getLayoutControllerFactory();
+ final FlowController flowController = getFlowController();
+ final ReportContext reportContext = flowController.getReportContext();
+ final LayoutControllerFactory layoutControllerFactory =
+ reportContext.getLayoutControllerFactory();
- final FixedTextLayoutController flc = (FixedTextLayoutController) clone();
- flc.setState(AbstractReportElementLayoutController.FINISHED);
- return layoutControllerFactory.create(flowController, content, flc);
- }
+ final FixedTextLayoutController flc = (FixedTextLayoutController) clone();
+ flc.setState(AbstractReportElementLayoutController.FINISHED);
+ return layoutControllerFactory.create(flowController, content, flc);
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java
index 8515b4997d53..405fe4a2815b 100755
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java
@@ -27,7 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
package com.sun.star.report.pentaho.layoutprocessor;
import java.text.SimpleDateFormat;
@@ -54,10 +53,11 @@ import org.pentaho.reporting.libraries.formula.util.HSSFDateUtil;
*/
public class FormatValueUtility
{
+
private static final String BOOLEAN_VALUE = "boolean-value";
private static final String STRING_VALUE = "string-value";
-
public static final String VALUE_TYPE = "value-type";
+ private static final String VALUE = "value";
private static SimpleDateFormat dateFormat;
private static SimpleDateFormat timeFormat;
@@ -74,7 +74,7 @@ public class FormatValueUtility
ret = formatTime((Time) value);
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "time-value", ret);
}
- else if (value instanceof java.sql.Date )
+ else if (value instanceof java.sql.Date)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "date");
ret = formatDate((Date) value);
@@ -83,67 +83,67 @@ public class FormatValueUtility
else if (value instanceof Date)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "float");
- ret = HSSFDateUtil.getExcelDate((Date)value,false,2).toString();
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "value", ret);
+ ret = HSSFDateUtil.getExcelDate((Date) value, false, 2).toString();
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE, ret);
}
else if (value instanceof Number)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "float");
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "value", String.valueOf(value));
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE, String.valueOf(value));
}
else if (value instanceof Boolean)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "boolean");
if (Boolean.TRUE.equals(value))
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,BOOLEAN_VALUE, OfficeToken.TRUE);
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, BOOLEAN_VALUE, OfficeToken.TRUE);
}
else
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,BOOLEAN_VALUE, OfficeToken.FALSE);
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, BOOLEAN_VALUE, OfficeToken.FALSE);
}
}
else if (value != null)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "string");
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,STRING_VALUE, String.valueOf(value));
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, STRING_VALUE, String.valueOf(value));
}
else
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "string");
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,STRING_VALUE, "");
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, STRING_VALUE, "");
}
return ret;
}
- public static void applyValueForCell(final Object value, final AttributeMap variableSection,final String valueType)
+ public static void applyValueForCell(final Object value, final AttributeMap variableSection, final String valueType)
{
if (value instanceof Time)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "time-value", formatTime((Time) value));
}
- else if (value instanceof java.sql.Date )
+ else if (value instanceof java.sql.Date)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "date-value", formatDate((Date) value));
}
else if (value instanceof Date)
{
variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE_TYPE, "float");
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "value", HSSFDateUtil.getExcelDate((Date)value,false,2).toString());
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE, HSSFDateUtil.getExcelDate((Date) value, false, 2).toString());
}
else if (value instanceof Number)
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "value", String.valueOf(value));
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE, String.valueOf(value));
}
else if (value instanceof Boolean)
{
if (Boolean.TRUE.equals(value))
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,BOOLEAN_VALUE, OfficeToken.TRUE);
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, BOOLEAN_VALUE, OfficeToken.TRUE);
}
else
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,BOOLEAN_VALUE, OfficeToken.FALSE);
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, BOOLEAN_VALUE, OfficeToken.FALSE);
}
}
else if (value != null)
@@ -151,25 +151,24 @@ public class FormatValueUtility
try
{
final Float number = Float.valueOf(String.valueOf(value));
- applyValueForCell(number,variableSection,valueType);
+ applyValueForCell(number, variableSection, valueType);
return;
}
- catch(NumberFormatException e)
+ catch (NumberFormatException e)
{
-
}
- if ( !"string".equals(valueType))
+ if (!"string".equals(valueType))
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, "value", String.valueOf(value));
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, VALUE, String.valueOf(value));
}
else
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,STRING_VALUE, String.valueOf(value));
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, STRING_VALUE, String.valueOf(value));
}
}
else
{
- variableSection.setAttribute(OfficeNamespaces.OFFICE_NS,STRING_VALUE, "");
+ variableSection.setAttribute(OfficeNamespaces.OFFICE_NS, STRING_VALUE, "");
}
}
@@ -181,6 +180,7 @@ public class FormatValueUtility
}
return dateFormat.format(date);
}
+
private static synchronized String formatTime(final Date date)
{
if (timeFormat == null)
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java
index c5c69d24716b..16bc355f8b77 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java
@@ -59,7 +59,9 @@ import org.jfree.layouting.util.AttributeMap;
public class FormattedTextLayoutController
extends AbstractReportElementLayoutController
{
+
private static final Log LOGGER = LogFactory.getLog(FormattedTextLayoutController.class);
+
public FormattedTextLayoutController()
{
}
@@ -133,9 +135,8 @@ public class FormattedTextLayoutController
}
else
{
-
final DataFlags df = FormatValueUtility.computeDataFlag(element, getFlowController());
- if (df != null)
+ if (df != null && df.getValue() instanceof String )
{
target.processContent(df);
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java
index 4f5ffbdcf35e..7b9624ed6e4a 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
/**
@@ -39,56 +37,57 @@ package com.sun.star.report.pentaho.layoutprocessor;
*/
public class ImageElementContext
{
- private final int colSpan;
- private final int rowSpan;
- private String[] rowStyles;
- private String[] colStyles;
- public ImageElementContext(final int colSpan, final int rowSpan)
- {
- this.colSpan = colSpan;
- this.rowSpan = rowSpan;
- this.colStyles = new String[colSpan];
- this.rowStyles = new String[rowSpan];
- }
+ private final int colSpan;
+ private final int rowSpan;
+ private String[] rowStyles;
+ private String[] colStyles;
+
+ public ImageElementContext(final int colSpan, final int rowSpan)
+ {
+ this.colSpan = colSpan;
+ this.rowSpan = rowSpan;
+ this.colStyles = new String[colSpan];
+ this.rowStyles = new String[rowSpan];
+ }
- public int getColSpan()
- {
- return colSpan;
- }
+ public int getColSpan()
+ {
+ return colSpan;
+ }
- public int getRowSpan()
- {
- return rowSpan;
- }
+ public int getRowSpan()
+ {
+ return rowSpan;
+ }
- public String[] getRowStyles()
- {
- return rowStyles;
- }
+ public String[] getRowStyles()
+ {
+ return rowStyles;
+ }
- public String[] getColStyles()
- {
- return colStyles;
- }
+ public String[] getColStyles()
+ {
+ return colStyles;
+ }
- public void setRowStyle (final int pos, final String styleName)
- {
- rowStyles[pos] = styleName;
- }
+ public void setRowStyle(final int pos, final String styleName)
+ {
+ rowStyles[pos] = styleName;
+ }
- public void setColStyle (final int pos, final String styleName)
- {
- colStyles[pos] = styleName;
- }
+ public void setColStyle(final int pos, final String styleName)
+ {
+ colStyles[pos] = styleName;
+ }
- public String getRowStyle (final int pos)
- {
- return rowStyles[pos];
- }
+ public String getRowStyle(final int pos)
+ {
+ return rowStyles[pos];
+ }
- public String getColStyle (final int pos)
- {
- return colStyles[pos];
- }
+ public String getColStyle(final int pos)
+ {
+ return colStyles[pos];
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java
index 68d1fc6351c4..81e17b73e276 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java
@@ -67,6 +67,7 @@ import org.pentaho.reporting.libraries.base.util.ObjectUtilities;
public class ImageElementLayoutController
extends AbstractReportElementLayoutController
{
+
private static final Log LOGGER = LogFactory.getLog(ImageElementLayoutController.class);
private ImageElementContext context;
@@ -184,7 +185,7 @@ public class ImageElementLayoutController
return null;
}
- addRowStyles(context, table,rowPos,rowSpan);
+ addRowStyles(context, table, rowPos, rowSpan);
this.context = context;
}
return this.context;
@@ -198,9 +199,8 @@ public class ImageElementLayoutController
final Node[] nodes = tableRow.getNodeArray();
final String namespace = tableCell.getNamespace();
final String type = tableCell.getType();
- for (int i = 0; i < nodes.length; i++)
+ for (final Node node : nodes)
{
- final Node node = nodes[i];
if (!(node instanceof Element))
{
continue;
@@ -211,8 +211,7 @@ public class ImageElementLayoutController
(ObjectUtilities.equal(child.getNamespace(), namespace) == false ||
ObjectUtilities.equal(child.getType(), type) == false))
*/
- if (!ObjectUtilities.equal(child.getNamespace(), namespace) ||
- (!ObjectUtilities.equal(child.getType(), type) && (secondType == null || !ObjectUtilities.equal(child.getType(), secondType))))
+ if (!ObjectUtilities.equal(child.getNamespace(), namespace) || (!ObjectUtilities.equal(child.getType(), type) && (secondType == null || !ObjectUtilities.equal(child.getType(), secondType))))
{
continue;
}
@@ -254,11 +253,7 @@ public class ImageElementLayoutController
final FlowController controller = getFlowController();
final GlobalMasterRow masterRow = controller.getMasterRow();
final ReportDataRow reportDataRow = masterRow.getReportDataRow();
- if (reportDataRow.getCursor() == 0)
- {
- return true;
- }
- return false;
+ return reportDataRow.getCursor() == 0;
}
try
@@ -277,12 +272,11 @@ public class ImageElementLayoutController
{
final Node[] columnDefs = columns.getNodeArray();
int columnCounter = 0;
- for (int i = 0; i < columnDefs.length; i++)
+ for (Node columnDef : columnDefs)
{
- final Element column = (Element) columnDefs[i];
+ final Element column = (Element) columnDef;
- if (!ObjectUtilities.equal(column.getNamespace(), OfficeNamespaces.TABLE_NS) ||
- !ObjectUtilities.equal(column.getType(), OfficeToken.TABLE_COLUMN))
+ if (!ObjectUtilities.equal(column.getNamespace(), OfficeNamespaces.TABLE_NS) || !ObjectUtilities.equal(column.getType(), OfficeToken.TABLE_COLUMN))
{
continue;
}
@@ -306,12 +300,11 @@ public class ImageElementLayoutController
{
final Node[] rows = table.getNodeArray();
int rowCounter = 0;
- for (int i = 0; i < rows.length; i++)
+ for (Node row1 : rows)
{
- final Element row = (Element) rows[i];
+ final Element row = (Element) row1;
- if (!ObjectUtilities.equal(row.getNamespace(), OfficeNamespaces.TABLE_NS) ||
- !ObjectUtilities.equal(row.getType(), OfficeToken.TABLE_ROW))
+ if (!ObjectUtilities.equal(row.getNamespace(), OfficeNamespaces.TABLE_NS) || !ObjectUtilities.equal(row.getType(), OfficeToken.TABLE_ROW))
{
continue;
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java
index 54f4fd0b1acb..b0de84bda31e 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java
@@ -75,7 +75,7 @@ public class ObjectOleLayoutController extends AbstractReportElementLayoutContro
}
catch (DataSourceException e)
{
- // ignore .. assume that the reference has not changed.
+ // ignore .. assume that the reference has not changed.
}
}
return false;
@@ -108,7 +108,7 @@ public class ObjectOleLayoutController extends AbstractReportElementLayoutContro
}
catch (DataSourceException e)
{
- // ignore .. assume that the reference has not changed.
+ // ignore .. assume that the reference has not changed.
}
}
ole.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, SDBCReportDataFactory.MASTER_COLUMNS, masterfields);
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java
index 9060ed64981d..9358e62a8590 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import com.sun.star.report.pentaho.model.VariablesDeclarationSection;
@@ -51,114 +49,113 @@ import org.jfree.report.flow.layoutprocessor.SectionLayoutController;
*/
public class OfficeDetailLayoutController extends SectionLayoutController
{
- public static final int STATE_PROCESS_VARIABLES = 2;
- public static final int STATE_PROCESS_NORMAL_FLOW = 3;
-
- private boolean waitForJoin;
- private int state;
- public OfficeDetailLayoutController()
- {
- }
+ public static final int STATE_PROCESS_VARIABLES = 2;
+ public static final int STATE_PROCESS_NORMAL_FLOW = 3;
+ private boolean waitForJoin;
+ private int state;
- /**
- * Initializes the layout controller. This method is called exactly once. It
- * is the creators responsibility to call this method.
- * <p/>
- * Calling initialize after the first advance must result in a
- * IllegalStateException.
- *
- * @param node the currently processed object or layout node.
- * @param flowController the current flow controller.
- * @param parent the parent layout controller that was responsible for
- * instantiating this controller.
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- public void initialize(final Object node,
- final FlowController flowController,
- final LayoutController parent)
- throws DataSourceException, ReportDataFactoryException,
- ReportProcessingException
- {
- super.initialize(node, flowController, parent);
- state = OfficeDetailLayoutController.STATE_PROCESS_VARIABLES;
- }
-
- /**
- * This method is called for each newly instantiated layout controller. The returned layout controller instance should
- * have a processing state of either 'OPEN' or 'FINISHING' depending on whether there is any content or any child
- * nodes to process.
- *
- * @param target the report target that receives generated events.
- * @return the new layout controller instance representing the new state.
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- protected LayoutController startElement(final ReportTarget target)
- throws DataSourceException, ReportProcessingException, ReportDataFactoryException
- {
- final FlowController fc = getFlowController();
- final GlobalMasterRow masterRow = fc.getMasterRow();
- final ReportDataRow reportDataRow = masterRow.getReportDataRow();
- final ReportData reportData = reportDataRow.getReportData();
- if (!reportData.isReadable())
+ public OfficeDetailLayoutController()
{
- reportData.isReadable();
- // If this report has no data, then do not print the detail section. The detail section
- // is the only section that behaves this way, and for now this is only done in the OO-implementation
- final SectionLayoutController derived = (SectionLayoutController) clone();
- derived.setProcessingState(ElementLayoutController.FINISHED);
- derived.setFlowController(fc);
- return derived;
}
- if (state == OfficeDetailLayoutController.STATE_PROCESS_VARIABLES)
+ /**
+ * Initializes the layout controller. This method is called exactly once. It
+ * is the creators responsibility to call this method.
+ * <p/>
+ * Calling initialize after the first advance must result in a
+ * IllegalStateException.
+ *
+ * @param node the currently processed object or layout node.
+ * @param flowController the current flow controller.
+ * @param parent the parent layout controller that was responsible for
+ * instantiating this controller.
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ public void initialize(final Object node,
+ final FlowController flowController,
+ final LayoutController parent)
+ throws DataSourceException, ReportDataFactoryException,
+ ReportProcessingException
{
- final VariablesDeclarationSection variables = new VariablesDeclarationSection();
- final OfficeDetailLayoutController controller = (OfficeDetailLayoutController) clone();
- controller.state = OfficeDetailLayoutController.STATE_PROCESS_NORMAL_FLOW;
- controller.waitForJoin = true;
- return processChild(controller, variables, fc);
+ super.initialize(node, flowController, parent);
+ state = OfficeDetailLayoutController.STATE_PROCESS_VARIABLES;
}
- return super.startElement(target);
- }
+ /**
+ * This method is called for each newly instantiated layout controller. The returned layout controller instance should
+ * have a processing state of either 'OPEN' or 'FINISHING' depending on whether there is any content or any child
+ * nodes to process.
+ *
+ * @param target the report target that receives generated events.
+ * @return the new layout controller instance representing the new state.
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ protected LayoutController startElement(final ReportTarget target)
+ throws DataSourceException, ReportProcessingException, ReportDataFactoryException
+ {
+ final FlowController fc = getFlowController();
+ final GlobalMasterRow masterRow = fc.getMasterRow();
+ final ReportDataRow reportDataRow = masterRow.getReportDataRow();
+ final ReportData reportData = reportDataRow.getReportData();
+ if (!reportData.isReadable())
+ {
+ reportData.isReadable();
+ // If this report has no data, then do not print the detail section. The detail section
+ // is the only section that behaves this way, and for now this is only done in the OO-implementation
+ final SectionLayoutController derived = (SectionLayoutController) clone();
+ derived.setProcessingState(ElementLayoutController.FINISHED);
+ derived.setFlowController(fc);
+ return derived;
+ }
- protected void resetSectionForRepeat()
- {
- super.resetSectionForRepeat();
- state = STATE_PROCESS_VARIABLES;
- }
+ if (state == OfficeDetailLayoutController.STATE_PROCESS_VARIABLES)
+ {
+ final VariablesDeclarationSection variables = new VariablesDeclarationSection();
+ final OfficeDetailLayoutController controller = (OfficeDetailLayoutController) clone();
+ controller.state = OfficeDetailLayoutController.STATE_PROCESS_NORMAL_FLOW;
+ controller.waitForJoin = true;
+ return processChild(controller, variables, fc);
+ }
- /**
- * Joins with a delegated process flow. This is generally called from a child
- * flow and should *not* (I mean it!) be called from outside. If you do,
- * you'll suffer.
- *
- * @param flowController the flow controller of the parent.
- * @return the joined layout controller that incorperates all changes from the
- * delegate.
- */
- public LayoutController join(final FlowController flowController)
- {
- if (waitForJoin)
+ return super.startElement(target);
+ }
+
+ protected void resetSectionForRepeat()
{
- final OfficeDetailLayoutController derived = (OfficeDetailLayoutController) clone();
- derived.setProcessingState(ElementLayoutController.NOT_STARTED);
- derived.setFlowController(flowController);
- derived.waitForJoin = false;
- return derived;
+ super.resetSectionForRepeat();
+ state = STATE_PROCESS_VARIABLES;
}
- return super.join(flowController);
- }
+ /**
+ * Joins with a delegated process flow. This is generally called from a child
+ * flow and should *not* (I mean it!) be called from outside. If you do,
+ * you'll suffer.
+ *
+ * @param flowController the flow controller of the parent.
+ * @return the joined layout controller that incorperates all changes from the
+ * delegate.
+ */
+ public LayoutController join(final FlowController flowController)
+ {
+ if (waitForJoin)
+ {
+ final OfficeDetailLayoutController derived = (OfficeDetailLayoutController) clone();
+ derived.setProcessingState(ElementLayoutController.NOT_STARTED);
+ derived.setFlowController(flowController);
+ derived.waitForJoin = false;
+ return derived;
+ }
+ return super.join(flowController);
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java
index d61f03eb319e..047e46f2e07a 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java
@@ -26,135 +26,127 @@ import org.jfree.report.JFreeReportInfo;
*/
public class OfficeGroupInstanceSectionLayoutController extends SectionLayoutController
{
- public static final int STATE_PROCESS_VARIABLES = 2;
- public static final int STATE_PROCESS_NORMAL_FLOW = 3;
- private int state;
- private boolean waitForJoin;
- public OfficeGroupInstanceSectionLayoutController()
- {
- }
+ public static final int STATE_PROCESS_VARIABLES = 2;
+ public static final int STATE_PROCESS_NORMAL_FLOW = 3;
+ private int state;
+ private boolean waitForJoin;
- public void initialize(final Object node, final FlowController flowController, final LayoutController parent)
- throws DataSourceException, ReportDataFactoryException, ReportProcessingException
- {
- super.initialize(node, flowController, parent);
- state = STATE_PROCESS_VARIABLES;
- }
-
- protected LayoutController processContent(final ReportTarget target)
- throws DataSourceException, ReportProcessingException, ReportDataFactoryException
- {
- if (state == OfficeGroupInstanceSectionLayoutController.STATE_PROCESS_VARIABLES)
+ public OfficeGroupInstanceSectionLayoutController()
{
- // todo: Fill the variables section with something sensible ..
- final VariablesDeclarationSection variables = new VariablesDeclarationSection();
- final OfficeGroupInstanceSectionLayoutController controller =
- (OfficeGroupInstanceSectionLayoutController) clone();
- controller.state =
- OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
- controller.waitForJoin = true;
- return processChild(controller, variables, getFlowController());
}
- return super.processContent(target);
- }
- // isDisplayable is private in version 0.9.1, so until the upgrade we keep this copy of the method
- // todo: Delete it unce the sun-cvs contains version 0.9.2.
- protected LayoutController processChild(final SectionLayoutController derived,
- final Node node,
- final FlowController flowController)
- throws DataSourceException, ReportProcessingException,
- ReportDataFactoryException
- {
- final ReportContext reportContext = flowController.getReportContext();
- final LayoutControllerFactory layoutControllerFactory = reportContext.getLayoutControllerFactory();
- if (isDisplayable(node))
+ public void initialize(final Object node, final FlowController flowController, final LayoutController parent)
+ throws DataSourceException, ReportDataFactoryException, ReportProcessingException
{
- derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
- return layoutControllerFactory.create(flowController, node, derived);
+ super.initialize(node, flowController, parent);
+ state = STATE_PROCESS_VARIABLES;
}
- else
+
+ protected LayoutController processContent(final ReportTarget target)
+ throws DataSourceException, ReportProcessingException, ReportDataFactoryException
{
- derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
- final LayoutController childLc = layoutControllerFactory.create(flowController, node, derived);
- return LayoutControllerUtil.skipInvisibleElement(childLc);
+ if (state == OfficeGroupInstanceSectionLayoutController.STATE_PROCESS_VARIABLES)
+ {
+ // todo: Fill the variables section with something sensible ..
+ final VariablesDeclarationSection variables = new VariablesDeclarationSection();
+ final OfficeGroupInstanceSectionLayoutController controller =
+ (OfficeGroupInstanceSectionLayoutController) clone();
+ controller.state =
+ OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
+ controller.waitForJoin = true;
+ return processChild(controller, variables, getFlowController());
+ }
+ return super.processContent(target);
}
- }
- protected boolean isDisplayable(final Node node) throws DataSourceException
- {
- if (! (node instanceof OfficeGroupSection) )
+ // isDisplayable is private in version 0.9.1, so until the upgrade we keep this copy of the method
+ // todo: Delete it unce the sun-cvs contains version 0.9.2.
+ protected LayoutController processChild(final SectionLayoutController derived,
+ final Node node,
+ final FlowController flowController)
+ throws DataSourceException, ReportProcessingException,
+ ReportDataFactoryException
{
- return _isDisplayable(node);
+ final ReportContext reportContext = flowController.getReportContext();
+ final LayoutControllerFactory layoutControllerFactory = reportContext.getLayoutControllerFactory();
+ if (isDisplayable(node))
+ {
+ derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
+ return layoutControllerFactory.create(flowController, node, derived);
+ }
+ else
+ {
+ derived.setProcessingState(ElementLayoutController.WAITING_FOR_JOIN);
+ final LayoutController childLc = layoutControllerFactory.create(flowController, node, derived);
+ return LayoutControllerUtil.skipInvisibleElement(childLc);
+ }
}
- final OfficeGroupSection section = (OfficeGroupSection) node;
- if (section.isRepeatSection())
+ protected boolean isDisplayable(final Node node) throws DataSourceException
{
- return false;
+ if (!(node instanceof OfficeGroupSection))
+ {
+ return _isDisplayable(node);
+ }
+
+ final OfficeGroupSection section = (OfficeGroupSection) node;
+ return !section.isRepeatSection() && _isDisplayable(node);
}
- return _isDisplayable(node);
- }
- protected boolean _isDisplayable(final Node node)
- throws DataSourceException
- {
- // temp method until the pending upgrade to 0.9.2. Later we just call super.isDisplayable(..) instead.
- if (!node.isEnabled())
+ protected boolean _isDisplayable(final Node node)
+ throws DataSourceException
{
- return false;
+ // temp method until the pending upgrade to 0.9.2. Later we just call super.isDisplayable(..) instead.
+ if (!node.isEnabled())
+ {
+ return false;
+ }
+
+ final Expression expression = node.getDisplayCondition();
+ if (expression == null)
+ {
+ return true;
+ }
+
+ final Object result = LayoutControllerUtil.evaluateExpression(getFlowController(), node, expression);
+ return Boolean.TRUE.equals(result);
}
- final Expression expression = node.getDisplayCondition();
- if (expression == null)
+ protected void resetSectionForRepeat()
{
- return true;
+ super.resetSectionForRepeat();
+ state = STATE_PROCESS_VARIABLES;
}
- final Object result = LayoutControllerUtil.evaluateExpression(getFlowController(), node, expression);
- if (Boolean.TRUE.equals(result))
+ /**
+ * Joins with a delegated process flow. This is generally called from a child
+ * flow and should *not* (I mean it!) be called from outside. If you do,
+ * you'll suffer.
+ *
+ * @param flowController the flow controller of the parent.
+ * @return the joined layout controller that incorperates all changes from the
+ * delegate.
+ */
+ public LayoutController join(final FlowController flowController)
{
- return true;
+ if (waitForJoin)
+ {
+ final OfficeGroupInstanceSectionLayoutController derived = (OfficeGroupInstanceSectionLayoutController) clone();
+ derived.setProcessingState(ElementLayoutController.OPENED);
+ derived.setFlowController(flowController);
+ derived.waitForJoin = false;
+ return derived;
+ }
+ return super.join(flowController);
}
- return false;
- }
-
- protected void resetSectionForRepeat()
- {
- super.resetSectionForRepeat();
- state = STATE_PROCESS_VARIABLES;
- }
- /**
- * Joins with a delegated process flow. This is generally called from a child
- * flow and should *not* (I mean it!) be called from outside. If you do,
- * you'll suffer.
- *
- * @param flowController the flow controller of the parent.
- * @return the joined layout controller that incorperates all changes from the
- * delegate.
- */
- public LayoutController join(final FlowController flowController)
- {
- if (waitForJoin)
+ protected AttributeMap computeAttributes(final FlowController fc, final Element element, final ReportTarget target)
+ throws DataSourceException
{
- final OfficeGroupInstanceSectionLayoutController derived = (OfficeGroupInstanceSectionLayoutController) clone();
- derived.setProcessingState(ElementLayoutController.OPENED);
- derived.setFlowController(flowController);
- derived.waitForJoin = false;
- return derived;
+ final AttributeMap map = new AttributeMap(super.computeAttributes(fc, element, target));
+ map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "iteration-count", getIterationCount());
+ map.makeReadOnly();
+ return map;
}
- return super.join(flowController);
- }
-
- protected AttributeMap computeAttributes(final FlowController fc, final Element element, final ReportTarget target)
- throws DataSourceException
- {
- final AttributeMap map = new AttributeMap( super.computeAttributes(fc, element, target) );
- map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "iteration-count", Integer.valueOf(getIterationCount()));
- map.makeReadOnly();
- return map;
- }
-
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java
index 25e12d17edab..12604e931238 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import com.sun.star.report.pentaho.model.OfficeGroup;
@@ -52,158 +50,157 @@ import org.jfree.report.structure.Element;
* @since 15.03.2007
*/
public class OfficeGroupLayoutController extends SectionLayoutController
- implements OfficeRepeatingStructureLayoutController
+ implements OfficeRepeatingStructureLayoutController
{
- public static final int STATE_PROCESS_REPEATING_HEADER = 0;
- public static final int STATE_PROCESS_REPEATING_FOOTER = 1;
- public static final int STATE_PROCESS_NORMAL_FLOW = 3;
- private boolean waitForJoin;
- private int state;
- private VariablesCollection variablesCollection;
- private boolean repeatHeader;
- private boolean repeatFooter;
-
- public OfficeGroupLayoutController()
- {
- }
-
-
- /**
- * Initializes the layout controller. This method is called exactly once. It
- * is the creators responsibility to call this method.
- * <p/>
- * Calling initialize after the first advance must result in a
- * IllegalStateException.
- *
- * @param node the currently processed object or layout node.
- * @param flowController the current flow controller.
- * @param parent the parent layout controller that was responsible for
- * instantiating this controller.
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- public void initialize(final Object node,
- final FlowController flowController,
- final LayoutController parent)
- throws DataSourceException, ReportDataFactoryException,
- ReportProcessingException
- {
- super.initialize(node, flowController, parent);
- state = OfficeGroupLayoutController.STATE_PROCESS_REPEATING_HEADER;
- variablesCollection = new VariablesCollection(computeVariablesPrefix());
-
-
- final OfficeGroup group = (OfficeGroup) getElement();
- final OfficeGroupSection header = group.getHeader();
- repeatHeader = (header != null && header.isRepeatSection());
-
- final OfficeGroupSection footer = group.getFooter();
- repeatFooter = (footer != null && footer.isRepeatSection());
- }
-
-
- protected LayoutController processContent(final ReportTarget target)
- throws DataSourceException, ReportProcessingException,
- ReportDataFactoryException
- {
- if (state == OfficeGroupLayoutController.STATE_PROCESS_REPEATING_HEADER)
+
+ public static final int STATE_PROCESS_REPEATING_HEADER = 0;
+ public static final int STATE_PROCESS_REPEATING_FOOTER = 1;
+ public static final int STATE_PROCESS_NORMAL_FLOW = 3;
+ private boolean waitForJoin;
+ private int state;
+ private VariablesCollection variablesCollection;
+ private boolean repeatHeader;
+ private boolean repeatFooter;
+
+ public OfficeGroupLayoutController()
+ {
+ }
+
+ /**
+ * Initializes the layout controller. This method is called exactly once. It
+ * is the creators responsibility to call this method.
+ * <p/>
+ * Calling initialize after the first advance must result in a
+ * IllegalStateException.
+ *
+ * @param node the currently processed object or layout node.
+ * @param flowController the current flow controller.
+ * @param parent the parent layout controller that was responsible for
+ * instantiating this controller.
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ public void initialize(final Object node,
+ final FlowController flowController,
+ final LayoutController parent)
+ throws DataSourceException, ReportDataFactoryException,
+ ReportProcessingException
{
+ super.initialize(node, flowController, parent);
+ state = OfficeGroupLayoutController.STATE_PROCESS_REPEATING_HEADER;
+ variablesCollection = new VariablesCollection(computeVariablesPrefix());
- final OfficeGroupLayoutController controller =
- (OfficeGroupLayoutController) clone();
- controller.state =
- OfficeGroupLayoutController.STATE_PROCESS_REPEATING_FOOTER;
- if (!repeatHeader)
- {
- return controller;
- }
+ final OfficeGroup group = (OfficeGroup) getElement();
+ final OfficeGroupSection header = group.getHeader();
+ repeatHeader = (header != null && header.isRepeatSection());
- final OfficeGroup group = (OfficeGroup) getElement();
- final OfficeGroupSection header = group.getHeader();
- controller.waitForJoin = true;
- return processChild(controller, header, getFlowController());
+ final OfficeGroupSection footer = group.getFooter();
+ repeatFooter = (footer != null && footer.isRepeatSection());
}
- if (state == OfficeGroupLayoutController.STATE_PROCESS_REPEATING_FOOTER)
+ protected LayoutController processContent(final ReportTarget target)
+ throws DataSourceException, ReportProcessingException,
+ ReportDataFactoryException
{
+ if (state == OfficeGroupLayoutController.STATE_PROCESS_REPEATING_HEADER)
+ {
+
+ final OfficeGroupLayoutController controller =
+ (OfficeGroupLayoutController) clone();
+ controller.state =
+ OfficeGroupLayoutController.STATE_PROCESS_REPEATING_FOOTER;
+
+ if (!repeatHeader)
+ {
+ return controller;
+ }
+
+ final OfficeGroup group = (OfficeGroup) getElement();
+ final OfficeGroupSection header = group.getHeader();
+ controller.waitForJoin = true;
+ return processChild(controller, header, getFlowController());
+ }
+
+ if (state == OfficeGroupLayoutController.STATE_PROCESS_REPEATING_FOOTER)
+ {
+
+ final OfficeGroupLayoutController controller =
+ (OfficeGroupLayoutController) clone();
+ controller.state = OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
+
+ if (!repeatFooter)
+ {
+ return controller;
+ }
+
+ final OfficeGroup group = (OfficeGroup) getElement();
+ final OfficeGroupSection footer = group.getFooter();
+ controller.waitForJoin = true;
+ return processChild(controller, footer, getFlowController());
+ }
+
+ return super.processContent(target);
+ }
- final OfficeGroupLayoutController controller =
- (OfficeGroupLayoutController) clone();
- controller.state = OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
+ /**
+ * Joins with a delegated process flow. This is generally called from a child
+ * flow and should *not* (I mean it!) be called from outside. If you do,
+ * you'll suffer.
+ *
+ * @param flowController the flow controller of the parent.
+ * @return the joined layout controller that incorperates all changes from the
+ * delegate.
+ */
+ public LayoutController join(final FlowController flowController)
+ {
+ if (waitForJoin)
+ {
+ final OfficeGroupLayoutController derived = (OfficeGroupLayoutController) clone();
+ derived.setProcessingState(ElementLayoutController.OPENED);
+ derived.setFlowController(flowController);
+ derived.waitForJoin = false;
+ return derived;
+ }
+ return super.join(flowController);
+ }
- if (!repeatFooter)
- {
- return controller;
- }
+ public boolean isNormalFlowProcessing()
+ {
+ return state == OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
+ }
- final OfficeGroup group = (OfficeGroup) getElement();
- final OfficeGroupSection footer = group.getFooter();
- controller.waitForJoin = true;
- return processChild(controller, footer, getFlowController());
+ private String computeVariablesPrefix()
+ {
+ int count = 0;
+ LayoutController lc = this;
+ while (lc != null)
+ {
+ if (lc instanceof OfficeGroupLayoutController)
+ {
+ count++;
+ }
+ lc = lc.getParent();
+ }
+ return "auto_group_" + count + "_";
}
- return super.processContent(target);
- }
-
- /**
- * Joins with a delegated process flow. This is generally called from a child
- * flow and should *not* (I mean it!) be called from outside. If you do,
- * you'll suffer.
- *
- * @param flowController the flow controller of the parent.
- * @return the joined layout controller that incorperates all changes from the
- * delegate.
- */
- public LayoutController join(final FlowController flowController)
- {
- if (waitForJoin)
+ public VariablesCollection getVariablesCollection()
{
- final OfficeGroupLayoutController derived = (OfficeGroupLayoutController) clone();
- derived.setProcessingState(ElementLayoutController.OPENED);
- derived.setFlowController(flowController);
- derived.waitForJoin = false;
- return derived;
+ return variablesCollection;
}
- return super.join(flowController);
- }
-
- public boolean isNormalFlowProcessing ()
- {
- return state == OfficeGroupLayoutController.STATE_PROCESS_NORMAL_FLOW;
- }
-
- private String computeVariablesPrefix()
- {
- int count = 0;
- LayoutController lc = this;
- while (lc != null)
+
+ protected AttributeMap computeAttributes(final FlowController fc, final Element element, final ReportTarget target)
+ throws DataSourceException
{
- if (lc instanceof OfficeGroupLayoutController)
- {
- count++;
- }
- lc = lc.getParent();
+ final AttributeMap map = new AttributeMap(super.computeAttributes(fc, element, target));
+ final String value = String.valueOf(repeatHeader || repeatFooter);
+ map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "repeating-header-or-footer", value);
+ map.makeReadOnly();
+ return map;
}
- return "auto_group_" + count + "_";
- }
-
- public VariablesCollection getVariablesCollection()
- {
- return variablesCollection;
- }
-
- protected AttributeMap computeAttributes(final FlowController fc, final Element element, final ReportTarget target)
- throws DataSourceException
- {
- final AttributeMap map = new AttributeMap( super.computeAttributes(fc, element, target) );
- final String value = String.valueOf(repeatHeader || repeatFooter);
- map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "repeating-header-or-footer", value);
- map.makeReadOnly();
- return map;
- }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java
index 496ccd841e46..4eb40749e3fe 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import org.jfree.report.flow.layoutprocessor.SectionLayoutController;
@@ -58,58 +56,56 @@ import org.jfree.report.JFreeReportInfo;
public class OfficeGroupSectionLayoutController extends SectionLayoutController
{
- public OfficeGroupSectionLayoutController()
- {
- }
-
- protected LayoutController startElement(final ReportTarget target)
- throws DataSourceException, ReportProcessingException, ReportDataFactoryException
- {
- final OfficeGroupSection section = (OfficeGroupSection) getElement();
- if (!section.isRepeatSection())
+ public OfficeGroupSectionLayoutController()
{
- return super.startElement(target);
}
- final LayoutController controller = getParent();
- if (!(controller instanceof OfficeGroupLayoutController))
+ protected LayoutController startElement(final ReportTarget target)
+ throws DataSourceException, ReportProcessingException, ReportDataFactoryException
{
- return super.startElement(target);
- }
- final OfficeGroupLayoutController oglc = (OfficeGroupLayoutController) controller;
- if (!oglc.isNormalFlowProcessing())
- {
- return super.startElement(target);
- }
+ final OfficeGroupSection section = (OfficeGroupSection) getElement();
+ if (!section.isRepeatSection())
+ {
+ return super.startElement(target);
+ }
- // Skip the processing if the section is a repeating header or footer and we are processing the normal flow ..
- final ElementLayoutController clone = (ElementLayoutController) this.clone();
- clone.setProcessingState(ElementLayoutController.FINISHED);
- return clone;
- }
+ final LayoutController controller = getParent();
+ if (!(controller instanceof OfficeGroupLayoutController))
+ {
+ return super.startElement(target);
+ }
+ final OfficeGroupLayoutController oglc = (OfficeGroupLayoutController) controller;
+ if (!oglc.isNormalFlowProcessing())
+ {
+ return super.startElement(target);
+ }
- protected AttributeMap computeAttributes(final FlowController fc,
- final Element element,
- final ReportTarget target)
- throws DataSourceException
- {
- final AttributeMap attrs = super.computeAttributes(fc, element, target);
- final LayoutController controller = getParent();
- if (!(controller instanceof OfficeGroupLayoutController))
- {
- return attrs;
- }
- final OfficeGroupLayoutController oglc = (OfficeGroupLayoutController) controller;
- if (oglc.isNormalFlowProcessing())
- {
- return attrs;
+ // Skip the processing if the section is a repeating header or footer and we are processing the normal flow ..
+ final ElementLayoutController clone = (ElementLayoutController) this.clone();
+ clone.setProcessingState(ElementLayoutController.FINISHED);
+ return clone;
}
- final AttributeMap retval = new AttributeMap(attrs);
- retval.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "repeated-section", OfficeToken.TRUE);
- retval.makeReadOnly();
- return retval;
- }
-
+ protected AttributeMap computeAttributes(final FlowController fc,
+ final Element element,
+ final ReportTarget target)
+ throws DataSourceException
+ {
+ final AttributeMap attrs = super.computeAttributes(fc, element, target);
+ final LayoutController controller = getParent();
+ if (!(controller instanceof OfficeGroupLayoutController))
+ {
+ return attrs;
+ }
+ final OfficeGroupLayoutController oglc = (OfficeGroupLayoutController) controller;
+ if (oglc.isNormalFlowProcessing())
+ {
+ return attrs;
+ }
+ final AttributeMap retval = new AttributeMap(attrs);
+ retval.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "repeated-section", OfficeToken.TRUE);
+ retval.makeReadOnly();
+ return retval;
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java
index 9189cb06f9a5..b98db5f34479 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java
@@ -15,15 +15,16 @@ import org.jfree.report.JFreeReportInfo;
*/
public class OfficePageSectionLayoutController extends SectionLayoutController
{
- public OfficePageSectionLayoutController()
- {
- }
- protected AttributeMap computeAttributes(final FlowController flowController, final Element element, final ReportTarget reportTarget) throws DataSourceException
- {
- final AttributeMap map = new AttributeMap( super.computeAttributes(flowController, element, reportTarget));
- map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "role", "spreadsheet-section");
- map.makeReadOnly();
- return map;
- }
+ public OfficePageSectionLayoutController()
+ {
+ }
+
+ protected AttributeMap computeAttributes(final FlowController flowController, final Element element, final ReportTarget reportTarget) throws DataSourceException
+ {
+ final AttributeMap map = new AttributeMap(super.computeAttributes(flowController, element, reportTarget));
+ map.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, "role", "spreadsheet-section");
+ map.makeReadOnly();
+ return map;
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java
index 47a1daa1b7fa..1ccf6b634bcf 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import org.jfree.report.flow.layoutprocessor.LayoutController;
@@ -41,8 +39,8 @@ import org.jfree.report.flow.layoutprocessor.LayoutController;
*/
public interface OfficeRepeatingStructureLayoutController extends LayoutController
{
- public boolean isNormalFlowProcessing();
- public VariablesCollection getVariablesCollection();
+ public boolean isNormalFlowProcessing();
+ public VariablesCollection getVariablesCollection();
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java
index 20816814e11c..5baffc4c346b 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import com.sun.star.report.pentaho.model.OfficeReport;
@@ -51,227 +49,224 @@ import org.jfree.report.structure.Node;
* @since 06.03.2007
*/
public class OfficeReportLayoutController extends ElementLayoutController
- implements OfficeRepeatingStructureLayoutController
+ implements OfficeRepeatingStructureLayoutController
{
- private static final int STATE_NOT_STARTED = 0;
- private static final int STATE_TEMPLATES = 1;
- private static final int STATE_PAGE_HEADER_DONE = 2;
- private static final int STATE_PAGE_FOOTER_DONE = 3;
- private static final int STATE_SPREADSHEET_PAGE_HEADER_DONE = 4;
- private static final int STATE_SPREADSHEET_PAGE_FOOTER_DONE = 5;
- private static final int STATE_COLUMN_HEADER_DONE = 6;
- private static final int STATE_COLUMN_FOOTER_DONE = 7;
- private static final int STATE_INITIAL_VARIABLES_DONE = 8;
- private static final int STATE_REPORT_HEADER_DONE = 9;
- private static final int STATE_REPORT_BODY_DONE = 10;
- private static final int STATE_REPORT_FOOTER_VARIABLES = 11;
- private static final int STATE_REPORT_FOOTER_DONE = 12;
- private int state;
- private VariablesCollection variablesCollection;
+ private static final int STATE_NOT_STARTED = 0;
+ private static final int STATE_TEMPLATES = 1;
+ private static final int STATE_PAGE_HEADER_DONE = 2;
+ private static final int STATE_PAGE_FOOTER_DONE = 3;
+ private static final int STATE_SPREADSHEET_PAGE_HEADER_DONE = 4;
+ private static final int STATE_SPREADSHEET_PAGE_FOOTER_DONE = 5;
+ private static final int STATE_COLUMN_HEADER_DONE = 6;
+ private static final int STATE_COLUMN_FOOTER_DONE = 7;
+ private static final int STATE_INITIAL_VARIABLES_DONE = 8;
+ private static final int STATE_REPORT_HEADER_DONE = 9;
+ private static final int STATE_REPORT_BODY_DONE = 10;
+ private static final int STATE_REPORT_FOOTER_VARIABLES = 11;
+ private static final int STATE_REPORT_FOOTER_DONE = 12;
+ private int state;
+ private VariablesCollection variablesCollection;
- public OfficeReportLayoutController()
- {
- }
+ public OfficeReportLayoutController()
+ {
+ }
+ /**
+ * Initializes the layout controller. This method is called exactly once. It
+ * is the creators responsibility to call this method.
+ * <p/>
+ * Calling initialize after the first advance must result in a
+ * IllegalStateException.
+ *
+ * @param node the currently processed object or layout node.
+ * @param flowController the current flow controller.
+ * @param parent the parent layout controller that was responsible for
+ * instantiating this controller.
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ public void initialize(final Object node, final FlowController flowController,
+ final LayoutController parent)
+ throws DataSourceException, ReportDataFactoryException,
+ ReportProcessingException
+ {
+ super.initialize(node, flowController, parent);
+ variablesCollection = new VariablesCollection("auto_report_");
+ }
- /**
- * Initializes the layout controller. This method is called exactly once. It
- * is the creators responsibility to call this method.
- * <p/>
- * Calling initialize after the first advance must result in a
- * IllegalStateException.
- *
- * @param node the currently processed object or layout node.
- * @param flowController the current flow controller.
- * @param parent the parent layout controller that was responsible for
- * instantiating this controller.
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- public void initialize(final Object node, final FlowController flowController,
- final LayoutController parent)
- throws DataSourceException, ReportDataFactoryException,
- ReportProcessingException
- {
- super.initialize(node, flowController, parent);
- variablesCollection = new VariablesCollection("auto_report_");
- }
+ /**
+ * Processes any content in this element. This method is called when the
+ * processing state is 'OPENED'. The returned layout controller will retain
+ * the 'OPENED' state as long as there is more content available. Once all
+ * content has been processed, the returned layout controller should carry a
+ * 'FINISHED' state.
+ *
+ * @param target the report target that receives generated events.
+ * @return the new layout controller instance representing the new state.
+ *
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ protected LayoutController processContent(final ReportTarget target)
+ throws DataSourceException, ReportProcessingException,
+ ReportDataFactoryException
+ {
+ final OfficeReport or = (OfficeReport) getElement();
- /**
- * Processes any content in this element. This method is called when the
- * processing state is 'OPENED'. The returned layout controller will retain
- * the 'OPENED' state as long as there is more content available. Once all
- * content has been processed, the returned layout controller should carry a
- * 'FINISHED' state.
- *
- * @param target the report target that receives generated events.
- * @return the new layout controller instance representing the new state.
- *
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- protected LayoutController processContent(final ReportTarget target)
- throws DataSourceException, ReportProcessingException,
- ReportDataFactoryException
- {
- final OfficeReport or = (OfficeReport) getElement();
+ switch (state)
+ {
+ case OfficeReportLayoutController.STATE_NOT_STARTED:
+ {
+ return delegateToTemplates(OfficeReportLayoutController.STATE_TEMPLATES);
+ }
+ case OfficeReportLayoutController.STATE_TEMPLATES:
+ {
+ return delegateSection(or.getPageHeader(),
+ OfficeReportLayoutController.STATE_PAGE_HEADER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_PAGE_HEADER_DONE:
+ {
+ return delegateSpreadsheetSection(or.getPageHeader(),
+ OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_HEADER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_HEADER_DONE:
+ {
+ return delegateSection(or.getPageFooter(),
+ OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE:
+ {
+ return delegateSection(or.getColumnHeader(),
+ OfficeReportLayoutController.STATE_COLUMN_HEADER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_COLUMN_HEADER_DONE:
+ {
+ return delegateSection(or.getColumnFooter(),
+ OfficeReportLayoutController.STATE_COLUMN_FOOTER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_COLUMN_FOOTER_DONE:
+ {
+ return delegateSection(new VariablesDeclarationSection(),
+ OfficeReportLayoutController.STATE_INITIAL_VARIABLES_DONE);
+ }
+ case OfficeReportLayoutController.STATE_INITIAL_VARIABLES_DONE:
+ {
+ return delegateSection(or.getReportHeader(),
+ OfficeReportLayoutController.STATE_REPORT_HEADER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_REPORT_HEADER_DONE:
+ {
+ return delegateSection(or.getBodySection(),
+ OfficeReportLayoutController.STATE_REPORT_BODY_DONE);
+ }
+ case OfficeReportLayoutController.STATE_REPORT_BODY_DONE:
+ {
+ return delegateSection(new VariablesDeclarationSection(),
+ OfficeReportLayoutController.STATE_REPORT_FOOTER_VARIABLES);
+ }
+ case OfficeReportLayoutController.STATE_REPORT_FOOTER_VARIABLES:
+ {
+ return delegateSection(or.getReportFooter(),
+ OfficeReportLayoutController.STATE_REPORT_FOOTER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_REPORT_FOOTER_DONE:
+ {
+ return delegateSpreadsheetSection(or.getPageFooter(),
+ OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_FOOTER_DONE);
+ }
+ case OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_FOOTER_DONE:
+ {
+ final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
+ olc.setProcessingState(ElementLayoutController.FINISHING);
+ return olc;
+ }
+ default:
+ {
+ throw new IllegalStateException("Invalid processing state encountered.");
+ }
+ }
+ }
- switch (state)
+ private LayoutController delegateSpreadsheetSection(final Node node, final int nextState)
+ throws DataSourceException, ReportProcessingException, ReportDataFactoryException
{
- case OfficeReportLayoutController.STATE_NOT_STARTED:
- {
- return delegateToTemplates(OfficeReportLayoutController.STATE_TEMPLATES);
- }
- case OfficeReportLayoutController.STATE_TEMPLATES:
- {
- return delegateSection(or.getPageHeader(),
- OfficeReportLayoutController.STATE_PAGE_HEADER_DONE);
- }
- case OfficeReportLayoutController.STATE_PAGE_HEADER_DONE:
- {
- return delegateSpreadsheetSection(or.getPageHeader(),
- OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_HEADER_DONE);
- }
- case OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_HEADER_DONE:
- {
- return delegateSection(or.getPageFooter(),
- OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE);
- }
- case OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE:
- {
- return delegateSection(or.getColumnHeader(),
- OfficeReportLayoutController.STATE_COLUMN_HEADER_DONE);
- }
- case OfficeReportLayoutController.STATE_COLUMN_HEADER_DONE:
- {
- return delegateSection(or.getColumnFooter(),
- OfficeReportLayoutController.STATE_COLUMN_FOOTER_DONE);
- }
- case OfficeReportLayoutController.STATE_COLUMN_FOOTER_DONE:
- {
- return delegateSection(new VariablesDeclarationSection(),
- OfficeReportLayoutController.STATE_INITIAL_VARIABLES_DONE);
- }
- case OfficeReportLayoutController.STATE_INITIAL_VARIABLES_DONE:
- {
- return delegateSection(or.getReportHeader(),
- OfficeReportLayoutController.STATE_REPORT_HEADER_DONE);
- }
- case OfficeReportLayoutController.STATE_REPORT_HEADER_DONE:
- {
- return delegateSection(or.getBodySection(),
- OfficeReportLayoutController.STATE_REPORT_BODY_DONE);
- }
- case OfficeReportLayoutController.STATE_REPORT_BODY_DONE:
- {
- return delegateSection(new VariablesDeclarationSection(),
- OfficeReportLayoutController.STATE_REPORT_FOOTER_VARIABLES);
- }
- case OfficeReportLayoutController.STATE_REPORT_FOOTER_VARIABLES:
- {
- return delegateSection(or.getReportFooter(),
- OfficeReportLayoutController.STATE_REPORT_FOOTER_DONE);
- }
- case OfficeReportLayoutController.STATE_REPORT_FOOTER_DONE:
- {
- return delegateSpreadsheetSection(or.getPageFooter(),
- OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_FOOTER_DONE);
- }
- case OfficeReportLayoutController.STATE_SPREADSHEET_PAGE_FOOTER_DONE:
- {
final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
- olc.setProcessingState(ElementLayoutController.FINISHING);
- return olc;
- }
- default:
- {
- throw new IllegalStateException("Invalid processing state encountered.");
- }
- }
- }
+ olc.state = nextState;
- private LayoutController delegateSpreadsheetSection(final Node node, final int nextState)
- throws DataSourceException, ReportProcessingException, ReportDataFactoryException
- {
- final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
- olc.state = nextState;
+ if (node == null)
+ {
+ return olc;
+ }
- if (node == null)
- {
- return olc;
+ final OfficePageSectionLayoutController templateLc = new OfficePageSectionLayoutController();
+ templateLc.initialize(node, getFlowController(), olc);
+ return templateLc;
}
- final OfficePageSectionLayoutController templateLc = new OfficePageSectionLayoutController();
- templateLc.initialize(node, getFlowController(), olc);
- return templateLc;
- }
-
- private LayoutController delegateToTemplates(final int nextState)
- throws ReportProcessingException, ReportDataFactoryException,
- DataSourceException
- {
- final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
- olc.state = nextState;
-
- final OfficeTableTemplateLayoutController templateLc = new OfficeTableTemplateLayoutController();
- templateLc.initialize(getElement(), getFlowController(), olc);
- return templateLc;
+ private LayoutController delegateToTemplates(final int nextState)
+ throws ReportProcessingException, ReportDataFactoryException,
+ DataSourceException
+ {
+ final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
+ olc.state = nextState;
- }
+ final OfficeTableTemplateLayoutController templateLc = new OfficeTableTemplateLayoutController();
+ templateLc.initialize(getElement(), getFlowController(), olc);
+ return templateLc;
- private LayoutController delegateSection(final Node n, final int nextState)
- throws ReportProcessingException, ReportDataFactoryException,
- DataSourceException
- {
- final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
- olc.state = nextState;
- if (n == null)
- {
- return olc;
}
- final FlowController flowController = getFlowController();
- final ReportContext reportContext = flowController.getReportContext();
- final LayoutControllerFactory layoutControllerFactory =
- reportContext.getLayoutControllerFactory();
- return layoutControllerFactory.create(flowController, n, olc);
+ private LayoutController delegateSection(final Node n, final int nextState)
+ throws ReportProcessingException, ReportDataFactoryException,
+ DataSourceException
+ {
+ final OfficeReportLayoutController olc = (OfficeReportLayoutController) clone();
+ olc.state = nextState;
+ if (n == null)
+ {
+ return olc;
+ }
- }
+ final FlowController flowController = getFlowController();
+ final ReportContext reportContext = flowController.getReportContext();
+ final LayoutControllerFactory layoutControllerFactory =
+ reportContext.getLayoutControllerFactory();
+ return layoutControllerFactory.create(flowController, n, olc);
+ }
- /**
- * Joins with a delegated process flow. This is generally called from a child
- * flow and should *not* (I mean it!) be called from outside. If you do,
- * you'll suffer.
- *
- * @param flowController the flow controller of the parent.
- * @return the joined layout controller that incorperates all changes from the
- * delegate.
- */
- public LayoutController join(final FlowController flowController)
- {
- final OfficeReportLayoutController derived = (OfficeReportLayoutController) clone();
- derived.setFlowController(flowController);
- return derived;
- }
+ /**
+ * Joins with a delegated process flow. This is generally called from a child
+ * flow and should *not* (I mean it!) be called from outside. If you do,
+ * you'll suffer.
+ *
+ * @param flowController the flow controller of the parent.
+ * @return the joined layout controller that incorperates all changes from the
+ * delegate.
+ */
+ public LayoutController join(final FlowController flowController)
+ {
+ final OfficeReportLayoutController derived = (OfficeReportLayoutController) clone();
+ derived.setFlowController(flowController);
+ return derived;
+ }
- public boolean isNormalFlowProcessing()
- {
- return state != OfficeReportLayoutController.STATE_PAGE_HEADER_DONE &&
- state != OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE;
- }
+ public boolean isNormalFlowProcessing()
+ {
+ return state != OfficeReportLayoutController.STATE_PAGE_HEADER_DONE && state != OfficeReportLayoutController.STATE_PAGE_FOOTER_DONE;
+ }
- public VariablesCollection getVariablesCollection()
- {
- return variablesCollection;
- }
+ public VariablesCollection getVariablesCollection()
+ {
+ return variablesCollection;
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java
index d83ebb63957d..f8c9a1111a8d 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java
@@ -57,7 +57,7 @@ public class OfficeTableLayoutController extends SectionLayoutController
protected AttributeMap computeAttributes(final FlowController fc, final Element element, final ReportTarget target)
throws DataSourceException
{
- final AttributeMap attributeMap = new AttributeMap( super.computeAttributes(fc, element, target) );
+ final AttributeMap attributeMap = new AttributeMap(super.computeAttributes(fc, element, target));
final Section s = (Section) element;
int rowCount = 0;
final Node[] nodeArray = s.getNodeArray();
@@ -67,8 +67,7 @@ public class OfficeTableLayoutController extends SectionLayoutController
if (node instanceof Element)
{
final Element child = (Element) node;
- if (OfficeNamespaces.TABLE_NS.equals(child.getNamespace()) &&
- OfficeToken.TABLE_ROW.equals(child.getType()))
+ if (OfficeNamespaces.TABLE_NS.equals(child.getNamespace()) && OfficeToken.TABLE_ROW.equals(child.getType()))
{
rowCount += 1;
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java
index f3a7f776db5c..738ccb4f07f4 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java
@@ -175,8 +175,7 @@ public class OfficeTableTemplateLayoutController extends SectionLayoutController
if (node instanceof Element)
{
final Element element = (Element) node;
- if (OfficeNamespaces.TABLE_NS.equals(element.getNamespace()) &&
- "table".equals(element.getType()))
+ if (OfficeNamespaces.TABLE_NS.equals(element.getNamespace()) && "table".equals(element.getType()))
{
tables.add(element);
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
index e9025330a60f..5393a5e13a15 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java
@@ -78,12 +78,12 @@ public class TableCellLayoutController extends SectionLayoutController
final DataFlags value = computeValue();
if (value != null)
{
- FormatValueUtility.applyValueForCell(value.getValue(), attributeMap,valueType);
+ FormatValueUtility.applyValueForCell(value.getValue(), attributeMap, valueType);
}
}
catch (Exception e)
{
- // ignore ..
+ // ignore ..
}
attributeMap.makeReadOnly();
return attributeMap;
@@ -161,7 +161,7 @@ public class TableCellLayoutController extends SectionLayoutController
}
catch (DataSourceException e)
{
- // ignore silently ..
+ // ignore silently ..
}
}
@@ -181,7 +181,7 @@ public class TableCellLayoutController extends SectionLayoutController
}
catch (DataSourceException e)
{
- // ignore silently ..
+ // ignore silently ..
}
}
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java
index ee9bfd442bca..ca8687541545 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import java.util.ArrayList;
@@ -50,54 +48,52 @@ import java.util.List;
*/
public class VariablesCollection
{
- private VariablesCollection parent;
- private String namePrefix;
- private List variables;
- public VariablesCollection(final String namePrefix)
- {
- this(namePrefix, null);
- }
+ private VariablesCollection parent;
+ private String namePrefix;
+ private List variables;
- public VariablesCollection(final String namePrefix, final VariablesCollection parent)
- {
- if (namePrefix == null)
+ public VariablesCollection(final String namePrefix)
{
- throw new NullPointerException("NamePrefix cannot be null");
+ this(namePrefix, null);
}
- this.namePrefix = namePrefix;
- this.parent = parent;
- this.variables = new ArrayList();
- }
-
- public VariablesCollection getParent()
- {
- return parent;
- }
+ public VariablesCollection(final String namePrefix, final VariablesCollection parent)
+ {
+ if (namePrefix == null)
+ {
+ throw new NullPointerException("NamePrefix cannot be null");
+ }
- public String getNamePrefix()
- {
- return namePrefix;
- }
+ this.namePrefix = namePrefix;
+ this.parent = parent;
+ this.variables = new ArrayList();
+ }
- public String addVariable (final FormattedTextElement element)
- {
- variables.add(element);
- final int size = variables.size();
- return namePrefix + size;
- }
+ public VariablesCollection getParent()
+ {
+ return parent;
+ }
- public FormattedTextElement[] getVariables ()
- {
- return (FormattedTextElement[])
- variables.toArray(new FormattedTextElement[variables.size()]);
- }
+ public String getNamePrefix()
+ {
+ return namePrefix;
+ }
- public int getVariablesCount ()
- {
- return variables.size();
- }
+ public String addVariable(final FormattedTextElement element)
+ {
+ variables.add(element);
+ final int size = variables.size();
+ return namePrefix + size;
+ }
+ public FormattedTextElement[] getVariables()
+ {
+ return (FormattedTextElement[]) variables.toArray(new FormattedTextElement[variables.size()]);
+ }
+ public int getVariablesCount()
+ {
+ return variables.size();
+ }
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java
index 55f4f2999aab..e59a699109f4 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.layoutprocessor;
import com.sun.star.report.pentaho.OfficeNamespaces;
@@ -56,137 +54,139 @@ import java.text.SimpleDateFormat;
* @since 20.03.2007
*/
public class VariablesDeclarationLayoutController
- extends AbstractLayoutController
+ extends AbstractLayoutController
{
- private boolean processed;
- public VariablesDeclarationLayoutController()
- {
- }
+ private boolean processed;
- private OfficeRepeatingStructureLayoutController getRepeatingParent()
- {
- LayoutController parent = getParent();
- while (parent != null)
+ public VariablesDeclarationLayoutController()
{
- if (parent instanceof OfficeRepeatingStructureLayoutController)
- {
- return (OfficeRepeatingStructureLayoutController) parent;
- }
- parent = parent.getParent();
}
- return null;
- }
-
- /**
- * Advances the processing position.
- *
- * @param target the report target that receives generated events.
- * @return the new layout controller instance representing the new state.
- *
- * @throws org.jfree.report.DataSourceException
- * if there was a problem reading data from the datasource.
- * @throws org.jfree.report.ReportProcessingException
- * if there was a general problem during the report processing.
- * @throws org.jfree.report.ReportDataFactoryException
- * if a query failed.
- */
- public LayoutController advance(final ReportTarget target)
- throws DataSourceException, ReportDataFactoryException,
- ReportProcessingException
- {
- if (processed)
+
+ private OfficeRepeatingStructureLayoutController getRepeatingParent()
{
- throw new IllegalStateException("Already processed.");
+ LayoutController parent = getParent();
+ while (parent != null)
+ {
+ if (parent instanceof OfficeRepeatingStructureLayoutController)
+ {
+ return (OfficeRepeatingStructureLayoutController) parent;
+ }
+ parent = parent.getParent();
+ }
+ return null;
}
- final VariablesDeclarationLayoutController vlc =
- (VariablesDeclarationLayoutController) clone();
- vlc.processed = true;
-
- final OfficeRepeatingStructureLayoutController orslc = getRepeatingParent();
- if (orslc == null)
+ /**
+ * Advances the processing position.
+ *
+ * @param target the report target that receives generated events.
+ * @return the new layout controller instance representing the new state.
+ *
+ * @throws org.jfree.report.DataSourceException
+ * if there was a problem reading data from the datasource.
+ * @throws org.jfree.report.ReportProcessingException
+ * if there was a general problem during the report processing.
+ * @throws org.jfree.report.ReportDataFactoryException
+ * if a query failed.
+ */
+ public LayoutController advance(final ReportTarget target)
+ throws DataSourceException, ReportDataFactoryException,
+ ReportProcessingException
{
- // There is no repeating parent. What the heck are we doing here ..
- return vlc;
+ if (processed)
+ {
+ throw new IllegalStateException("Already processed.");
+ }
+
+ final VariablesDeclarationLayoutController vlc =
+ (VariablesDeclarationLayoutController) clone();
+ vlc.processed = true;
+
+ final OfficeRepeatingStructureLayoutController orslc = getRepeatingParent();
+ if (orslc == null)
+ {
+ // There is no repeating parent. What the heck are we doing here ..
+ return vlc;
+ }
+
+ final VariablesCollection collection = orslc.getVariablesCollection();
+ if (collection.getVariablesCount() == 0)
+ {
+ // no processing necessary, as the header or footer contain no variables at all ..
+ return vlc;
+ }
+
+
+ final Element node = (Element) getNode();
+ final AttributeMap vdSection = node.getAttributeMap();
+ target.startElement(vdSection);
+
+ final FormattedTextElement[] variables = collection.getVariables();
+ for (int i = 0; i < variables.length; i++)
+ {
+ final FormattedTextElement variable = variables[i];
+ final String varName = collection.getNamePrefix() + (i + 1);
+ final AttributeMap map = generateVariableSetSection(variable);
+ map.setAttribute(OfficeNamespaces.TEXT_NS, "name", varName);
+ target.startElement(map);
+ target.endElement(map);
+
+ }
+ target.endElement(vdSection);
+ return vlc;
}
- final VariablesCollection collection = orslc.getVariablesCollection();
- if (collection.getVariablesCount() == 0)
+ private AttributeMap generateVariableSetSection(final FormattedTextElement variable)
+ throws DataSourceException
{
- // no processing necessary, as the header or footer contain no variables at all ..
- return vlc;
+ final AttributeMap variableSection = new AttributeMap();
+ variableSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, Element.NAMESPACE_ATTRIBUTE, OfficeNamespaces.TEXT_NS);
+ variableSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, Element.TYPE_ATTRIBUTE, "variable-set");
+ variableSection.setAttribute(OfficeNamespaces.TEXT_NS, "display", "none");
+
+ final FormulaExpression valueExpression = variable.getValueExpression();
+ final Object value = LayoutControllerUtil.evaluateExpression(getFlowController(), variable, valueExpression);
+ String formula = FormatValueUtility.applyValueForVariable(value, variableSection);
+ if (formula == null)
+ {
+ formula = "" + value;
+ }
+ if (value instanceof java.sql.Date)
+ {
+ final Date date = (Date) value;
+ final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy;MM;dd");
+ formula = "Date(" + dateFormat.format(date) + ")";
+ }
+ variableSection.setAttribute(OfficeNamespaces.TEXT_NS, "formula", "ooow:" + formula);
+
+ return variableSection;
}
-
- final Element node = (Element) getNode();
- final AttributeMap vdSection = node.getAttributeMap();
- target.startElement(vdSection);
-
- final FormattedTextElement[] variables = collection.getVariables();
- for (int i = 0; i < variables.length; i++)
+ /**
+ * Checks, whether the layout controller would be advanceable. If this method
+ * returns true, it is generally safe to call the 'advance()' method.
+ *
+ * @return true, if the layout controller is advanceable, false otherwise.
+ */
+ public boolean isAdvanceable()
{
- final FormattedTextElement variable = variables[i];
- final String varName = collection.getNamePrefix() + (i + 1);
- final AttributeMap map = generateVariableSetSection(variable);
- map.setAttribute(OfficeNamespaces.TEXT_NS, "name", varName);
- target.startElement(map);
- target.endElement(map);
-
+ return !processed;
}
- target.endElement(vdSection);
- return vlc;
- }
-
- private AttributeMap generateVariableSetSection(final FormattedTextElement variable)
- throws DataSourceException
- {
- final AttributeMap variableSection = new AttributeMap();
- variableSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, Element.NAMESPACE_ATTRIBUTE, OfficeNamespaces.TEXT_NS);
- variableSection.setAttribute(JFreeReportInfo.REPORT_NAMESPACE, Element.TYPE_ATTRIBUTE, "variable-set");
- variableSection.setAttribute(OfficeNamespaces.TEXT_NS, "display", "none");
-
- final FormulaExpression valueExpression = variable.getValueExpression();
- final Object value = LayoutControllerUtil.evaluateExpression(getFlowController(), variable, valueExpression);
- String formula = FormatValueUtility.applyValueForVariable(value, variableSection);
- if ( formula == null )
- formula = "" + value;
- if (value instanceof java.sql.Date)
+
+ /**
+ * Joins with a delegated process flow. This is generally called from a child
+ * flow and should *not* (I mean it!) be called from outside. If you do,
+ * you'll suffer.
+ *
+ * @param flowController the flow controller of the parent.
+ * @return the joined layout controller that incorperates all changes from the
+ * delegate.
+ */
+ public LayoutController join(final FlowController flowController)
+ throws DataSourceException, ReportDataFactoryException,
+ ReportProcessingException
{
- final Date date = (Date)value;
- final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy;MM;dd");
- formula = "Date(" + dateFormat.format(date) + ")";
+ throw new UnsupportedOperationException("Join is not supported in this layout controller");
}
- variableSection.setAttribute(OfficeNamespaces.TEXT_NS, "formula", "ooow:" + formula);
-
- return variableSection;
- }
-
- /**
- * Checks, whether the layout controller would be advanceable. If this method
- * returns true, it is generally safe to call the 'advance()' method.
- *
- * @return true, if the layout controller is advanceable, false otherwise.
- */
- public boolean isAdvanceable()
- {
- return !processed;
- }
-
- /**
- * Joins with a delegated process flow. This is generally called from a child
- * flow and should *not* (I mean it!) be called from outside. If you do,
- * you'll suffer.
- *
- * @param flowController the flow controller of the parent.
- * @return the joined layout controller that incorperates all changes from the
- * delegate.
- */
- public LayoutController join(final FlowController flowController)
- throws DataSourceException, ReportDataFactoryException,
- ReportProcessingException
- {
- throw new UnsupportedOperationException
- ("Join is not supported in this layout controller");
- }
}