diff options
| author | Simon Rettberg | 2015-10-05 14:09:19 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2015-10-05 14:09:19 +0200 |
| commit | 60a8be0b0929eff63db610558181778e646981eb (patch) | |
| tree | 01ebc7983c9e5e7aacdeefb5b59e41d3f7e5b306 /dozentenmodul/src/main/java | |
| parent | Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff) | |
| download | tutor-module-60a8be0b0929eff63db610558181778e646981eb.tar.gz tutor-module-60a8be0b0929eff63db610558181778e646981eb.tar.xz tutor-module-60a8be0b0929eff63db610558181778e646981eb.zip | |
[client] Show satellite selection dialog again if connect failed but login succeeded
Diffstat (limited to 'dozentenmodul/src/main/java')
4 files changed, 51 insertions, 19 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java index fc7d6ca4..33bcdf5b 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java @@ -7,7 +7,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -131,7 +130,7 @@ public class LoginWindow extends LoginWindowLayout { if (savedLoginType == LoginType.ECP) { // disable login button til the idp list is here - loginButton.setEnabled(false); + enableLogin(false); } // While filling, disable idpCombo.setEnabled(false); @@ -166,7 +165,7 @@ public class LoginWindow extends LoginWindowLayout { @Override public void run() { populateIdpCombo(orgs); - loginButton.setEnabled(true); + enableLogin(true); } }); } @@ -348,7 +347,7 @@ public class LoginWindow extends LoginWindowLayout { Gui.showMessageBox(me, "Internal error!", MessageType.ERROR, LOGGER, null); break; } - loginButton.setEnabled(true); + enableLogin(true); } }; @@ -369,7 +368,7 @@ public class LoginWindow extends LoginWindowLayout { return; } - loginButton.setEnabled(false); + enableLogin(false); final String finalUsername = username; QuickTimer.scheduleOnce(new Task() { @Override @@ -385,7 +384,7 @@ public class LoginWindow extends LoginWindowLayout { Gui.showMessageBox(LoginWindow.this, "Anmeldung fehlgeschlagen", MessageType.ERROR, LOGGER, e); } - loginButton.setEnabled(true); + enableLogin(true); } }); } @@ -412,7 +411,16 @@ public class LoginWindow extends LoginWindowLayout { dispose(); return; } - loginButton.setEnabled(true); + enableLogin(true); + } + + private void enableLogin(boolean enable) { + loginButton.setEnabled(enable); + usernameField.setEnabled(enable); + passwordField.setEnabled(enable); + loginTypePanel.setEnabled(enable); + loginFormPanel.setEnabled(enable); + saveUsernameCheck.setEnabled(enable); } /** diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java index 566cc99e..c4e02306 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java @@ -16,14 +16,16 @@ import org.openslx.bwlp.thrift.iface.Satellite; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.Config; import org.openslx.dozmod.gui.Gui; +import org.openslx.dozmod.gui.Gui.GuiCallable; import org.openslx.dozmod.gui.helper.MessageType; +import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.SatelliteListWindowLayout; /** * Window for selecting an available satellite or setting custom ip. */ @SuppressWarnings("serial") -public class SatelliteListWindow extends SatelliteListWindowLayout { +public class SatelliteListWindow extends SatelliteListWindowLayout implements UiFeedback { private Satellite satellite = null; @@ -31,10 +33,7 @@ public class SatelliteListWindow extends SatelliteListWindowLayout { public void userAdded(UserInfo user, SatelliteListWindow window); } - /** - * Don't use this, use the static function open instead. - */ - public SatelliteListWindow(final Window modalParent, List<Satellite> satList) { + private SatelliteListWindow(final Window modalParent, List<Satellite> satList) { super(modalParent, satList); // Prepare doubleclick listener MouseListener radioDoubleClick = new MouseAdapter() { @@ -88,6 +87,13 @@ public class SatelliteListWindow extends SatelliteListWindowLayout { } radioCustomIp.addActionListener(listener); + // Cancel button + cancelButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); // Continue button nextButton.addActionListener(new ActionListener() { @Override @@ -142,8 +148,23 @@ public class SatelliteListWindow extends SatelliteListWindowLayout { * @param satList The list of satellites to display. * @return satellite with address to use, or null on error/cancel */ - public static Satellite open(Window modalParent, List<Satellite> satList) { - return new SatelliteListWindow(modalParent, satList).runAndReturn(); + public static Satellite open(final Window modalParent, final List<Satellite> satList) { + return Gui.syncExec(new GuiCallable<Satellite>() { + @Override + public Satellite run() { + return new SatelliteListWindow(modalParent, satList).runAndReturn(); + } + }); + } + + @Override + public boolean wantConfirmQuit() { + return false; + } + + @Override + public void escapePressed() { + dispose(); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java index aec1a844..fd5d71ad 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java @@ -59,6 +59,7 @@ public abstract class LoginWindowLayout extends JDialog { protected final JPasswordField passwordField; protected final JCheckBox saveUsernameCheck; protected final JButton loginButton; + protected final JPanel loginTypePanel; protected final JPanel loginFormPanel; /** @@ -98,7 +99,8 @@ public abstract class LoginWindowLayout extends JDialog { loginButton = new JButton("Login"); saveUsernameCheck = new JCheckBox("Benutzername speichern"); - grid.add(makeLoginTypePanel()).expand(0.25, 1).fill(true, true); + loginTypePanel = makeLoginTypePanel(); + grid.add(loginTypePanel).expand(0.25, 1).fill(true, true); loginFormPanel = makeLoginFormPanel(); grid.add(loginFormPanel).expand(0.75, 1).fill(true, true); grid.nextRow(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/SatelliteListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/SatelliteListWindowLayout.java index 399a9241..dd71352f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/SatelliteListWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/SatelliteListWindowLayout.java @@ -1,7 +1,6 @@ package org.openslx.dozmod.gui.window.layout; import java.awt.BorderLayout; -import java.awt.Dimension; import java.awt.Window; import java.util.HashMap; import java.util.List; @@ -23,6 +22,7 @@ import org.openslx.dozmod.gui.helper.GridManager; @SuppressWarnings("serial") public class SatelliteListWindowLayout extends JDialog { + protected final JButton cancelButton; protected final JButton nextButton; protected final JTextField customIpField; protected final JRadioButton radioCustomIp; @@ -34,7 +34,7 @@ public class SatelliteListWindowLayout extends JDialog { super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); JPanel radioPanel = new JPanel(); - radioPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + radioPanel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); GridManager selectionPanelGrid = new GridManager(radioPanel, 2); ButtonGroup btnGroup = new ButtonGroup(); @@ -69,9 +69,10 @@ public class SatelliteListWindowLayout extends JDialog { // --------------- button panel -------------------------------------- JPanel buttonPane = new JPanel(); buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); - buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); + buttonPane.setBorder(BorderFactory.createEmptyBorder(1, 3, 3, 3)); + cancelButton = new JButton("Abbrechen"); + buttonPane.add(cancelButton); buttonPane.add(Box.createHorizontalGlue()); - buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); nextButton = new JButton("Weiter"); buttonPane.add(nextButton); // --------------- end button panel ---------------------------------- |
