summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-07 19:00:14 +0200
committerSimon Rettberg2015-08-07 19:00:14 +0200
commitf688a4a1f888030155b20331c83e36d5c4958bf3 (patch)
treed8b7785fd205a7d4f081c881cce004e63359e7c5 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
parent[client] More work in ImageDetailsWindow (diff)
downloadtutor-module-f688a4a1f888030155b20331c83e36d5c4958bf3.tar.gz
tutor-module-f688a4a1f888030155b20331c83e36d5c4958bf3.tar.xz
tutor-module-f688a4a1f888030155b20331c83e36d5c4958bf3.zip
[client] Add UiFeedback interface for top level windows
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index 295cf413..600f6a1e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -34,6 +34,7 @@ import org.openslx.dozmod.gui.activity.UploadPanel;
import org.openslx.dozmod.gui.helper.CompositePage;
import org.openslx.dozmod.gui.helper.DebugWindow;
import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.window.DisclaimerWindow;
import org.openslx.dozmod.gui.window.ImageListWindow;
import org.openslx.dozmod.gui.window.LectureListWindow;
@@ -170,12 +171,20 @@ public abstract class MainWindow {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getKeyChar() == 17) { // Ctrl-Q = Quit
- if (!isQuitQuestionOpen) {
+ int type = event.getID();
+ int code = event.getKeyChar();
+ if (code == 17) { // Ctrl-Q = Quit
+ if (type == KeyEvent.KEY_RELEASED && !isQuitQuestionOpen) {
isQuitQuestionOpen = true;
askApplicationQuit();
}
event.consume();
+ } else if (code == 27 && type == KeyEvent.KEY_PRESSED) {
+ Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
+ if (window instanceof UiFeedback) {
+ ((UiFeedback) window).escapePressed();
+ event.consume();
+ }
}
return event.isConsumed();
}
@@ -248,6 +257,12 @@ public abstract class MainWindow {
break;
}
}
+ if (!open) {
+ Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
+ if (window instanceof UiFeedback) {
+ open = ((UiFeedback) window).wantConfirmQuit();
+ }
+ }
if (!open
|| Gui.showMessageBox(mainWindow, "Are you sure you want to quit?",
MessageType.QUESTION_YESNO, null, null)) {