package gui.views.components; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import gui.GUIOptions; /** * Confirmation dialog that can be definitely hidden. * * @author Maixme PIA */ public class HidableOKCancelDialog { public static final int CLOSE_CONFIRM = 0; public static final String CLOSE_CONFIRM_MESSAGE = "Hook Any Text will be closed. " + "You can open it again from Cheat Egine's File menu."; private int id; private JPanel body; private Component parent; private GUIOptions opts; public HidableOKCancelDialog(int id, Component parent, String message, GUIOptions opts) { this.parent = parent; this.opts = opts; this.body = new JPanel(); BoxLayout layout = new BoxLayout(this.body, BoxLayout.Y_AXIS); this.body.setLayout(layout); JLabel messageLabel = new JLabel(message); final JCheckBox dontShowCB = new JCheckBox("Do not show this message again."); dontShowCB.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (dontShowCB.isSelected()) { HidableOKCancelDialog.this.opts.addHiddenDialog( HidableOKCancelDialog.this.id ); } } }); body.add(messageLabel); body.add(dontShowCB); } /** * Getter on whether or not the dialog has been hidden. * * @return True if the dialog has been hidden. */ public boolean isHidden() { return (opts.isDialogHidden(id)); } /** * Shows the dialog if it hasn't been hidden. * * @return JOptionPane.OK_OPTION if hidden * or the result of showConfirmDialog of not hidden. */ public int show() { if (isHidden()) return JOptionPane.OK_OPTION; return JOptionPane.showConfirmDialog( parent, body, "Confirmation", JOptionPane.OK_CANCEL_OPTION ); } }