diff options
author | Simon Rettberg | 2015-08-13 18:18:12 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-13 18:18:12 +0200 |
commit | d4c2981bee1e826d0a0ab49340433988018f66e0 (patch) | |
tree | 71393ac15ceaee72691b0346d9c33a0639ec9243 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java | |
parent | [server] Set updaterid and updatetime when changing owner of image (diff) | |
download | tutor-module-d4c2981bee1e826d0a0ab49340433988018f66e0.tar.gz tutor-module-d4c2981bee1e826d0a0ab49340433988018f66e0.tar.xz tutor-module-d4c2981bee1e826d0a0ab49340433988018f66e0.zip |
[client] More layout tweaks, cleanups, GridManager usage
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java | 65 |
1 files changed, 41 insertions, 24 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 60c901b2..16359b32 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 @@ -44,6 +44,7 @@ import org.openslx.dozmod.thrift.Session; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; +import org.openslx.util.Util; import edu.kit.scc.dei.ecplean.ECPAuthenticationException; @@ -57,20 +58,20 @@ public class LoginWindow extends LoginWindowLayout { private final static Logger LOGGER = Logger.getLogger(LoginWindow.class); // TODO This has nothing to to with the layout - public static enum LOGIN_TYPE { + public static enum LoginType { ECP(0), TEST_ACCOUNT(1), DIRECT_CONNECT(2); public final int id; - private LOGIN_TYPE(final int id) { + private LoginType(final int id) { this.id = id; } } // authentication method to use for login attempts - protected LOGIN_TYPE loginType = null; + protected LoginType loginType = null; // text constants private final String NO_USERNAME = "Kein Benutzername angegeben!"; private final String NO_PASSWORD = "Kein Passwort angegeben!"; @@ -86,14 +87,13 @@ public class LoginWindow extends LoginWindowLayout { } }); // first do all listeners stuff - for (final LOGIN_TYPE type : LOGIN_TYPE.values()) { + for (final LoginType type : LoginType.values()) { loginTypes[type.id].setActionCommand(type.toString()); loginTypes[type.id].addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { - idpLabel.setVisible(type == LOGIN_TYPE.ECP); - idpCombo.setVisible(type == LOGIN_TYPE.ECP); + idpCombo.setEnabled(idpCombo.getModel().getSize() != 0 && type == LoginType.ECP); loginType = type; } } @@ -102,18 +102,22 @@ public class LoginWindow extends LoginWindowLayout { // check if we had saved an authentication method String savedAuthMethod = Config.getAuthenticationMethod(); - LOGIN_TYPE savedLoginType; + LoginType savedLoginType; try { - savedLoginType = LOGIN_TYPE.valueOf(savedAuthMethod); + savedLoginType = LoginType.valueOf(savedAuthMethod); } catch (Exception e) { // if no valid LOGIN_TYPE was saved, just enable the BWIDM button - savedLoginType = LOGIN_TYPE.ECP; + savedLoginType = LoginType.ECP; } - if (savedLoginType == LOGIN_TYPE.ECP) { + if (savedLoginType == LoginType.ECP) { // disable login button til the idp list is here loginButton.setEnabled(false); } + // While filling, disable + idpCombo.setEnabled(false); + // Not yet implemented, disable + loginTypes[LoginType.DIRECT_CONNECT.id].setEnabled(false); // enable the corresponding button loginTypes[savedLoginType.id].setSelected(true); loginType = savedLoginType; @@ -123,6 +127,7 @@ public class LoginWindow extends LoginWindowLayout { @Override public void fire() { + Util.sleep(2000); try { // Wait for proxy server init App.waitForInit(); @@ -184,6 +189,21 @@ public class LoginWindow extends LoginWindowLayout { } else { usernameField.requestFocus(); } + + idpCombo.setRenderer(new DefaultListCellRenderer() { + @Override + public Component getListCellRendererComponent(JList<?> list, Object value, int index, + boolean isSelected, boolean cellHasFocus) { + if (idpCombo.getModel().getSize() == 0) { + value = "Inizialisiere..."; + } else if (value instanceof Organization) { + value = ((Organization) value).getDisplayName(); + } + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + this.setEnabled(idpCombo.isEnabled()); + return this; + } + }); } /** @@ -200,22 +220,10 @@ public class LoginWindow extends LoginWindowLayout { } idpCombo.setModel(new DefaultComboBoxModel<Organization>(orgs.toArray(new Organization[orgs.size()]))); - idpCombo.setRenderer(new DefaultListCellRenderer() { - @Override - public Component getListCellRendererComponent(JList<?> list, Object value, int index, - boolean isSelected, boolean cellHasFocus) { - super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (value instanceof Organization) { - Organization org = (Organization) value; - setText(org.getDisplayName()); - } - return this; - } - }); // now check if we had a saved identity provider String savedOrganizationId = Config.getIdentityProvider(); idpCombo.setSelectedItem(OrganizationCache.find(savedOrganizationId)); - + idpCombo.setEnabled(idpCombo.getModel().getSize() != 0 && loginType == LoginType.ECP); } /** @@ -389,13 +397,22 @@ public class LoginWindow extends LoginWindowLayout { MessageType.ERROR, LOGGER, e); } + @SuppressWarnings("deprecation") + @Override + public void show() { + if (!isVisible()) { + pack(); + MainWindow.centerShell(this); + } + super.show(); + } + /** * Opens the login window */ public static void open(Frame modalParent) { LoginWindow win = new LoginWindow(modalParent); - MainWindow.centerShell(win); win.setVisible(true); } } |