package org.freehep.util.export.test;
import jas.hist.JASHist;
import jas.hist.XMLHistBuilder;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import org.freehep.util.export.ExportFileType;
public class ExportTest extends JFrame implements Runnable
{
private JASHist plot;
public ExportTest(String plotml) throws Exception
{
super("Export Test");
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
InputStream in = getClass().getResourceAsStream(plotml);
XMLHistBuilder xhb = new XMLHistBuilder(new InputStreamReader(in), "ExportTest.plotml");
plot = xhb.getSoloPlot();
plot.setAllowUserInteraction(false);
getContentPane().add(plot);
}
public static void main(String[] args) throws Exception
{
String plotml = args.length == 0 ? "ExportTest.plotml" : args[0];
ExportTest xhv = new ExportTest(plotml);
xhv.pack();
xhv.setVisible(true);
Thread.sleep(500);
SwingUtilities.invokeAndWait(xhv);
System.exit(0);
}
public void run()
{
try
{
BufferedReader control = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("ExportTest.ini")));
for (;;)
{
String line = control.readLine();
if (line == null)
break;
if (line.startsWith("#"))
continue;
StringTokenizer st = new StringTokenizer(line, ",=");
String title = st.nextToken().trim();
String file = st.nextToken().trim();
String klass = st.nextToken().trim();
Properties props = new Properties();
while (st.hasMoreTokens())
{
String key = st.nextToken().trim();
if (!st.hasMoreTokens())
break;
String value = st.nextToken().trim();
props.setProperty(key, value);
}
test(title, file, klass, props);
}
control.close();
}
catch (Exception x)
{
x.printStackTrace();
}
}
private void test(String title, String file, String exported, Properties options) throws Exception
{
Collection c = ExportFileType.getExportFileTypes(exported);
if ((c == null) || c.isEmpty())
{
System.out.println("No driver for \"" + exported + "\" found");
}
else
{
ExportFileType type = (ExportFileType) c.iterator().next();
File f = new File(file);
System.out.println(title + " running...");
long start = System.currentTimeMillis();
type.exportToFile(f, plot, this, options, getName());
long stop = System.currentTimeMillis();
System.out.println(title + " done, time=" + (stop - start) + "ms size=" + f.length());
}
}
}