//import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.awt.AWTEvent;
import javax.swing.*;
import java.io.IOException;

//import java.awt.*;
//import java.awt.Frame;

/**
 * This command opens a file dialog, creates a new Pixmap, and adds
 * the resulting Pixmap to the current app's state.
 *
 * @author Syam Gadde
 * @author Owen Astrachan 
 */

class ReadCommand extends Command implements ActionListener
{
    public ReadCommand(PixController control)
    {
	myControl = control;
	myChooser = new JFileChooser();
    }

    public void actionPerformed(ActionEvent ev)
    {
	execute(ev);
    }

    public void execute(AWTEvent evt)
    {
	String filename = getFilename();
	if (filename == null) return;

	myControl.loadPixmap(filename);
    }

    private String getFilename()
    {
	int retval = myChooser.showOpenDialog(myControl.getGui());
	if (retval == JFileChooser.APPROVE_OPTION)
	{
	    try {
		return myChooser.getSelectedFile().getCanonicalPath();
	    }
	    catch (IOException e) {
		return null;
	    }
	}
	return null;
    }

    private PixController myControl;
    private JFileChooser myChooser;
}

