package jas.hist.test;
import jas.export.SaveAsPluginAdapter;
import jas.hist.JASHist;
import jas.hist.SaveAsPlugin;
import jas.hist.XMLHistBuilder;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.freehep.util.export.ExportFileType;
class ExportTest extends JFrame implements Runnable
{
private JASHist plot;
public ExportTest() throws Exception
{
super("Export Test");
setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
XMLHistBuilder xhb = new XMLHistBuilder(new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("ExportTest.plotml"))),"ExportTest.plotml");
plot = xhb.getSoloPlot();
plot.setAllowUserInteraction(false);
getContentPane().add(plot);
}
public static void main(String args[]) throws Exception
{
ExportTest xhv = new ExportTest();
xhv.pack();
xhv.show();
Thread.currentThread().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;
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
{
Class c = Class.forName(exported);
Object exporter = c.newInstance();
if (exporter instanceof ExportFileType) exporter = new SaveAsPluginAdapter((ExportFileType) exporter);
SaveAsPlugin saveAs = (SaveAsPlugin) exporter;
saveAs.restoreOptions(options);
File f = new File(file);
OutputStream os = new FileOutputStream(f);
System.out.println(title+" running...");
long start = System.currentTimeMillis();
saveAs.saveAs(plot,os,f,this);
long stop = System.currentTimeMillis();
os.close();
System.out.println(title+" done, time="+(stop-start)+"ms size="+f.length());
}
}