diff options
author | Jonathan Bauer | 2015-08-18 18:33:24 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-18 18:33:24 +0200 |
commit | f40cb01fadd0125e77fd6230423aeceaeb7ec203 (patch) | |
tree | 9f479bd114f60621e073f1d04e7496d4b9cb8b23 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | [client] remove unused imports (diff) | |
download | tutor-module-f40cb01fadd0125e77fd6230423aeceaeb7ec203.tar.gz tutor-module-f40cb01fadd0125e77fd6230423aeceaeb7ec203.tar.xz tutor-module-f40cb01fadd0125e77fd6230423aeceaeb7ec203.zip |
[client] disable popup menu items in ImageDetailsWindow if user can't actually perform these actions. Started Deletion in ImageDetailsWindow [WIP]
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 48 |
1 files changed, 35 insertions, 13 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 85204850..9156ee46 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 @@ -100,7 +100,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnSaveChanges.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - LOGGER.debug(("Speichern clicked")); saveChanges(); } }); @@ -124,25 +123,19 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ final PopupMenu pop = new PopupMenu(new ActionListener() { public void actionPerformed(ActionEvent e) { + ImageVersionDetails selected = versionTable.getSelectedItem(); + if (selected == null) + return; if (e.getSource().equals(popupItemNew)) { - LOGGER.debug("New lecture clicked"); - ImageVersionDetails selected = versionTable.getSelectedItem(); - if (selected == null) - return; ImageSummaryRead summary = new ImageSummaryRead(); summary.setImageName(image.getImageName()); // Maybe create a helper class/function some day that transforms all fields new LectureWizard(me, summary, selected.getVersionId()).setVisible(true); } if (e.getSource().equals(popupItemDownload)) { - ImageVersionDetails selected = versionTable.getSelectedItem(); - if (selected == null) - return; performImageDownload(selected); - LOGGER.debug("Download image clicked"); } if (e.getSource().equals(popupItemDelete)) { - // TODO delete that image - LOGGER.debug("Delete image clicked"); + deleteVersion(selected); } } @@ -171,6 +164,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe // highlight the row and popup the menu versionTable.setRowSelectionInterval(r, r); if (e.isPopupTrigger()) { + popupItemNew.setEnabled(ImagePerms.canLink(image)); + popupItemDownload.setEnabled(ImagePerms.canDownload(image)); + popupItemDelete.setEnabled(ImagePerms.canAdmin(image)); pop.show(e.getComponent(), e.getX(), e.getY()); } } else { @@ -306,8 +302,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * @param selected image to download */ private void performImageDownload(ImageVersionDetails selected) { - if (selected == null) - return; if (selected.getVersionId() == null) { Gui.showMessageBox(this, "Ausgewählte Version ist ungültig", MessageType.ERROR, null, null); @@ -317,6 +311,34 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe image.imageName, image.virtId, selected.fileSize, null); } + /** + * Triggers the deletion of the given image version + * + * @param version image version to delete + */ + private void deleteVersion(final ImageVersionDetails version) { + QuickTimer.scheduleOnce(new Task() { + @Override + public void fire() { + // disabled until finished + try { + ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), version.versionId); + } catch (TException e) { + ThriftError.showMessage(me, LOGGER, e, "Fehler beim Löschen der Version"); + return; + } + // no feedback, only force refresh + // TODO + Gui.asyncExec(new Runnable() { + @Override + public void run() { + // TODO: refreshList(); + } + }); + } + }); + } + /******************************************************************************** * * General UI helpers |