diff options
author | Jonathan Bauer | 2015-08-25 18:12:22 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-25 18:12:22 +0200 |
commit | 0de80c6c89b36441778d39a2c32dcf0ce514d99f (patch) | |
tree | 697f4a5855d842c947af8af2976eeb64f61de288 /dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | |
parent | [client] fix description label beeing sucky (diff) | |
download | tutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.tar.gz tutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.tar.xz tutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.zip |
[client] reworked image base deletion from ImageListWindow
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 | 39 |
1 files changed, 39 insertions, 0 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 192f8138..d12b7155 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java @@ -6,6 +6,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -16,9 +17,11 @@ import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.ImageBaseWrite; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; +import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.bwlp.thrift.iface.ImageVersionWrite; import org.openslx.bwlp.thrift.iface.LecturePermissions; 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.TransferInformation; @@ -478,6 +481,42 @@ public class ThriftActions { */ void isDeleted(boolean success); } + public static void deleteBaseImage(final Frame frame, final String imageBaseId, final DeleteCallback callback) { + // first look if we have versions + ImageDetailsRead details = null; + List<LectureSummary> lecturesToBeDeleted = new ArrayList<>(); + try { + details = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), imageBaseId); + List<LectureSummary> lectureList = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), 100); + for (LectureSummary lecture : lectureList) { + if (lecture.getImageBaseId().equals(imageBaseId)) { + lecturesToBeDeleted.add(lecture); + } + } + + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Fehler"); + return; + } + String questionText = "Ausgewähltes Image hat folgende Veranstaltungen:\n"; + if (details != null && lecturesToBeDeleted != null) { + for (LectureSummary lecture : lecturesToBeDeleted) { + questionText += lecture.getLectureName() + "\n"; + } + questionText += "\nUnd folgende Versionen:\n"; + for (ImageVersionDetails version : details.getVersions()) { + questionText += version.getVersionId() + "\n"; + } + if (!userConfirmed(frame, questionText)) + return; + try { + ThriftManager.getSatClient().deleteImageBase(Session.getSatelliteToken(), imageBaseId); + } catch (TException e) { + // TODO Auto-generated catch block + ThriftError.showMessage(frame, LOGGER, e, "Konnte Basis-Image nicht löschen!"); + } + } + } /** * NON-BLOCKING * Deletes either an image base or an image version depending on the parameters. |