summaryrefslogtreecommitdiffstats
path: root/dozentenmodul
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-31 15:21:04 +0200
committerJonathan Bauer2015-08-31 15:21:04 +0200
commitd34565d0e7d67e18267252f8f4aa8beb6b6d40cb (patch)
tree7f39a16f4b5cd3fa7047f03fc7d8bf65a91aa572 /dozentenmodul
parent[client] better user feedback if dates are invalid in LectureDetails (diff)
downloadtutor-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.java19
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java13
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;
}