diff options
| author | Jonathan Bauer | 2015-08-22 00:20:53 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2015-08-22 00:20:53 +0200 |
| commit | 037febb4a0f43a7a09ed9b5dab31ec1f60224356 (patch) | |
| tree | d3556381b2e64e88cba9f37394d9597a43db467d /dozentenmodul/src/main/java | |
| parent | [client] fix LectureDetailsWindow (diff) | |
| download | tutor-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')
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); } } }); |
