summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-13 18:18:12 +0200
committerSimon Rettberg2015-08-13 18:18:12 +0200
commitd4c2981bee1e826d0a0ab49340433988018f66e0 (patch)
tree71393ac15ceaee72691b0346d9c33a0639ec9243 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java
parent[server] Set updaterid and updatetime when changing owner of image (diff)
downloadtutor-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.java65
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);
}
}