summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-09-15 15:26:09 +0200
committerStephan Schwaer2015-09-15 15:26:09 +0200
commitd431d34a8f23edebdde097a519732cef1ac1ee02 (patch)
tree6d8b612bac52a0c6f26dc83f2cf13d9217037cb7 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java
parent[client] Put real update url in place (diff)
downloadtutor-module-d431d34a8f23edebdde097a519732cef1ac1ee02.tar.gz
tutor-module-d431d34a8f23edebdde097a519732cef1ac1ee02.tar.xz
tutor-module-d431d34a8f23edebdde097a519732cef1ac1ee02.zip
[client] Shift key for forcing satellite selection now works.
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.java26
1 files changed, 24 insertions, 2 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 0dfae7cf..1874a7b6 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
@@ -1,6 +1,8 @@
package org.openslx.dozmod.gui.window;
import java.awt.Frame;
+import java.awt.KeyEventDispatcher;
+import java.awt.KeyboardFocusManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
@@ -20,7 +22,6 @@ import javax.swing.SwingUtilities;
import org.apache.log4j.Logger;
import org.apache.thrift.TBaseHelper;
import org.apache.thrift.TException;
-import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Organization;
import org.openslx.bwlp.thrift.iface.Satellite;
import org.openslx.dozmod.App;
@@ -41,7 +42,6 @@ import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.Sorters;
import org.openslx.dozmod.thrift.ThriftActions;
import org.openslx.dozmod.thrift.ThriftError;
-import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.thrift.cache.OrganizationCache;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
@@ -74,6 +74,23 @@ public class LoginWindow extends LoginWindowLayout {
// text constants
private final String NO_USERNAME = "Kein Benutzername angegeben!";
private final String NO_PASSWORD = "Kein Passwort angegeben!";
+
+ public static boolean forceCustomSatellite;
+ private final KeyEventDispatcher satelliteShiftDispatcher = new KeyEventDispatcher() {
+ @Override
+ public boolean dispatchKeyEvent(KeyEvent event) {
+ int type = event.getID();
+ int code = event.getKeyCode();
+ if (code == KeyEvent.VK_SHIFT) { // shift key is pressed
+ if (type == KeyEvent.KEY_PRESSED) {
+ forceCustomSatellite = true;
+ } else if ( type == KeyEvent.KEY_RELEASED)
+ forceCustomSatellite = false;
+ event.consume();
+ }
+ return event.isConsumed();
+ }
+ };
public LoginWindow(Frame modalParent) {
// call the constructor of the superclass
@@ -154,6 +171,8 @@ public class LoginWindow extends LoginWindowLayout {
}
});
+ KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(satelliteShiftDispatcher);
+
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@@ -372,6 +391,9 @@ public class LoginWindow extends LoginWindowLayout {
Config.saveCurrentSession(Session.getSatelliteAddress(), Session.getSatelliteToken(),
Session.getMasterToken());
}
+ // Remove the listener for the shift key. (For forcing the satellite selection)
+ KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(satelliteShiftDispatcher);
+
dispose();
return;
}