summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2016-05-19 16:36:15 +0200
committerJonathan Bauer2016-05-19 16:36:15 +0200
commite3f6965aedd54eca2af3dd99d254c5e9b5c35465 (patch)
tree5db99c80a858666f1906d60d7244c541ac51fa8c
parent[client] add search field to the ImagePublishedWindow (diff)
downloadtutor-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
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java7
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java3
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java20
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageDetailsActions.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageLocalDetailsActions.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImagePublishedDetailsActions.java5
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java7
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