diff options
| author | Jonathan Bauer | 2016-05-19 16:36:15 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2016-05-19 16:36:15 +0200 |
| commit | e3f6965aedd54eca2af3dd99d254c5e9b5c35465 (patch) | |
| tree | 5db99c80a858666f1906d60d7244c541ac51fa8c | |
| parent | [client] add search field to the ImagePublishedWindow (diff) | |
| download | tutor-module-e3f6965aedd54eca2af3dd99d254c5e9b5c35465.tar.gz tutor-module-e3f6965aedd54eca2af3dd99d254c5e9b5c35465.tar.xz tutor-module-e3f6965aedd54eca2af3dd99d254c5e9b5c35465.zip | |
[client] published image button states
* always show "public images" button
* hide the "upload to master" button instead of disabling it if the sat doesnt support it
* introduced Session.isImagePublishSupported instead of multiple satApiVersion checks
* added SelectionListener for ImagePublishedWindow to en/disable download buttons on selection change
7 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 892ba65f..66b6a3c5 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 @@ -342,6 +342,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe txtVersion.setEditable(false); txtId.setEditable(false); chkIsTemplate.setEnabled(Session.isSuperUser()); + btnUploadToMaster.setVisible(actionHandler.isImagePublishSupported()); makeEditable(false); // TODO finish ShareMode in server cboShareMode.setEnabled(false); @@ -383,9 +384,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } }; -// ThriftActions.getImageFullDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback); actionHandler.getImageDetails(imageBaseId, callback); - //ThriftActions.getImageFullDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback); } /** @@ -425,7 +424,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ private void uploadToMaster() { // let the user confirm or abort - // TODO bettar text if (!Gui.showMessageBox("Wollen Sie diese VM wirklich landesweit veröffentlichen?", MessageType.QUESTION_YESNO, LOGGER, null)) return; // start upload to masterserver @@ -729,7 +727,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnPermissions.setEnabled(editable && ImagePerms.canAdmin(image)); btnChangeOwner.setEnabled(editable && ImagePerms.canAdmin(image)); btnUpdateImage.setEnabled(editable); - btnUploadToMaster.setEnabled(editable && actionHandler.canPublish()); + if (actionHandler.isImagePublishSupported()) + btnUploadToMaster.setEnabled(editable); } /** 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 fed5c1ab..21cb927e 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 @@ -32,7 +32,6 @@ import org.openslx.dozmod.gui.wizard.ImageCreationWizard; import org.openslx.dozmod.gui.wizard.LectureWizard; import org.openslx.dozmod.permissions.ImagePerms; import org.openslx.dozmod.thrift.ImageLocalDetailsActions; -import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftActions; import org.openslx.dozmod.thrift.ThriftActions.DeleteCallback; import org.openslx.dozmod.thrift.ThriftActions.DownloadCallback; @@ -277,6 +276,7 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa popupItemNewLecture.setEnabled(link); popupItemDelete.setEnabled(delete); btnEditDetails.setEnabled(selCount == 1); + btnShowPublishedImages.setEnabled(true); } public void refresh(boolean force) { @@ -416,7 +416,6 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa public void requestShow() { // we need to enable the "Show published images" button here, since we need to check // Session.getSatApiVersion() which is not set when this class is instantiated - btnShowPublishedImages.setEnabled(Session.getSatApiVersion() >= 3); ctlImageListViewer.refreshList(false, 1); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java index b682b081..16ee99cb 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java @@ -18,6 +18,8 @@ import javax.swing.JOptionPane; import javax.swing.RowFilter; import javax.swing.SwingUtilities; import javax.swing.UIManager; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import org.apache.log4j.Logger; import org.apache.thrift.TException; @@ -151,6 +153,15 @@ public class ImagePublishedWindow extends ImagePublishedWindowLayout implements } }); + imagePublishedTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + ImageSummaryRead item = imagePublishedTable + .getSelectedItem(); + updateAvailableOptions(item); + } + }); + imagePublishedTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -187,9 +198,18 @@ public class ImagePublishedWindow extends ImagePublishedWindowLayout implements } }); + // init buttons state + btnSatDownload.setVisible(Session.isImagePublishSupported()); + updateAvailableOptions(null); + // init data refreshList(true, 0); } + private void updateAvailableOptions(ImageSummaryRead item) { + btnDownload.setEnabled(item != null); + if (Session.isImagePublishSupported()) + btnSatDownload.setEnabled(item != null); + } /** * Called when a change occurs in the filter search field */ diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageDetailsActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageDetailsActions.java index 71615723..a2183b23 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageDetailsActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageDetailsActions.java @@ -19,5 +19,5 @@ public interface ImageDetailsActions { public void updateImageBase(final String imageBaseId, final ImageBaseWrite data) throws TException, TAuthorizationException, TNotFoundException, TInvocationException; public void writeImagePermissions(final String imageBaseId, Map<String, ImagePermissions> customPermissions) throws TException, TAuthorizationException, TNotFoundException, TInvocationException; public void deleteImageVersion(final ImageVersionDetails version, final DeleteCallback callback); - public boolean canPublish(); + public boolean isImagePublishSupported(); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageLocalDetailsActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageLocalDetailsActions.java index 64ee8d25..a1662fbd 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageLocalDetailsActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageLocalDetailsActions.java @@ -87,10 +87,10 @@ public class ImageLocalDetailsActions implements ImageDetailsActions { } @Override - public boolean canPublish() { + public boolean isImagePublishSupported() { // check that the API of the satellite server is at least 3 // (anything > 3 supports publications of images) - return Session.getSatApiVersion() >= 3; + return Session.isImagePublishSupported(); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImagePublishedDetailsActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImagePublishedDetailsActions.java index 81d8332c..9cdda519 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImagePublishedDetailsActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImagePublishedDetailsActions.java @@ -3,7 +3,6 @@ package org.openslx.dozmod.thrift; import java.awt.Frame; import java.util.Map; -import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageBaseWrite; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; @@ -17,8 +16,6 @@ import org.openslx.util.QuickTimer.Task; public class ImagePublishedDetailsActions implements ImageDetailsActions { - private final static Logger LOGGER = Logger.getLogger(ImagePublishedDetailsActions.class); - public ImagePublishedDetailsActions(final Frame parent) { } @@ -66,7 +63,7 @@ public class ImagePublishedDetailsActions implements ImageDetailsActions { } @Override - public boolean canPublish() { + public boolean isImagePublishSupported() { return false; } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java index c5170681..f8c97151 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java @@ -134,6 +134,13 @@ public class Session { } /** + * @return true if the satellite's API version supports publications of images, false otherwise + */ + public static boolean isImagePublishSupported() { + return satelliteApiVersion >= 3; + } + + /** * Query the satellite server for its configuration and default values. * * @return |
