From 96ca02d2a2a3976fa25414700bb1f0158b218c39 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 31 Aug 2015 15:50:20 +0200 Subject: [client] slightly improved user info message when deleting a basis image in ImageListWindow --- .../org/openslx/dozmod/thrift/ThriftActions.java | 75 +++++++++++++++------- 1 file changed, 53 insertions(+), 22 deletions(-) (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java') 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 lecturesToBeDeleted = new ArrayList<>(); + // these help construct the question text for the user, bit ugly... + List lecturesToBeDeleted = null; + List versionToBeDeleted = null; try { details = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), imageBaseId); List lectureList = ThriftManager.getSatClient().getLectureList( Session.getSatelliteToken(), 100); for (LectureSummary lecture : lectureList) { if (lecture.getImageBaseId().equals(imageBaseId)) { + if (lecturesToBeDeleted == null) + lecturesToBeDeleted = new ArrayList(); lecturesToBeDeleted.add(lecture); } } + for (ImageVersionDetails version : details.getVersions()) { + if (version.isValid) { + if (versionToBeDeleted == null) + versionToBeDeleted = new ArrayList(); + 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 { -- cgit v1.2.3-55-g7522