reportbuilder: re-add numerous bits of dead code needed by bug fix
Change-Id: Ia0a8b8ec3b4684ad6766467c8e3413f91dc8bf67
This commit is contained in:
@@ -18,13 +18,18 @@
|
||||
|
||||
package org.libreoffice.report.pentaho.layoutprocessor;
|
||||
|
||||
import org.libreoffice.report.OfficeToken;
|
||||
import org.libreoffice.report.pentaho.OfficeNamespaces;
|
||||
import org.libreoffice.report.pentaho.model.FormattedTextElement;
|
||||
import org.libreoffice.report.pentaho.model.OfficeDocument;
|
||||
import org.libreoffice.report.pentaho.model.OfficeStyle;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.jfree.layouting.util.AttributeMap;
|
||||
import org.jfree.report.DataFlags;
|
||||
import org.jfree.report.DataSourceException;
|
||||
import org.jfree.report.JFreeReportInfo;
|
||||
import org.jfree.report.ReportDataFactoryException;
|
||||
import org.jfree.report.ReportProcessingException;
|
||||
import org.jfree.report.expressions.FormulaExpression;
|
||||
@@ -47,6 +52,27 @@ public class FormattedTextLayoutController
|
||||
|
||||
private static final Log LOGGER = LogFactory.getLog(FormattedTextLayoutController.class);
|
||||
|
||||
private VariablesCollection getVariablesCollection()
|
||||
{
|
||||
LayoutController parent = getParent();
|
||||
while (parent != null)
|
||||
{
|
||||
if (parent instanceof OfficeRepeatingStructureLayoutController)
|
||||
{
|
||||
final OfficeRepeatingStructureLayoutController orslc =
|
||||
(OfficeRepeatingStructureLayoutController) parent;
|
||||
if (orslc.isNormalFlowProcessing())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return orslc.getVariablesCollection();
|
||||
}
|
||||
parent = parent.getParent();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValueChanged()
|
||||
{
|
||||
@@ -128,6 +154,21 @@ public class FormattedTextLayoutController
|
||||
return join(getFlowController());
|
||||
}
|
||||
|
||||
private OfficeDocument getDocument()
|
||||
{
|
||||
LayoutController parent = getParent();
|
||||
while (parent != null)
|
||||
{
|
||||
final Object node = parent.getNode();
|
||||
if (node instanceof OfficeDocument)
|
||||
{
|
||||
return (OfficeDocument) node;
|
||||
}
|
||||
parent = parent.getParent();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Element getParentTableCell()
|
||||
{
|
||||
LayoutController parent = getParent();
|
||||
@@ -143,4 +184,44 @@ public class FormattedTextLayoutController
|
||||
return null;
|
||||
}
|
||||
|
||||
private String computeValueStyle()
|
||||
{
|
||||
final Element tce = getParentTableCell();
|
||||
if (tce == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final String cellStyleName = (String) tce.getAttribute(OfficeNamespaces.TABLE_NS, OfficeToken.STYLE_NAME);
|
||||
if (cellStyleName == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
final OfficeDocument document = getDocument();
|
||||
if (document == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final OfficeStyle style = document.getStylesCollection().getStyle("table-cell", cellStyleName);
|
||||
return (String) style.getAttribute(OfficeNamespaces.STYLE_NS, "data-style-name");
|
||||
}
|
||||
|
||||
private String computeValueType()
|
||||
{
|
||||
final Element tce = getParentTableCell();
|
||||
if (tce == null)
|
||||
{
|
||||
// NO particular format means: Fallback to string and hope and pray ..
|
||||
throw new IllegalStateException("A formatted text element must be a child of a Table-Cell.");
|
||||
}
|
||||
|
||||
final String type = (String) tce.getAttribute(OfficeNamespaces.OFFICE_NS, FormatValueUtility.VALUE_TYPE);
|
||||
if (type == null)
|
||||
{
|
||||
LOGGER.error("The Table-Cell does not have a office:value attribute defined. Your content will be messed up.");
|
||||
return "string";
|
||||
}
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
@@ -68,7 +68,12 @@ public class VariablesCollection
|
||||
return namePrefix;
|
||||
}
|
||||
|
||||
|
||||
public String addVariable(final FormattedTextElement element)
|
||||
{
|
||||
variables.add(element);
|
||||
final int size = variables.size();
|
||||
return namePrefix + size;
|
||||
}
|
||||
|
||||
public FormattedTextElement[] getVariables()
|
||||
{
|
||||
|
Reference in New Issue
Block a user