summaryrefslogtreecommitdiff
path: root/reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java
diff options
context:
space:
mode:
Diffstat (limited to 'reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java')
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java528
1 files changed, 270 insertions, 258 deletions
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java b/reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java
index 4300d44defd3..24fb64d3b95e 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java
@@ -27,8 +27,6 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-
package com.sun.star.report.pentaho.output;
import java.io.IOException;
@@ -70,305 +68,319 @@ import org.pentaho.reporting.libraries.xmlns.writer.XmlWriterSupport;
*/
public class StylesWriter
{
- private final XmlWriter xmlWriter;
- private final boolean writeOpeningTag;
-
- public StylesWriter(final Writer writer)
- {
- final DefaultTagDescription tagDescription = new DefaultTagDescription();
- tagDescription.configure (JFreeReportBoot.getInstance().getGlobalConfig(),
- OfficeDocumentReportTarget.TAG_DEF_PREFIX);
-
- this.xmlWriter = new XmlWriter(writer, tagDescription);
- this.xmlWriter.setAlwaysAddNamespace(true);
- this.writeOpeningTag = true;
- }
-
- public StylesWriter(final XmlWriter xmlWriter)
- {
- this.xmlWriter = xmlWriter;
- this.writeOpeningTag = false;
- }
-
- public void writeContentStyles (final OfficeStylesCollection predefined,
- final OfficeStylesCollection globals)
- throws IOException, ReportProcessingException
- {
- writeFontFaces(new OfficeStylesCollection[] { globals });
- writeAutomaticStylesSection(new OfficeStylesCollection[] { globals });
- }
-
- public void writeGlobalStyles (final OfficeStylesCollection predefined,
- final OfficeStylesCollection globals)
- throws IOException, ReportProcessingException
- {
- if (writeOpeningTag)
- {
- performWriteRootTag();
- }
- writeFontFaces(new OfficeStylesCollection[] { globals });
- writeAutomaticStylesSection(new OfficeStylesCollection[] { globals });
- writeCommonStylesSection(new OfficeStylesCollection[] { globals });
- writeMasterStylesSection(new OfficeStylesCollection[] { globals });
+ private final XmlWriter xmlWriter;
+ private final boolean writeOpeningTag;
- if (writeOpeningTag)
+ public StylesWriter(final Writer writer)
{
- xmlWriter.writeCloseTag();
+ final DefaultTagDescription tagDescription = new DefaultTagDescription();
+ tagDescription.configure(JFreeReportBoot.getInstance().getGlobalConfig(),
+ OfficeDocumentReportTarget.TAG_DEF_PREFIX);
+
+ this.xmlWriter = new XmlWriter(writer, tagDescription);
+ this.xmlWriter.setAlwaysAddNamespace(true);
+ this.writeOpeningTag = true;
}
- }
-
- private void writeMasterStylesSection(final OfficeStylesCollection[] osc)
- throws IOException
- {
- xmlWriter.writeTag
- (OfficeNamespaces.OFFICE_NS, "master-styles", XmlWriterSupport.OPEN);
- for (int sci = 0; sci < osc.length; sci++)
+
+ public StylesWriter(final XmlWriter xmlWriter)
{
- final OfficeStylesCollection collection = osc[sci];
- final OfficeMasterStyles officeStyles = collection.getMasterStyles();
- final OfficeMasterPage[] officeMasterPages = officeStyles.getAllMasterPages();
- for (int i = 0; i < officeMasterPages.length; i++)
- {
- final OfficeMasterPage masterPage = officeMasterPages[i];
- writeSection(masterPage);
- }
-
- writeSectionChilds(officeStyles.getOtherNodes().getNodeArray());
+ this.xmlWriter = xmlWriter;
+ this.writeOpeningTag = false;
}
- xmlWriter.writeCloseTag();
- }
-
- private void writeCommonStylesSection(final OfficeStylesCollection[] osc)
- throws IOException
- {
- xmlWriter.writeTag
- (OfficeNamespaces.OFFICE_NS, "styles", XmlWriterSupport.OPEN);
-
- for (int sci = 0; sci < osc.length; sci++)
+ public void writeContentStyles(final OfficeStylesCollection predefined,
+ final OfficeStylesCollection globals)
+ throws IOException, ReportProcessingException
{
- final OfficeStylesCollection collection = osc[sci];
- final OfficeStyles officeStyles = collection.getCommonStyles();
- writeStyles(officeStyles);
+ writeFontFaces(new OfficeStylesCollection[]
+ {
+ globals
+ });
+ writeAutomaticStylesSection(new OfficeStylesCollection[]
+ {
+ globals
+ });
}
- xmlWriter.writeCloseTag();
- }
-
- private void writeAutomaticStylesSection(final OfficeStylesCollection[] osc)
- throws IOException
- {
- xmlWriter.writeTag
- (OfficeNamespaces.OFFICE_NS, "automatic-styles", XmlWriterSupport.OPEN);
- for (int sci = 0; sci < osc.length; sci++)
+ public void writeGlobalStyles(final OfficeStylesCollection predefined,
+ final OfficeStylesCollection globals)
+ throws IOException, ReportProcessingException
{
- final OfficeStylesCollection collection = osc[sci];
- final OfficeStyles officeStyles = collection.getAutomaticStyles();
- writeStyles(officeStyles);
+ if (writeOpeningTag)
+ {
+ performWriteRootTag();
+ }
+
+ writeFontFaces(new OfficeStylesCollection[]
+ {
+ globals
+ });
+ writeAutomaticStylesSection(new OfficeStylesCollection[]
+ {
+ globals
+ });
+ writeCommonStylesSection(new OfficeStylesCollection[]
+ {
+ globals
+ });
+ writeMasterStylesSection(new OfficeStylesCollection[]
+ {
+ globals
+ });
+
+ if (writeOpeningTag)
+ {
+ xmlWriter.writeCloseTag();
+ }
}
- xmlWriter.writeCloseTag();
- }
-
- private void writeFontFaces(final OfficeStylesCollection[] osc)
- throws IOException
- {
- xmlWriter.writeTag
- (OfficeNamespaces.OFFICE_NS, "font-face-decls", XmlWriterSupport.OPEN);
-
- final TreeMap fontFaces = new TreeMap();
- for (int sci = 0; sci < osc.length; sci++)
+ private void writeMasterStylesSection(final OfficeStylesCollection[] osc)
+ throws IOException
{
- final OfficeStylesCollection collection = osc[sci];
- final FontFaceDeclsSection fontFaceDecls = collection.getFontFaceDecls();
- final FontFaceElement[] fontFaceElements = fontFaceDecls.getAllFontFaces();
- for (int i = 0; i < fontFaceElements.length; i++)
- {
- final FontFaceElement element = fontFaceElements[i];
- fontFaces.put (element.getStyleName(), element);
- }
+ xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "master-styles", XmlWriterSupport.OPEN);
+ for (int sci = 0; sci < osc.length; sci++)
+ {
+ final OfficeStylesCollection collection = osc[sci];
+ final OfficeMasterStyles officeStyles = collection.getMasterStyles();
+ final OfficeMasterPage[] officeMasterPages = officeStyles.getAllMasterPages();
+ for (int i = 0; i < officeMasterPages.length; i++)
+ {
+ final OfficeMasterPage masterPage = officeMasterPages[i];
+ writeSection(masterPage);
+ }
+
+ writeSectionChilds(officeStyles.getOtherNodes().getNodeArray());
+ }
+
+ xmlWriter.writeCloseTag();
}
- final Iterator values = fontFaces.values().iterator();
- while (values.hasNext())
+ private void writeCommonStylesSection(final OfficeStylesCollection[] osc)
+ throws IOException
{
- final FontFaceElement element = (FontFaceElement) values.next();
- writeElement(element);
- }
+ xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "styles", XmlWriterSupport.OPEN);
- xmlWriter.writeCloseTag();
- }
+ for (int sci = 0; sci < osc.length; sci++)
+ {
+ final OfficeStylesCollection collection = osc[sci];
+ final OfficeStyles officeStyles = collection.getCommonStyles();
+ writeStyles(officeStyles);
+ }
- private void writeStyles (final OfficeStyles styles)
- throws IOException
- {
- final OfficeStyle[] allStyles = styles.getAllStyles();
- for (int i = 0; i < allStyles.length; i++)
- {
- final OfficeStyle style = allStyles[i];
- writeSection(style);
+ xmlWriter.writeCloseTag();
}
- final DataStyle[] allDataStyles = styles.getAllDataStyles();
- for (int i = 0; i < allDataStyles.length; i++)
+ private void writeAutomaticStylesSection(final OfficeStylesCollection[] osc)
+ throws IOException
{
- final DataStyle style = allDataStyles[i];
- writeSection(style);
+ xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "automatic-styles", XmlWriterSupport.OPEN);
+ for (int sci = 0; sci < osc.length; sci++)
+ {
+ final OfficeStylesCollection collection = osc[sci];
+ final OfficeStyles officeStyles = collection.getAutomaticStyles();
+ writeStyles(officeStyles);
+ }
+
+ xmlWriter.writeCloseTag();
}
- final PageLayout[] allPageStyles = styles.getAllPageStyles();
- for (int i = 0; i < allPageStyles.length; i++)
+ private void writeFontFaces(final OfficeStylesCollection[] osc)
+ throws IOException
{
- final PageLayout style = allPageStyles[i];
- writeSection(style);
+ xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "font-face-decls", XmlWriterSupport.OPEN);
+
+ final TreeMap fontFaces = new TreeMap();
+ for (int sci = 0; sci < osc.length; sci++)
+ {
+ final OfficeStylesCollection collection = osc[sci];
+ final FontFaceDeclsSection fontFaceDecls = collection.getFontFaceDecls();
+ final FontFaceElement[] fontFaceElements = fontFaceDecls.getAllFontFaces();
+ for (int i = 0; i < fontFaceElements.length; i++)
+ {
+ final FontFaceElement element = fontFaceElements[i];
+ fontFaces.put(element.getStyleName(), element);
+ }
+ }
+
+ final Iterator values = fontFaces.values().iterator();
+ while (values.hasNext())
+ {
+ final FontFaceElement element = (FontFaceElement) values.next();
+ writeElement(element);
+ }
+
+ xmlWriter.writeCloseTag();
}
- writeSectionChilds(styles.getOtherStyles());
- }
-
- private void writeElement (final Element element)
- throws IOException
- {
- final String type = element.getType();
- final String namespace = element.getNamespace();
- final AttributeList attrList = buildAttributeList(element.getAttributeMap());
- xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.CLOSE);
- }
-
- private void writeSection (final Section section)
- throws IOException
- {
- final String type = section.getType();
- final String namespace = section.getNamespace();
- final AttributeList attrList = buildAttributeList(section.getAttributeMap());
- if (section.getNodeCount() == 0)
+ private void writeStyles(final OfficeStyles styles)
+ throws IOException
{
- xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.CLOSE);
- return;
+ final OfficeStyle[] allStyles = styles.getAllStyles();
+ for (int i = 0; i < allStyles.length; i++)
+ {
+ final OfficeStyle style = allStyles[i];
+ writeSection(style);
+ }
+
+ final DataStyle[] allDataStyles = styles.getAllDataStyles();
+ for (int i = 0; i < allDataStyles.length; i++)
+ {
+ final DataStyle style = allDataStyles[i];
+ writeSection(style);
+ }
+
+ final PageLayout[] allPageStyles = styles.getAllPageStyles();
+ for (int i = 0; i < allPageStyles.length; i++)
+ {
+ final PageLayout style = allPageStyles[i];
+ writeSection(style);
+ }
+
+ writeSectionChilds(styles.getOtherStyles());
}
- xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.OPEN);
- writeSectionChilds(section.getNodeArray());
-
- xmlWriter.writeCloseTag();
- }
-
- private void writeSectionChilds(final Node[] nodes)
- throws IOException
- {
- for (int i = 0; i < nodes.length; i++)
+ private void writeElement(final Element element)
+ throws IOException
{
- final Node node = nodes[i];
- if (node instanceof Section)
- {
- writeSection((Section) node);
- }
- else if (node instanceof Element)
- {
- writeElement((Element) node);
- }
- else if (node instanceof RawText)
- {
- final RawText text = (RawText) node;
- xmlWriter.writeText(text.getText());
- }
- else if (node instanceof StaticText)
- {
- final StaticText text = (StaticText) node;
- xmlWriter.writeTextNormalized(text.getText(), false);
- }
+ final String type = element.getType();
+ final String namespace = element.getNamespace();
+ final AttributeList attrList = buildAttributeList(element.getAttributeMap());
+ xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.CLOSE);
}
- }
- protected AttributeList buildAttributeList(final AttributeMap attrs)
- {
- final AttributeList attrList = new AttributeList();
- final String[] namespaces = attrs.getNameSpaces();
- for (int i = 0; i < namespaces.length; i++)
+ private void writeSection(final Section section)
+ throws IOException
{
- final String attrNamespace = namespaces[i];
- if (isFilteredNamespace(attrNamespace))
- {
- continue;
- }
-
- final Map localAttributes = attrs.getAttributes(attrNamespace);
- final Iterator entries = localAttributes.entrySet().iterator();
- while (entries.hasNext())
- {
- final Map.Entry entry = (Map.Entry) entries.next();
- final String key = String.valueOf(entry.getKey());
- attrList.setAttribute(attrNamespace, key, String.valueOf(entry.getValue()));
- }
+ final String type = section.getType();
+ final String namespace = section.getNamespace();
+ final AttributeList attrList = buildAttributeList(section.getAttributeMap());
+ if (section.getNodeCount() == 0)
+ {
+ xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.CLOSE);
+ return;
+ }
+
+ xmlWriter.writeTag(namespace, type, attrList, XmlWriterSupport.OPEN);
+ writeSectionChilds(section.getNodeArray());
+
+ xmlWriter.writeCloseTag();
}
- return attrList;
- }
- protected boolean isFilteredNamespace(final String namespace)
- {
- if (Namespaces.LIBLAYOUT_NAMESPACE.equals(namespace))
+ private void writeSectionChilds(final Node[] nodes)
+ throws IOException
{
- return true;
+ for (int i = 0; i < nodes.length; i++)
+ {
+ final Node node = nodes[i];
+ if (node instanceof Section)
+ {
+ writeSection((Section) node);
+ }
+ else if (node instanceof Element)
+ {
+ writeElement((Element) node);
+ }
+ else if (node instanceof RawText)
+ {
+ final RawText text = (RawText) node;
+ xmlWriter.writeText(text.getText());
+ }
+ else if (node instanceof StaticText)
+ {
+ final StaticText text = (StaticText) node;
+ xmlWriter.writeTextNormalized(text.getText(), false);
+ }
+ }
}
- if (JFreeReportInfo.REPORT_NAMESPACE.equals(namespace))
+
+ protected AttributeList buildAttributeList(final AttributeMap attrs)
{
- return true;
+ final AttributeList attrList = new AttributeList();
+ final String[] namespaces = attrs.getNameSpaces();
+ for (int i = 0; i < namespaces.length; i++)
+ {
+ final String attrNamespace = namespaces[i];
+ if (isFilteredNamespace(attrNamespace))
+ {
+ continue;
+ }
+
+ final Map localAttributes = attrs.getAttributes(attrNamespace);
+ final Iterator entries = localAttributes.entrySet().iterator();
+ while (entries.hasNext())
+ {
+ final Map.Entry entry = (Map.Entry) entries.next();
+ final String key = String.valueOf(entry.getKey());
+ attrList.setAttribute(attrNamespace, key, String.valueOf(entry.getValue()));
+ }
+ }
+ return attrList;
}
- if (JFreeReportInfo.COMPATIBILITY_NAMESPACE.equals(namespace))
+
+ protected boolean isFilteredNamespace(final String namespace)
{
- return true;
+ if (Namespaces.LIBLAYOUT_NAMESPACE.equals(namespace))
+ {
+ return true;
+ }
+ if (JFreeReportInfo.REPORT_NAMESPACE.equals(namespace))
+ {
+ return true;
+ }
+ if (JFreeReportInfo.COMPATIBILITY_NAMESPACE.equals(namespace))
+ {
+ return true;
+ }
+ if (OfficeNamespaces.OOREPORT_NS.equals(namespace))
+ {
+ return true;
+ }
+ return false;
}
- if (OfficeNamespaces.OOREPORT_NS.equals(namespace))
+
+ private void performWriteRootTag()
+ throws IOException
{
- return true;
+ final AttributeList rootAttributes = new AttributeList();
+ rootAttributes.addNamespaceDeclaration("office",
+ OfficeNamespaces.OFFICE_NS);
+ rootAttributes.addNamespaceDeclaration("style", OfficeNamespaces.STYLE_NS);
+ rootAttributes.addNamespaceDeclaration("text", OfficeNamespaces.TEXT_NS);
+ rootAttributes.addNamespaceDeclaration("table", OfficeNamespaces.TABLE_NS);
+ rootAttributes.addNamespaceDeclaration("draw", OfficeNamespaces.DRAWING_NS);
+ rootAttributes.addNamespaceDeclaration("fo", OfficeNamespaces.FO_NS);
+ rootAttributes.addNamespaceDeclaration("xlink", OfficeNamespaces.XLINK_NS);
+ rootAttributes.addNamespaceDeclaration("dc", OfficeNamespaces.PURL_NS);
+ rootAttributes.addNamespaceDeclaration("meta", OfficeNamespaces.META_NS);
+ rootAttributes.addNamespaceDeclaration("number",
+ OfficeNamespaces.DATASTYLE_NS);
+ rootAttributes.addNamespaceDeclaration("svg", OfficeNamespaces.SVG_NS);
+ rootAttributes.addNamespaceDeclaration("chart", OfficeNamespaces.CHART_NS);
+ rootAttributes.addNamespaceDeclaration("dr3d", OfficeNamespaces.DR3D_NS);
+ rootAttributes.addNamespaceDeclaration("math", OfficeNamespaces.MATHML_NS);
+ rootAttributes.addNamespaceDeclaration("form", OfficeNamespaces.FORM_NS);
+ rootAttributes.addNamespaceDeclaration("script",
+ OfficeNamespaces.SCRIPT_NS);
+ rootAttributes.addNamespaceDeclaration("ooo", OfficeNamespaces.OO2004_NS);
+ rootAttributes.addNamespaceDeclaration("ooow", OfficeNamespaces.OOW2004_NS);
+ rootAttributes.addNamespaceDeclaration("oooc", OfficeNamespaces.OOC2004_NS);
+ rootAttributes.addNamespaceDeclaration("dom",
+ OfficeNamespaces.XML_EVENT_NS);
+ rootAttributes.addNamespaceDeclaration("xforms",
+ OfficeNamespaces.XFORMS_NS);
+ rootAttributes.addNamespaceDeclaration("xsd", OfficeNamespaces.XSD_NS);
+ rootAttributes.addNamespaceDeclaration("xsi", OfficeNamespaces.XSI_NS);
+ rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", "1.0");
+
+ this.xmlWriter.writeXmlDeclaration("UTF-8");
+ this.xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS,
+ "document-content", rootAttributes, XmlWriterSupport.OPEN);
}
- return false;
- }
-
- private void performWriteRootTag()
- throws IOException
- {
- final AttributeList rootAttributes = new AttributeList();
- rootAttributes.addNamespaceDeclaration("office",
- OfficeNamespaces.OFFICE_NS);
- rootAttributes.addNamespaceDeclaration("style", OfficeNamespaces.STYLE_NS);
- rootAttributes.addNamespaceDeclaration("text", OfficeNamespaces.TEXT_NS);
- rootAttributes.addNamespaceDeclaration("table", OfficeNamespaces.TABLE_NS);
- rootAttributes.addNamespaceDeclaration("draw", OfficeNamespaces.DRAWING_NS);
- rootAttributes.addNamespaceDeclaration("fo", OfficeNamespaces.FO_NS);
- rootAttributes.addNamespaceDeclaration("xlink", OfficeNamespaces.XLINK_NS);
- rootAttributes.addNamespaceDeclaration("dc", OfficeNamespaces.PURL_NS);
- rootAttributes.addNamespaceDeclaration("meta", OfficeNamespaces.META_NS);
- rootAttributes.addNamespaceDeclaration("number",
- OfficeNamespaces.DATASTYLE_NS);
- rootAttributes.addNamespaceDeclaration("svg", OfficeNamespaces.SVG_NS);
- rootAttributes.addNamespaceDeclaration("chart", OfficeNamespaces.CHART_NS);
- rootAttributes.addNamespaceDeclaration("dr3d", OfficeNamespaces.DR3D_NS);
- rootAttributes.addNamespaceDeclaration("math", OfficeNamespaces.MATHML_NS);
- rootAttributes.addNamespaceDeclaration("form", OfficeNamespaces.FORM_NS);
- rootAttributes.addNamespaceDeclaration("script",
- OfficeNamespaces.SCRIPT_NS);
- rootAttributes.addNamespaceDeclaration("ooo", OfficeNamespaces.OO2004_NS);
- rootAttributes.addNamespaceDeclaration("ooow", OfficeNamespaces.OOW2004_NS);
- rootAttributes.addNamespaceDeclaration("oooc", OfficeNamespaces.OOC2004_NS);
- rootAttributes.addNamespaceDeclaration("dom",
- OfficeNamespaces.XML_EVENT_NS);
- rootAttributes.addNamespaceDeclaration("xforms",
- OfficeNamespaces.XFORMS_NS);
- rootAttributes.addNamespaceDeclaration("xsd", OfficeNamespaces.XSD_NS);
- rootAttributes.addNamespaceDeclaration("xsi", OfficeNamespaces.XSI_NS);
- rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", "1.0");
-
- this.xmlWriter.writeXmlDeclaration("UTF-8");
- this.xmlWriter.writeTag(OfficeNamespaces.OFFICE_NS,
- "document-content", rootAttributes, XmlWriterSupport.OPEN);
- }
-
- public void close()
- throws IOException
- {
- xmlWriter.close();
- }
+ public void close()
+ throws IOException
+ {
+ xmlWriter.close();
+ }
}