/* * SaveAsPlotML.java * Created on March 28, 2002, 3:36 PM */ package jas.hist; import jas.util.FileTypeFileFilter; import java.awt.Component; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Properties; import javax.swing.ButtonGroup; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.filechooser.FileFilter; /** * * @author tonyj */ public class SaveAsPlotML implements SaveAsPlugin { public boolean hasOptions() { return true; } public FileFilter getFileFilter() { return new FileTypeFileFilter("plotml","XML Plot File (*.plotml)"); } public JPanel getOptionsPanel() { JPanel custom = new JPanel(); custom.add(button1); custom.add(button2); ButtonGroup bg = new ButtonGroup(); bg.add(button1); bg.add(button2); return custom; } public void saveAs(Component c, OutputStream os, File file, Component dialogParent) throws IOException { Writer writer = new OutputStreamWriter(os); ((JASHist) c).writeXML(writer,button1.isSelected()); writer.close(); } public File adjustFilename(File file) { String name = file.getName(); if (name.endsWith(".plotml")) return file; int pos = name.indexOf('.'); if (pos >= 0) name = name.substring(0,pos); name += ".plotml"; File parent = file.getParentFile(); return new File(parent,name); } public boolean supportsClass(Object o) { return (o instanceof JASHist); } public void restoreOptions(Properties props) { } public void saveOptions(Properties props) { } private JRadioButton button1 = new JRadioButton("Save current snapshot of data",true); private JRadioButton button2 = new JRadioButton("Save reference to live data"); }