summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-22 00:20:53 +0200
committerJonathan Bauer2015-08-22 00:20:53 +0200
commit037febb4a0f43a7a09ed9b5dab31ec1f60224356 (patch)
treed3556381b2e64e88cba9f37394d9597a43db467d /dozentenmodul/src/main/java
parent[client] fix LectureDetailsWindow (diff)
downloadtutor-module-037febb4a0f43a7a09ed9b5dab31ec1f60224356.tar.gz
tutor-module-037febb4a0f43a7a09ed9b5dab31ec1f60224356.tar.xz
tutor-module-037febb4a0f43a7a09ed9b5dab31ec1f60224356.zip
[client] synced image details fetching
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java46
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java51
3 files changed, 58 insertions, 43 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index 43b3eabb..d9182b30 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -217,33 +217,29 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* @param imageBaseId the id of the image to be displayed
*/
public void setImage(final String imageBaseId) {
- synchronized (me) {
- if (image != null)
- return;
- // Just prime the cache...
- MetaDataCache.getOperatingSystems();
- MetaDataCache.getVirtualizers();
- final ImageMetaCallback callback = new ImageMetaCallback() {
- @Override
- public void fetchedImageDetails(ImageDetailsRead details) {
- LOGGER.debug("detail cb: " + details);
- if (details != null) {
- image = details;
- ThriftActions.getImagePermissions(JOptionPane.getFrameForComponent(me), imageBaseId, this);
- }
+ // Just prime the cache...
+ MetaDataCache.getOperatingSystems();
+ MetaDataCache.getVirtualizers();
+ final ImageMetaCallback callback = new ImageMetaCallback() {
+ @Override
+ public void fetchedImageDetails(ImageDetailsRead imageDetails,
+ Map<String, ImagePermissions> permissions) {
+ if (imageDetails == null) {
+ return;
}
- @Override
- public void fetchedImagePermissions(Map<String, ImagePermissions> permissions) {
- LOGGER.debug("perms cb: " + permissions);
- if (permissions != null) {
- permissionMap = permissions;
- if (image != null)
- fill();
- }
+ if (permissions == null) {
+ // TODO
}
- };
- ThriftActions.getImageDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback);
- }
+
+ synchronized(me) {
+ image = imageDetails;
+ permissionMap = permissions;
+
+ }
+ fill();
+ }
+ };
+ ThriftActions.getImageDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback);
}
/**
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 9a777b7f..eb922e99 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
@@ -113,9 +113,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
* @param lectureId the id of the lecture to be displayed
*/
public void setLecture(final String lectureId) {
- final Frame parentFrame = JOptionPane.getFrameForComponent(me);
-
- ThriftActions.getLectureWithImageDetails(parentFrame, lectureId, new LectureMetaCallback() {
+ ThriftActions.getLectureWithImageDetails(JOptionPane.getFrameForComponent(me), lectureId, new LectureMetaCallback() {
@Override
public void fetchedLectureDetails(LectureRead lectureDetails, ImageDetailsRead imageDetails) {
synchronized (me) {
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 b6f86003..9e2c5f09 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -356,8 +356,7 @@ public class ThriftActions {
* TODO
*/
public interface ImageMetaCallback {
- void fetchedImageDetails(ImageDetailsRead details);
- void fetchedImagePermissions(Map<String, ImagePermissions> permissions);
+ void fetchedImageDetails(ImageDetailsRead details, Map<String, ImagePermissions> permissions);
}
public static ImageDetailsRead getImageDetails(final Frame frame, final String imageBaseId) {
@@ -385,7 +384,27 @@ public class ThriftActions {
@Override
public void run() {
if (callback != null) {
- callback.fetchedImageDetails(details);
+ callback.fetchedImageDetails(details, null);
+ }
+ }
+ });
+ }
+ });
+ }
+ public static void getImageFullDetails(final Frame frame, final String imageBaseId, final ImageMetaCallback callback) {
+ QuickTimer.scheduleOnce(new Task() {
+ ImageDetailsRead details = null;
+ Map<String, ImagePermissions> permissions = null;
+ @Override
+ public void fire() {
+ // sync calls
+ details = ThriftActions.getImageDetails(frame, imageBaseId);
+ permissions = ThriftActions.getImagePermissions(frame, imageBaseId);
+ Gui.asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ if (callback != null) {
+ callback.fetchedImageDetails(details, permissions);
}
}
});
@@ -397,27 +416,29 @@ public class ThriftActions {
* @param imageBaseId
* @param callback
*/
+
+ // sync
+ public static Map<String, ImagePermissions> getImagePermissions(final Frame frame, final String imageBaseId) {
+ Map<String, ImagePermissions> permissionMap = null;
+ try {
+ permissionMap = ThriftManager.getSatClient().getImagePermissions(Session.getSatelliteToken(), imageBaseId);
+ } catch (TException e) {
+ ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Lesen der Metadaten");
+ }
+ return permissionMap;
+ }
+ // async
public static void getImagePermissions(final Frame frame, final String imageBaseId, final ImageMetaCallback callback) {
QuickTimer.scheduleOnce(new Task() {
Map<String, ImagePermissions> permissionMap = null;
@Override
public void fire() {
- try {
- permissionMap = ThriftManager.getSatClient().getImagePermissions(Session.getSatelliteToken(), imageBaseId);
- LOGGER.debug("Received: " + permissionMap);
- if (permissionMap == null)
- LOGGER.debug("And NULL");
- } catch (TException e) {
- ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Lesen der Metadaten");
- if (callback != null)
- callback.fetchedImagePermissions(null);
- return;
- }
+ permissionMap = ThriftActions.getImagePermissions(frame, imageBaseId);
Gui.asyncExec(new Runnable() {
@Override
public void run() {
if (callback != null) {
- callback.fetchedImagePermissions(permissionMap);
+ callback.fetchedImageDetails(null, permissionMap);
}
}
});