package prefuse.util.display;
import java.awt.event.ActionEvent;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.HashSet;
import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import prefuse.Display;
import prefuse.util.io.IOLib;
import prefuse.util.io.SimpleFileFilter;
/**
* Swing ActionListener that reveals a dialog box that allows users to
* export the current Display view to an image file.
*
* @author jeffrey heer
*/
public class ExportDisplayAction extends AbstractAction {
private Display display;
private JFileChooser chooser;
private ScaleSelector scaler;
/**
* Create a new ExportDisplayAction for the given Display.
* @param display the Display to capture
*/
public ExportDisplayAction(Display display) {
this.display = display;
scaler = new ScaleSelector();
chooser = new JFileChooser();
chooser.setDialogType(JFileChooser.SAVE_DIALOG);
chooser.setDialogTitle("Export Prefuse Display...");
chooser.setAcceptAllFileFilterUsed(false);
HashSet seen = new HashSet();
String[] fmts = ImageIO.getWriterFormatNames();
for ( int i=0; i