Revision: 3765
Author: [email protected]
Date: Tue Jul 20 14:47:14 2010
Log: Added a hook for the enterprise to set the default transform, and
removed a bunch of unnessary code.
http://code.google.com/p/power-architect/source/detail?r=3765
Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportHTMLPanel.java
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportHTMLPanel.java
Fri Jan 15 15:02:04 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/action/ExportHTMLPanel.java
Tue Jul 20 14:47:14 2010
@@ -22,10 +22,7 @@
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.io.Closeable;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
@@ -55,7 +52,6 @@
import ca.sqlpower.architect.transformation.TransformerFactory;
import ca.sqlpower.architect.transformation.UnknowTemplateTypeException;
import ca.sqlpower.architect.transformation.XsltTransformation;
-import ca.sqlpower.sqlobject.SQLObjectException;
import ca.sqlpower.swingui.JDefaultButton;
import ca.sqlpower.swingui.SPSUtils;
import ca.sqlpower.util.BrowserUtil;
@@ -77,6 +73,8 @@
public class ExportHTMLPanel {
private static final Logger logger =
Logger.getLogger(ExportHTMLPanel.class);
+
+ private static String builtinTransform
= "/xsltStylesheets/architect2html.xslt";
private JRadioButton builtin;
private JRadioButton external;
@@ -93,10 +91,6 @@
private JDialog dialog;
- private static final String ENCODING = "UTF-8";
- private PipedOutputStream xmlOutputStream;
- private FileOutputStream result;
-
private final JPanel panel;
private static final String PREF_KEY_BUILTIN = "htmlgen.builtin";
@@ -105,6 +99,10 @@
private static final String PREF_KEY_OUTPUT = "htmlgen.lastoutput";
private static final int MAX_HISTORY_ENTRIES = 15;
+ public static void setBuiltinTransform(String builtinTransform) {
+ ExportHTMLPanel.builtinTransform = builtinTransform;
+ }
+
public ExportHTMLPanel(ArchitectSwingSession architect) {
session = architect;
@@ -491,36 +489,8 @@
}
protected void _transformFile() {
- PipedInputStream xmlInputStream = new PipedInputStream();
- try {
- xmlOutputStream = new PipedOutputStream(xmlInputStream);
- new Thread(
- new Runnable() {
-
- public void run() {
- try {
-
session.getProjectLoader().save(xmlOutputStream, ENCODING);
- } catch (IOException
e2) {
-
SPSUtils.showExceptionDialogNoReport(session.getArchitectFrame(), "You got
an error", e2);
- } catch
(SQLObjectException e2) {
-
SPSUtils.showExceptionDialogNoReport(session.getArchitectFrame(), "You got
an error", e2);
- }
- }
- }).start();
- xmlOutputStream.flush();
-
- } catch (IOException e2) {
- SPSUtils.showExceptionDialogNoReport(session.getArchitectFrame(), "You
got an error", e2);
- }
-
File file = new File(getOutputFilename());
- try {
- result = new FileOutputStream(file);
- } catch (FileNotFoundException e2) {
- SPSUtils.showExceptionDialogNoReport(session.getArchitectFrame(), "You
got an error", e2);
- }
-
final ReportTransformer transformer;
try {
transformer =
TransformerFactory.getTransformer(getTemplateFile());
@@ -533,7 +503,7 @@
try {
File xslt = getTemplateFile();
if (xslt == null) {
- transformer.transform("/xsltStylesheets/architect2html.xslt",
getOutputFile(), session);
+ transformer.transform(builtinTransform,
getOutputFile(), session);
} else {
transformer.transform(xslt, getOutputFile(),
session);
}
@@ -550,23 +520,11 @@
}
} catch (Exception e1) {
SPSUtils.showExceptionDialogNoReport(session.getArchitectFrame(), "Transformation
error", e1);
- } finally {
- closeQuietly(result);
- closeQuietly(xmlInputStream);
- closeQuietly(xmlOutputStream);
}
setStatusBarText("");
}
- private void closeQuietly(Closeable stream) {
- try {
- stream.close();
- } catch (IOException io) {
- logger.error("Error closing file", io);
- }
-
- }
protected void setStatusBarText(final String text) {
EventQueue.invokeLater(new Runnable() {
public void run() {