diff options
| author | Jonathan Bauer | 2015-08-04 14:32:52 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2015-08-04 14:32:52 +0200 |
| commit | a8f1de946dd128cd11f0e7e2311aca0d602f3a59 (patch) | |
| tree | 5000fbe2ebc24c0a0af7f961eaac51fdced8ba91 | |
| parent | [client] improved table boolean object support (for checkboxes) (diff) | |
| download | tutor-module-a8f1de946dd128cd11f0e7e2311aca0d602f3a59.tar.gz tutor-module-a8f1de946dd128cd11f0e7e2311aca0d602f3a59.tar.xz tutor-module-a8f1de946dd128cd11f0e7e2311aca0d602f3a59.zip | |
[client] image deletion with user feedback
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java | 49 |
1 files changed, 42 insertions, 7 deletions
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 410eb5c5..5ce4551a 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 @@ -6,21 +6,28 @@ import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; -import java.util.regex.PatternSyntaxException; import javax.swing.JFrame; import javax.swing.RowFilter; import javax.swing.SwingUtilities; +import javax.swing.UIManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import org.apache.log4j.Logger; +import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; +import org.openslx.bwlp.thrift.iface.TAuthorizationException; +import org.openslx.bwlp.thrift.iface.TInternalServerError; +import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; +import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.window.layout.ImageListWindowLayout; import org.openslx.dozmod.gui.wizard.ImageWizard; import org.openslx.dozmod.thrift.ImageCache; +import org.openslx.dozmod.thrift.Session; +import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; @@ -52,9 +59,10 @@ public class ImageListWindow extends ImageListWindowLayout { // stuff try { imageTable.getRowSorter().setRowFilter(RowFilter.regexFilter("(?i)"+searchTextField.getText(), 0, 1, 2)); + searchTextField.setForeground(UIManager.getColor("TextField.foreground")); } catch (IllegalArgumentException ex) { // TODO set background color of search field to something redish - searchTextField.setBackground(Color.RED); + searchTextField.setForeground(Color.RED); } } }); @@ -64,9 +72,8 @@ public class ImageListWindow extends ImageListWindowLayout { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { - ImageSummaryRead image = imageTable.getSelectedItem(); - if (image == null) - return; + final ImageSummaryRead image = getSelectedImage(); + if (image == null) return; ImageDetailsWindow.open((JFrame)SwingUtilities.getWindowAncestor(me), image.getImageBaseId()); } } @@ -89,8 +96,26 @@ public class ImageListWindow extends ImageListWindowLayout { // delete lecture deleteButton.addActionListener(new ActionListener() { @Override - public void actionPerformed(ActionEvent e) { - // TODO delete the image + public void actionPerformed(ActionEvent ae) { + final ImageSummaryRead image = getSelectedImage(); + if (image == null) return; + // check if we have a version + if (image.isSetCurrentVersionId()) { + // try to actually delete this version of the image + try { + ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), image.getCurrentVersionId()); + LOGGER.info("Deleted version '" + image.getCurrentVersionId() + "' of image '" + image.getImageBaseId() + "'."); + refreshList(true); + } catch (TAuthorizationException e) { + Gui.showMessageBox(me, "Sie sind nicht autorisiert dieses Image zu löschen!", MessageType.ERROR, LOGGER, e); + } catch (TNotFoundException e) { + Gui.showMessageBox(me, "Diese Image existiert nicht auf dem Satelliten!", MessageType.ERROR, LOGGER, e); + } catch (TException e) { + Gui.showMessageBox(me, "Interner Fehler! Siehe Logs.", MessageType.ERROR, LOGGER, e); + } + } else { + Gui.showMessageBox(me, "Keine Version für diese Image!", MessageType.ERROR, LOGGER, null); + } } }); @@ -119,6 +144,16 @@ public class ImageListWindow extends ImageListWindowLayout { }); } + private final ImageSummaryRead getSelectedImage() { + final ImageSummaryRead image = imageTable.getSelectedItem(); + if (image == null) { + Gui.showMessageBox(this, "Kein Image ausgewählt!", MessageType.ERROR, LOGGER, null); + return null; + } else { + return image; + } + } + @Override public boolean requestHide() { return true; |
