package uk.co.bytemark.vm.enigma.inquisition.gui.editor;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.layout.CC;
import net.miginfocom.layout.LC;
import net.miginfocom.swing.MigLayout;
import uk.co.bytemark.vm.enigma.inquisition.gui.editor.IQuestionEditorPanel.QuestionValidityListener;
import uk.co.bytemark.vm.enigma.inquisition.questions.Question;
public class QuestionDialog extends JDialog implements QuestionValidityListener {
private boolean ok = false;
private final IQuestionEditorPanel questionEditorPanel;
private final JButton okButton;
public QuestionDialog(JFrame parent, String title, JPanel questionEditorPanel) {
super(parent, title, true);
if (!(questionEditorPanel instanceof IQuestionEditorPanel))
throw new IllegalArgumentException("questionEditorpanel must be an IQuestionEditorPanel");
this.questionEditorPanel = (IQuestionEditorPanel) questionEditorPanel;
setLayout(new BorderLayout());
add(questionEditorPanel, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel(new MigLayout(new LC().alignX("right")));
JButton cancelButton = new JButton("Cancel");
buttonPanel.add(cancelButton, new CC().sizeGroupX("buttons"));
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
okButton = new JButton("OK");
buttonPanel.add(okButton, new CC().sizeGroupX("buttons"));
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ok = true;
dispose();
}
});
add(buttonPanel, BorderLayout.SOUTH);
this.questionEditorPanel.setQuestionValidityListener(this);
}
public boolean okSelected() {
return ok;
}
public Question getQuestion() {
return questionEditorPanel.getQuestion();
}
public void questionValid(boolean valid) {
okButton.setEnabled(valid);
}
}