summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-18 18:33:24 +0200
committerJonathan Bauer2015-08-18 18:33:24 +0200
commitf40cb01fadd0125e77fd6230423aeceaeb7ec203 (patch)
tree9f479bd114f60621e073f1d04e7496d4b9cb8b23 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] remove unused imports (diff)
downloadtutor-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.java48
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