/*
Copyright 2009 Hauke Rehfeld
This file is part of QuakeInjector.
QuakeInjector is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QuakeInjector is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QuakeInjector. If not, see <http://www.gnu.org/licenses/>.
*/
package de.haukerehfeld.quakeinjector.gui;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
/**
* The typical okay/cancel area
*/
public class ClosePanel extends JPanel {
public ClosePanel(final JDialog dialog, final ActionListener action) {
super();
setLayout(new GridLayout(0,2));
add(makeCloseButton(dialog, "Okay", action));
add(makeCloseButton(dialog, "Cancel"));
}
public static JButton makeCloseButton(final JDialog dialog,
final String text) {
return makeCloseButton(dialog, text, null);
}
/**
* Make a button that closes the dialog and executes another action.
*
* You still have to add it to the frame.
*
* Action may be null.
*/
public static JButton makeCloseButton(final JDialog dialog,
final String text,
final ActionListener action) {
JButton okay = new JButton(text);
okay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (action != null) {
action.actionPerformed(e);
}
dialog.setVisible(false);
dialog.dispose();
}
});
return okay;
}
}