package magic.ui.widget.alerter;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import magic.data.json.NewVersionJsonParser;
import magic.ui.ScreenController;
import magic.translate.MText;
@SuppressWarnings("serial")
public class UpgradeJavaAlertButton extends AlertButton {
private static final String JRE_VERSION = System.getProperty("java.version");
// translatable strings
private static final String _S1 = "Close";
private static final String _S2 = "Please upgrade Java to version 1.8 or greater.";
private static final String _S3 = "This is the last version of Magarena that will work with Java %s.";
private static final String _S4 = "Sorry for the inconvenience.";
private static final String _S5 = "Java upgrade required!";
@Override
protected AbstractAction getAlertAction() {
return new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
String[] buttons = {MText.get(_S1)};
int rc = JOptionPane.showOptionDialog(ScreenController.getFrame(),
String.format("<html>%s<br><br>%s<br><br>%s</html>",
MText.get(_S2),
MText.get(_S3, JRE_VERSION),
MText.get(_S4)
),
MText.get(_S5),
0,
JOptionPane.WARNING_MESSAGE,
null,
buttons, buttons[0]);
if (rc == 0) {
setVisible(false);
}
}
};
}
@Override
protected String getAlertCaption() {
assert !SwingUtilities.isEventDispatchThread();
if (NewVersionJsonParser.versionCompare(JRE_VERSION, "1.8") < 0) {
return MText.get(_S5);
} else {
return "";
}
}
}