diff options
author | Jonathan Bauer | 2015-08-26 17:37:30 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-26 17:37:30 +0200 |
commit | 0b3fb1190e81abc91639993ae55e6b81105323e8 (patch) | |
tree | 1e342bf42199f3a09393bda9ebcb1a0d310b5d09 /dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | |
parent | [client] only check if selected image is valid (diff) | |
download | tutor-module-0b3fb1190e81abc91639993ae55e6b81105323e8.tar.gz tutor-module-0b3fb1190e81abc91639993ae55e6b81105323e8.tar.xz tutor-module-0b3fb1190e81abc91639993ae55e6b81105323e8.zip |
[client] reworked ThriftActions.deleteImageBase and deleteImageVersion
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | 82 |
1 files changed, 44 insertions, 38 deletions
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 efe2e381..e8681c6e 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java @@ -24,6 +24,8 @@ import org.openslx.bwlp.thrift.iface.LectureRead; import org.openslx.bwlp.thrift.iface.LectureSummary; import org.openslx.bwlp.thrift.iface.LectureWrite; import org.openslx.bwlp.thrift.iface.TAuthorizationException; +import org.openslx.bwlp.thrift.iface.TInternalServerError; +import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.bwlp.thrift.iface.TransferInformation; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.Config; @@ -481,7 +483,7 @@ public class ThriftActions { */ void isDeleted(boolean success); } - public static void deleteBaseImage(final Frame frame, final String imageBaseId, final DeleteCallback callback) { + public static void deleteImageBase(final Frame frame, final String imageBaseId, final DeleteCallback callback) { if (imageBaseId == null || imageBaseId.isEmpty()) return; // first look if we have versions @@ -500,7 +502,7 @@ public class ThriftActions { ThriftError.showMessage(frame, LOGGER, e, "Fehler"); return; } - String questionText = "Ausgewähltes Image hat folgende Veranstaltungen:\n"; + String questionText = "Dieses Image ist verknüpft zu folgende Veranstaltungen:\n"; if (details != null && lecturesToBeDeleted != null) { for (LectureSummary lecture : lecturesToBeDeleted) { questionText += lecture.getLectureName() + "\n"; @@ -534,47 +536,49 @@ public class ThriftActions { * @param imageVersionId id of the image version to be deleted * @param callback called to inform the GUI about the deletion status (see DeleteCallback interface) */ - public static void deleteImageBaseOrVersion(final Frame frame, final String imageBaseId, - final String imageVersionId, final DeleteCallback callback) { - String questionText; - if (imageBaseId == null) { + public static void deleteImageVersion(final Frame frame, final String imageVersionId, + final DeleteCallback callback) { + // TODO async? + if (imageVersionId == null || imageVersionId.isEmpty()) return; - } else { - questionText = imageVersionId == null ? - "Wollen Sie dieses Image wirklich löschen?" : "Wollen Sie diese Image-Version wirklich löschen?"; + boolean success = false; + List<LectureSummary> lectureList = null; + try { + // fetch lectures + lectureList = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), 100); + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Holen der Liste der Veranstaltungen"); + if (callback != null) + callback.isDeleted(success); + return; + } + String questionText = "Diese Version ist verknüpft zu folgende Veranstaltungen:\n"; + if (lectureList != null) { + for (LectureSummary lecture : lectureList) { + if (lecture.getImageVersionId().equals(imageVersionId)) { + questionText += lecture.getLectureName() + "\n"; + } + } } + questionText += "\nWollen Sie diese Version samt Veranstaltungen löschen?\n"; if (!userConfirmed(frame, questionText)) return; - - // perform the deletion - QuickTimer.scheduleOnce(new Task() { - boolean success = false; + try { + ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), imageVersionId); + LOGGER.info("Deleted version '" + imageVersionId + "'."); + success = true; + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Löschen der Version"); + if (callback != null) + callback.isDeleted(success); + return; + } + final boolean fSuccess = success; + Gui.asyncExec(new Runnable() { @Override - public void fire() { - try { - if (imageVersionId == null) { - // deleting an image base - ThriftManager.getSatClient().deleteImageBase(Session.getSatelliteToken(), imageBaseId); - LOGGER.info("Deleted image with id '" + imageBaseId + "'"); - } else { - // deleting an image version - ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), imageVersionId); - LOGGER.info("Deleted version '" + imageVersionId + "' of image '" + imageBaseId + "'."); - } - success = true; - } catch (TException e) { - ThriftError.showMessage(frame, LOGGER, e, "Löschen fehlgeschlagen"); - if (callback != null) - callback.isDeleted(success); - return; - } - Gui.asyncExec(new Runnable() { - @Override - public void run() { - if (callback != null) - callback.isDeleted(success); - } - }); + public void run() { + if (callback != null) + callback.isDeleted(fSuccess); } }); } @@ -748,6 +752,8 @@ public class ThriftActions { void deleted(boolean success); } public static void deleteLecture(final Frame frame, final String lectureId, final DeleteLectureCallback callback) { + if (lectureId == null) + return; QuickTimer.scheduleOnce(new Task() { boolean success = false; @Override |