package org.limewire.ui.swing.components;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
import org.limewire.ui.swing.util.GuiUtils;
import org.limewire.ui.swing.util.I18n;
public class YesNoCheckBoxDialog extends LimeJDialog {
public static final String YES_COMMAND = "YES";
public static final String NO_COMMAND = "NO";
private JButton yesButton = null;
private JButton noButton = null;
private JCheckBox checkBox;
private String selectedCommand;
public YesNoCheckBoxDialog(String message, String checkBoxMessage, boolean checked) {
this(message, checkBoxMessage, checked,I18n.tr("Yes"), I18n.tr("No"));
}
public YesNoCheckBoxDialog(String message, String checkBoxMessage, boolean checked,
String yesLabel, String noLabel) {
this("", message, checkBoxMessage, checked, yesLabel, noLabel);
}
public YesNoCheckBoxDialog(String title, String message, String checkBoxMessage, boolean checked,
String yesLabel, String noLabel) {
super(GuiUtils.getMainFrame(), title);
setModalityType(ModalityType.APPLICATION_MODAL);
JPanel panel = new JPanel();
MultiLineLabel messageLabel = new MultiLineLabel(message, 350);
checkBox = new JCheckBox(checkBoxMessage);
checkBox.setSelected(checked);
yesButton = new JButton(yesLabel);
yesButton.setActionCommand(YES_COMMAND);
yesButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
selectedCommand = YES_COMMAND;
YesNoCheckBoxDialog.this.dispose();
}
});
noButton = new JButton(noLabel);
noButton.setActionCommand(NO_COMMAND);
noButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectedCommand = NO_COMMAND;
YesNoCheckBoxDialog.this.dispose();
}
});
panel.setLayout(new MigLayout("", "", ""));
panel.add(messageLabel, "wrap");
panel.add(checkBox, "wrap");
panel.add(yesButton, "alignx right");
panel.add(noButton, "alignx right");
setContentPane(panel);
pack();
}
public void addActionListener(ActionListener actionListener) {
yesButton.addActionListener(actionListener);
noButton.addActionListener(actionListener);
}
public void removeActionListener(ActionListener actionListener) {
yesButton.removeActionListener(actionListener);
noButton.removeActionListener(actionListener);
}
public synchronized boolean isCheckBoxSelected() {
return checkBox.isSelected();
}
/**
* @return true if yes was clicked
*/
public boolean isConfirmed(){
return selectedCommand == YES_COMMAND;
}
}