summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-26 17:37:30 +0200
committerJonathan Bauer2015-08-26 17:37:30 +0200
commit0b3fb1190e81abc91639993ae55e6b81105323e8 (patch)
tree1e342bf42199f3a09393bda9ebcb1a0d310b5d09 /dozentenmodul/src/main/java/org/openslx
parent[client] only check if selected image is valid (diff)
downloadtutor-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')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java6
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java82
4 files changed, 48 insertions, 44 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 419a3484..7bd6608f 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
@@ -322,10 +322,10 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* @param version image version to delete
*/
private void deleteVersion(final ImageVersionDetails version) {
- if(version == null)
+ if (version == null)
return;
- ThriftActions.deleteImageBaseOrVersion(JOptionPane.getFrameForComponent(this),
- image.getImageBaseId(), version.versionId, new DeleteCallback() {
+ ThriftActions.deleteImageVersion(JOptionPane.getFrameForComponent(this),
+ version.versionId, new DeleteCallback() {
@Override
public void isDeleted(boolean success) {
refresh(success);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
index e6a65bb8..a7fd9b27 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
@@ -291,7 +291,7 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa
* @param image image to delete
*/
private void deleteBaseImage(final ImageSummaryRead image) {
- ThriftActions.deleteBaseImage(JOptionPane.getFrameForComponent(this), image.getImageBaseId(), this);
+ ThriftActions.deleteImageBase(JOptionPane.getFrameForComponent(this), image.getImageBaseId(), this);
}
/**
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java
index ce455b5a..31395897 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java
@@ -224,8 +224,6 @@ public class LectureListWindow extends LectureListWindowLayout {
private void deleteLecture(final LectureSummary lecture) {
if (lecture == null)
return;
- if (!Gui.showMessageBox(this, "Wollen Sie diese Veranstaltung wirklich löschen?", MessageType.QUESTION_YESNO, LOGGER, null))
- return;
ThriftActions.deleteLecture(JOptionPane.getFrameForComponent(me),
lecture.getLectureId(), new DeleteLectureCallback() {
@Override
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