/*
 * Torutk Learning Project for Swing Application Framework.
 *
 * $Id: ButtonApplication.java 101 2007-10-08 12:32:56Z toru $
 */
import java.awt.Color;
import java.util.logging.Logger;
import javax.swing.ActionMap;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.jdesktop.application.Action;
import org.jdesktop.application.ApplicationContext;
import org.jdesktop.application.SingleFrameApplication;

public class ButtonApplication extends SingleFrameApplication {

    @Override
    protected void startup() {
        JPanel panel = new JPanel();

        label = new JLabel();
        label.setName("myLabel");
        panel.add(label);

        button = new JButton();
        button.setName("myButton");
        panel.add(button);
        
        ActionMap map = getContext().getActionMap();
        javax.swing.Action action = map.get("swapLabelColor");
        if (action == null) {
            LOGGER.severe("Action[key=swapLabelColor] not found");
        }
        button.setAction(action);

        show(panel);
    }

    @Action public void swapLabelColor() {
        Color fore = label.getForeground();
        Color back = label.getBackground();
        label.setForeground(back);
        label.setBackground(fore);
    }

    public static final void main(final String[] args) {
        launch(ButtonApplication.class, args);
    }

    private JLabel label;
    private JButton button;
    private static final Logger LOGGER = Logger.getLogger(
        ButtonApplication.class.getName()
    );

}

