diff options
author | Jonathan Bauer | 2015-08-31 15:21:04 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-31 15:21:04 +0200 |
commit | d34565d0e7d67e18267252f8f4aa8beb6b6d40cb (patch) | |
tree | 7f39a16f4b5cd3fa7047f03fc7d8bf65a91aa572 /dozentenmodul | |
parent | [client] better user feedback if dates are invalid in LectureDetails (diff) | |
download | tutor-module-d34565d0e7d67e18267252f8f4aa8beb6b6d40cb.tar.gz tutor-module-d34565d0e7d67e18267252f8f4aa8beb6b6d40cb.tar.xz tutor-module-d34565d0e7d67e18267252f8f4aa8beb6b6d40cb.zip |
[client] re-enable download button in lectureDetailsWindow if user closes the filechooser
Diffstat (limited to 'dozentenmodul')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java | 19 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | 13 |
2 files changed, 30 insertions, 2 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 85f4813e..6919c3cd 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -41,6 +41,7 @@ import org.openslx.dozmod.permissions.LecturePerms; import org.openslx.dozmod.permissions.PermissionDefaultToCustomLink; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftActions; +import org.openslx.dozmod.thrift.ThriftActions.DownloadCallback; import org.openslx.dozmod.thrift.ThriftActions.LectureMetaCallback; import org.openslx.dozmod.thrift.ThriftError; import org.openslx.dozmod.thrift.cache.UserCache; @@ -343,7 +344,19 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements return; } ThriftActions.initDownload(JOptionPane.getFrameForComponent(this), lecture.imageVersionId, - image.imageName, image.virtId, versionSize, null); + image.imageName, image.virtId, versionSize, new DownloadCallback() { + @Override + public void downloadInitialized(boolean success) { + if (!success) { + Gui.asyncExec(new Runnable() { + @Override + public void run() { + btnDownloadImage.setEnabled(true); + } + }); + } + } + }); } /** @@ -391,6 +404,10 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements // success } + /** + * Sets the listeners for the fields of the details panel and call + * reactToChange() when actions occur + */ private void listenToChange() { if (reactive) return; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java index 8620fcc5..6f48c706 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java @@ -377,8 +377,11 @@ public class ThriftActions { fc.setDialogTitle("Bitte wählen Sie einen Speicherort"); int action = fc.showSaveDialog(frame); File selected = fc.getSelectedFile(); - if (action != JFileChooser.APPROVE_OPTION || selected == null) + if (action != JFileChooser.APPROVE_OPTION || selected == null) { + if (callback != null) + callback.downloadInitialized(false); return; + } final File destDir = new File(selected, generateDirname(imageName, imageVersionId)); destDir.getAbsoluteFile().mkdirs(); @@ -390,12 +393,16 @@ public class ThriftActions { LOGGER, null); if (!ret) { // user aborted + if (callback != null) + callback.downloadInitialized(false); return; } // delete it if (!diskFile.delete() && diskFile.exists()) { Gui.showMessageBox(frame, "Datei konnte nicht überschrieben werden!", MessageType.ERROR, LOGGER, null); + if (callback != null) + callback.downloadInitialized(false); return; } } @@ -406,6 +413,8 @@ public class ThriftActions { + "Brauche: " + FormatHelper.bytes(imageSize + SIZE_CHECK_EXTRA_DL, false) + "\n" + "Habe: " + FormatHelper.bytes(destDir.getUsableSpace(), false), MessageType.ERROR, LOGGER, null); + if (callback != null) + callback.downloadInitialized(false); return; } @@ -416,6 +425,8 @@ public class ThriftActions { } catch (IOException e) { Gui.showMessageBox(frame, "Kann die Datei\n" + tmpFile.getAbsolutePath() + "\nnicht erzeugen.", MessageType.ERROR, LOGGER, e); + if (callback != null) + callback.downloadInitialized(false); return; } |