package NET.worlds.console; import NET.worlds.network.Galaxy; import NET.worlds.network.VarErrorException; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Event; import java.awt.Font; import java.awt.Panel; public class InternetConnectionDialog extends PolledDialog { private static final long serialVersionUID = 612016940893432560L; private String msg; private Button okButton = new Button(Console.message("Retry")); private Button cancelButton = new Button(Console.message("Single-user")); private static boolean firstTimeDone; private static boolean choseSingleUserMode; private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12); public static boolean isFirstTimeDone() { return firstTimeDone; } public static boolean choseSingleUserMode() { return choseSingleUserMode; } public InternetConnectionDialog(Galaxy galaxy, VarErrorException ve) { super(Console.getFrame(), galaxy, Console.message("Internet-Connection"), true); this.setAlignment(1); this.msg = ve.getMsg().replace('\n', ' '); this.ready(); } @Override protected boolean done(boolean confirmed) { boolean ret = super.done(confirmed); choseSingleUserMode = !confirmed; firstTimeDone = true; return ret; } @Override protected void build() { this.setLayout(new BorderLayout()); Panel txtPanel = new Panel(new BorderLayout()); txtPanel.add("Center", new TextCanvas(this.msg, 400)); txtPanel.add("North", new Filler(10, 10)); txtPanel.add("South", new Filler(10, 10)); txtPanel.add("East", new Filler(10, 10)); txtPanel.add("West", new Filler(10, 10)); this.add("Center", txtPanel); Panel buttons = new Panel(); this.okButton.setFont(bfont); this.cancelButton.setFont(bfont); buttons.add(this.okButton); buttons.add(this.cancelButton); this.add("South", buttons); } @Override public boolean action(Event event, Object what) { Object target = event.target; if (target == this.okButton) { return this.done(true); } else { return target == this.cancelButton ? this.done(false) : false; } } @Override public boolean keyDown(Event event, int key) { if (key == 27) { return this.done(false); } else { return key == 10 ? this.done(true) : super.keyDown(event, key); } } }