import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class IconSelectorDemo implements ActionListener {

    private IconSelectorFrame theIconSelectorFrame;

    private void addIconSelectorFrame(IconSelectorFrame f) {
        theIconSelectorFrame = f;
        f.addActionListener(this);
        JMenuBar mb = new JMenuBar();
        JMenu m = new JMenu("File");
        mb.add(m);
        JMenuItem mi = new JMenuItem("Change Directory");
        m.add(mi);
        mi.addActionListener(this);
        f.setJMenuBar(mb);
        f.pack();
        f.setVisible(true);
    }
    
    public IconSelectorDemo (IconSelectorFrame f) {
        addIconSelectorFrame(f);
    }
    
    public static void main (String[] args) {
        IconSelectorFrame f = new IconSelectorFrame("images/icons"); 
        IconSelectorDemo demo = new IconSelectorDemo(f);
        f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }});
    }
    
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (e.getActionCommand().equals("Change Directory")) {
            System.out.println("Menu");
            JFileChooser chooser = new JFileChooser("./images");
            chooser.setDialogTitle("Choose a new directory");
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int returnVal = chooser.showOpenDialog(theIconSelectorFrame);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                System.out.println("You chose to open this file: " +
                                   chooser.getSelectedFile().getAbsolutePath());
                addIconSelectorFrame(new IconSelectorFrame(chooser.getSelectedFile().getAbsolutePath()));
            }
        } else {
            JButton b = (JButton)source;
            JOptionPane.showConfirmDialog(theIconSelectorFrame,"You like this icon, yes?", "Confirmation Window", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, b.getIcon());
        }
    }
    
}
