summaryrefslogtreecommitdiff
path: root/reportbuilder
diff options
context:
space:
mode:
Diffstat (limited to 'reportbuilder')
-rw-r--r--reportbuilder/java/com/sun/star/report/StorageRepository.java3
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java22
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java30
-rw-r--r--reportbuilder/util/description.xml2
4 files changed, 46 insertions, 11 deletions
diff --git a/reportbuilder/java/com/sun/star/report/StorageRepository.java b/reportbuilder/java/com/sun/star/report/StorageRepository.java
index bf5687da14ae..b32bcb3dab86 100644
--- a/reportbuilder/java/com/sun/star/report/StorageRepository.java
+++ b/reportbuilder/java/com/sun/star/report/StorageRepository.java
@@ -70,6 +70,7 @@ public class StorageRepository implements InputRepository, OutputRepository
{
this.input = input;
this.output = output;
+
}
public StorageRepository(final XStorage storage, final boolean isOutput)
@@ -118,7 +119,7 @@ public class StorageRepository implements InputRepository, OutputRepository
}
try
{
- final XStream stream = (XStream) UnoRuntime.queryInterface(XStream.class, output.openStreamElement(name, ElementModes.WRITE | ElementModes.TRUNCATE));
+ final XStream stream = output.openStreamElement(name, ElementModes.WRITE | ElementModes.TRUNCATE);
stream.getInputStream().closeInput();
if (mimeType != null)
{
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java b/reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java
index 94f2d4fffad0..9866d1a41c5e 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java
@@ -146,7 +146,7 @@ public class ImageProducer
final byte b = keyData[i];
hashValue = b + hashValue * 23;
}
- this.hashCode = new Integer(hashValue);
+ this.hashCode = Integer.valueOf(hashValue);
return hashValue;
}
}
@@ -154,7 +154,6 @@ public class ImageProducer
private final InputRepository inputRepository;
private final OutputRepository outputRepository;
private final ImageService imageService;
- private final DefaultNameGenerator nameGenerator;
public ImageProducer(final InputRepository inputRepository,
final OutputRepository outputRepository,
@@ -177,7 +176,6 @@ public class ImageProducer
this.outputRepository = outputRepository;
this.imageService = imageService;
this.imageCache = new HashMap();
- this.nameGenerator = new DefaultNameGenerator(outputRepository);
}
/**
@@ -275,8 +273,10 @@ public class ImageProducer
// copy the image into the local output-storage
// todo: Implement data-fingerprinting so that we can detect the mime-type
- final String name = nameGenerator.generateName("Pictures/image", mimeType);
- final OutputStream outputStream = outputRepository.createOutputStream(name, mimeType);
+ final OutputRepository storage = outputRepository.openOutputRepository("Pictures", null);
+ final DefaultNameGenerator nameGenerator = new DefaultNameGenerator(storage);
+ final String name = nameGenerator.generateName("image", mimeType);
+ final OutputStream outputStream = storage.createOutputStream(name, mimeType);
final ByteArrayInputStream bin = new ByteArrayInputStream(data);
try
@@ -285,11 +285,12 @@ public class ImageProducer
} finally
{
outputStream.close();
+ storage.closeOutputRepository();
}
final CSSNumericValue widthVal = CSSNumericValue.createValue(CSSNumericType.MM, dims.getWidth() / 100.0);
final CSSNumericValue heightVal = CSSNumericValue.createValue(CSSNumericType.MM, dims.getHeight() / 100.0);
- final OfficeImage officeImage = new OfficeImage(name, widthVal, heightVal);
+ final OfficeImage officeImage = new OfficeImage("Pictures/" + name, widthVal, heightVal);
imageCache.put(imageKey, officeImage);
return officeImage;
}
@@ -442,8 +443,10 @@ public class ImageProducer
}
// copy the image into the local output-storage
- final String name = nameGenerator.generateName("Pictures/image", mimeType);
- final OutputStream outputStream = outputRepository.createOutputStream(name, mimeType);
+ final OutputRepository storage = outputRepository.openOutputRepository("Pictures", null);
+ final DefaultNameGenerator nameGenerator = new DefaultNameGenerator(storage);
+ final String name = nameGenerator.generateName("image", mimeType);
+ final OutputStream outputStream = storage.createOutputStream(name, mimeType);
final ByteArrayInputStream bin = new ByteArrayInputStream(data);
try
@@ -452,7 +455,8 @@ public class ImageProducer
} finally
{
outputStream.close();
+ storage.closeOutputRepository();
}
- return name;
+ return "Pictures/" + name;
}
}
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
index a98b64495579..56a2c036f2e8 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
+++ b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java
@@ -38,12 +38,16 @@ import com.sun.star.report.OfficeToken;
import com.sun.star.report.pentaho.PentahoReportEngineMetaData;
import com.sun.star.report.pentaho.output.OfficeDocumentReportTarget;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import org.jfree.layouting.util.AttributeMap;
import org.jfree.report.DataFlags;
import org.jfree.report.DataSourceException;
import org.jfree.report.ReportProcessingException;
import org.jfree.report.flow.ReportJob;
+import org.jfree.report.flow.ReportStructureRoot;
import org.jfree.report.flow.ReportTargetUtil;
+import org.pentaho.reporting.libraries.base.util.IOUtils;
import org.pentaho.reporting.libraries.resourceloader.ResourceKey;
import org.pentaho.reporting.libraries.resourceloader.ResourceManager;
import org.pentaho.reporting.libraries.xmlns.common.AttributeList;
@@ -253,4 +257,30 @@ public class ChartRawReportTarget extends OfficeDocumentReportTarget
}
super.processText(text);
}
+ public void endReport(final ReportStructureRoot report)
+ throws DataSourceException, ReportProcessingException
+ {
+ super.endReport(report);
+ try
+ {
+ // now copy the meta.xml
+ if (getInputRepository().isReadable("meta.xml"))
+ {
+ final InputStream inputStream = getInputRepository().createInputStream("meta.xml");
+ try
+ {
+ final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml");
+ IOUtils.getInstance().copyStreams(inputStream, outputMetaStream);
+ outputMetaStream.close();
+ } finally
+ {
+ inputStream.close();
+ }
+ }
+ }
+ catch (IOException ioe)
+ {
+ throw new ReportProcessingException("Failed to write settings document");
+ }
+ }
}
diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml
index 6e9dc128271a..5a9bef4a5532 100644
--- a/reportbuilder/util/description.xml
+++ b/reportbuilder/util/description.xml
@@ -3,7 +3,7 @@
xmlns:d="http://openoffice.org/extensions/description/2006"
xmlns:xlink="http://www.w3.org/1999/xlink">
<display-name>
- <name lang="en-US">Sun™ Report Builder</name>
+ <name lang="en-US">Sun Report Builder</name>
<!-- <name lang="en-US">Sun(TM) Report Builder</name> -->
</display-name>
<registration>