/**
* AstrosoftExporter.java
* Created On 2007, Aug 31, 2007 3:18:16 PM
* @author E. Rajasekar
*/
package app.astrosoft.export;
import java.util.concurrent.FutureTask;
import java.util.logging.Logger;
import javax.swing.SwingUtilities;
public class AstrosoftExporter {
public static enum Type {
Horosocope {
@Override
public Exporter getExporter(String xmlFile) {
return new HoroscopeExporter(xmlFile);
}
@Override
public String getTemplate() {
return Type.class.getResource("/resources/export/horoscope2pdf.xsl").toString();
}
},
Compactibility{
@Override
public Exporter getExporter(String xmlFile) {
return new CompactibilityExporter(xmlFile);
}
@Override
public String getTemplate() {
return Type.class.getResource("/resources/export/compactibility2pdf.xsl").toString();
}
},
Panchang {
@Override
public Exporter getExporter(String xmlFile) {
return new PanchangExporter(xmlFile);
}
@Override
public String getTemplate() {
return Type.class.getResource("/resources/export/panchang2pdf.xsl").toString();
}
};
public abstract Exporter getExporter(String xmlFile);
public abstract String getTemplate();
};
private static final Logger log = Logger.getLogger(AstrosoftExporter.class.getName());
public static FutureTask<Object> export2Pdf(final Type exporterType, final Exportable exportable, final String pdfFile){
Runnable r = new Runnable () {
public void run() {
String xmlFile = pdfFile.replaceAll(".pdf|.PDF",".xml");
export2Xml(exporterType,exportable,xmlFile);
log.info("XML File: " + xmlFile);
log.info("PDF File: " + pdfFile);
FOPTransformer.exportToPDF(xmlFile, exporterType.getTemplate(), pdfFile);
}
};
FutureTask<Object> task = new FutureTask<Object>(r,null);
new Thread(task).start();
return task;
}
public static void export2Xml(Type exporterType, Exportable exportable, String xmlFile){
exporterType.getExporter(xmlFile).export2Xml(exportable);
}
}