diff options
author | Simon Rettberg | 2015-08-07 19:00:14 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-07 19:00:14 +0200 |
commit | f688a4a1f888030155b20331c83e36d5c4958bf3 (patch) | |
tree | d8b7785fd205a7d4f081c881cce004e63359e7c5 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java | |
parent | [client] More work in ImageDetailsWindow (diff) | |
download | tutor-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.java | 19 |
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)) { |