diff options
author | Jonathan Bauer | 2015-08-31 15:50:20 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-31 15:50:20 +0200 |
commit | 96ca02d2a2a3976fa25414700bb1f0158b218c39 (patch) | |
tree | 40a5ab984ca4cf3f003e5663d086affd8fb1861d /dozentenmodul | |
parent | [client] ask user confirmation before deleting a lecture in LectureListWindow (diff) | |
download | tutor-module-96ca02d2a2a3976fa25414700bb1f0158b218c39.tar.gz tutor-module-96ca02d2a2a3976fa25414700bb1f0158b218c39.tar.xz tutor-module-96ca02d2a2a3976fa25414700bb1f0158b218c39.zip |
[client] slightly improved user info message when deleting a basis image in ImageListWindow
Diffstat (limited to 'dozentenmodul')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | 75 |
1 files changed, 53 insertions, 22 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 36dce613..cc86de07 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java @@ -657,42 +657,63 @@ public class ThriftActions { return; // first look if we have versions ImageDetailsRead details = null; - List<LectureSummary> lecturesToBeDeleted = new ArrayList<>(); + // these help construct the question text for the user, bit ugly... + List<LectureSummary> lecturesToBeDeleted = null; + List<ImageVersionDetails> versionToBeDeleted = null; 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)) { + if (lecturesToBeDeleted == null) + lecturesToBeDeleted = new ArrayList<LectureSummary>(); lecturesToBeDeleted.add(lecture); } } + for (ImageVersionDetails version : details.getVersions()) { + if (version.isValid) { + if (versionToBeDeleted == null) + versionToBeDeleted = new ArrayList<ImageVersionDetails>(); + versionToBeDeleted.add(version); + } + } } catch (TException e) { - ThriftError.showMessage(frame, LOGGER, e, "Fehler"); + ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Holen der Versionen/Veranstaltung zu folgendes Image: " + imageBaseId); return; } - String questionText = "Dieses Image ist verknüpft zu 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()) { - if (!version.isValid) - continue; + String questionText = ""; + if (versionToBeDeleted != null) { + questionText = "Dieses Image hat folgende gültige Versionen:\n"; + for (ImageVersionDetails version : versionToBeDeleted) { questionText += version.getVersionId() + "\n"; } - questionText += "\nWollen Sie diese Image samt Veranstaltungen und Versionen löschen?\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!"); + } else { + questionText = "Dieses Image hat keine gültige Version.\n"; + } + if (lecturesToBeDeleted != null) { + if (!questionText.isEmpty()) + questionText += "\n"; + questionText += "Dieses Image ist zu folgende Veranstaltungen verknüpft:\n"; + for (LectureSummary lecture : lecturesToBeDeleted) { + questionText += lecture.getLectureName() + "\n"; } + } else { + if (!questionText.isEmpty()) + questionText += "\n"; + questionText += "Dieses Image ist zu keine Veranstaltungen verknüpft.\n"; + } + questionText += "\nWollen Sie dieses Image wirklich löschen?\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!"); } + } /** @@ -727,15 +748,25 @@ public class ThriftActions { callback.isDeleted(success); return; } - String questionText = "Diese Version ist verknüpft zu folgende Veranstaltungen:\n"; - if (lectureList != null) { + String questionText = ""; + // represents if we found matches of not, needed to make a proper message + boolean matches = false; + if (lectureList != null && !lectureList.isEmpty()) { for (LectureSummary lecture : lectureList) { if (lecture.getImageVersionId().equals(imageVersionId)) { + if (!matches) + questionText = "Diese Version ist zu folgende Veranstaltungen verknüpft:\n"; + matches = true; questionText += lecture.getLectureName() + "\n"; } } + if (matches) + questionText += "\nWollen Sie diese Version samt Veranstaltungen löschen?\n"; } - questionText += "\nWollen Sie diese Version samt Veranstaltungen löschen?\n"; + if (!matches) + questionText = "Diese Version ist zu keine Veranstaltungen verknüpft.\n" + + "Wollen Sie sie wirklich löschen?"; + if (!userConfirmed(frame, questionText)) return; try { |