summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-11 17:05:42 +0200
committerSimon Rettberg2015-08-11 17:05:42 +0200
commit6168a3915d41c678062a6a3d9f351e4dd6a769c6 (patch)
tree220e995bbc1a89aae272c79215653e479d23d905 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
parent[client] Remove unused imports (diff)
downloadtutor-module-6168a3915d41c678062a6a3d9f351e4dd6a769c6.tar.gz
tutor-module-6168a3915d41c678062a6a3d9f351e4dd6a769c6.tar.xz
tutor-module-6168a3915d41c678062a6a3d9f351e4dd6a769c6.zip
[client] Fix/finish download feature (no visual feedback yet)
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java74
1 files changed, 49 insertions, 25 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 c5af467c..2c3af7ce 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
@@ -28,6 +28,7 @@ import org.openslx.bwlp.thrift.iface.ImageVersionDetails;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
import org.openslx.bwlp.thrift.iface.TNotFoundException;
import org.openslx.bwlp.thrift.iface.TransferInformation;
+import org.openslx.dozmod.Config;
import org.openslx.dozmod.filetransfer.DownloadTask;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
@@ -116,11 +117,14 @@ public class ImageListWindow extends ImageListWindowLayout {
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) {
final ImageSummaryRead image = getSelectedImage();
- if (image == null) return;
- ImageDetailsWindow.open((JFrame)SwingUtilities.getWindowAncestor(me), image.getImageBaseId());
+ if (image == null)
+ return;
+ ImageDetailsWindow.open((JFrame) SwingUtilities.getWindowAncestor(me),
+ image.getImageBaseId());
}
processClick(e);
}
+
@Override
public void mousePressed(MouseEvent e) {
processClick(e);
@@ -155,7 +159,10 @@ public class ImageListWindow extends ImageListWindowLayout {
downloadButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- performImageDownload(imageTable.getSelectedItem().latestVersionId);
+ ImageSummaryRead item = imageTable.getSelectedItem();
+ if (item == null)
+ return;
+ performImageDownload(item.latestVersionId);
}
});
@@ -164,18 +171,23 @@ public class ImageListWindow extends ImageListWindowLayout {
@Override
public void actionPerformed(ActionEvent ae) {
final ImageSummaryRead image = getSelectedImage();
- if (image == null) return;
+ if (image == null)
+ return;
// check if we have a version
if (image.isSetLatestVersionId()) {
// try to actually delete this version of the image
try {
- ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), image.getLatestVersionId());
- LOGGER.info("Deleted version '" + image.getLatestVersionId() + "' of image '" + image.getImageBaseId() + "'.");
+ ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(),
+ image.getLatestVersionId());
+ LOGGER.info("Deleted version '" + image.getLatestVersionId() + "' 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);
+ 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);
+ 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);
}
@@ -186,11 +198,11 @@ public class ImageListWindow extends ImageListWindowLayout {
});
newLectureButton.addActionListener(new ActionListener() {
-
+
@Override
public void actionPerformed(ActionEvent e) {
startLectureWizard();
-
+
}
});
// return to mainMenu
@@ -206,17 +218,19 @@ public class ImageListWindow extends ImageListWindowLayout {
private void startLectureWizard() {
// determine latest version of the selected image
final ImageSummaryRead image = getSelectedImage();
- if (image == null) return;
+ if (image == null)
+ return;
ImageDetailsRead idr;
try {
- idr = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), image.getImageBaseId());
+ idr = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(),
+ image.getImageBaseId());
} catch (Exception e) {
LOGGER.debug("Failed to get image details read from image base id: ", e);
return;
}
-
+
Iterator<ImageVersionDetails> it = idr.getVersions().iterator();
- ImageVersionDetails latest = it.next();
+ ImageVersionDetails latest = it.next();
while (it.hasNext()) {
ImageVersionDetails current = it.next();
if (current.getCreateTime() > latest.getCreateTime())
@@ -224,6 +238,7 @@ public class ImageListWindow extends ImageListWindowLayout {
}
new LectureWizard(SwingUtilities.getWindowAncestor(this), latest).setVisible(true);
}
+
private void refreshList(final boolean forceRefresh) {
QuickTimer.scheduleOnce(new Task() {
@Override
@@ -260,6 +275,11 @@ public class ImageListWindow extends ImageListWindowLayout {
}
private void performImageDownload(String versionId) {
+ if (versionId == null) {
+ Gui.showMessageBox(this, "Das ausgewählte Image hat keine gültige Version", MessageType.ERROR,
+ null, null);
+ return;
+ }
FileChooser fc = new FileChooser(false);
int action = fc.showOpenDialog(me);
File file = fc.getSelectedFile();
@@ -268,30 +288,34 @@ public class ImageListWindow extends ImageListWindowLayout {
TransferInformation transInf = null;
try {
transInf = ThriftManager.getSatClient().requestDownload(Session.getSatelliteToken(), versionId);
- } catch ( TException e) {
+ } catch (TException e) {
LOGGER.error("Failed to get transfer information: ", e);
return;
}
- if (transInf == null)
+ if (transInf == null)
return;
- // TODO fix filename/path and consider multiplatform
try {
- DownloadTask dlTask = new DownloadTask(Session.getSatelliteAddress(), transInf.getPlainPort(), transInf.getToken(), new File(file.getAbsolutePath() + "/HanneloreKraft"), imageTable.getSelectedItem().getFileSize(), null);
+ file.getAbsoluteFile().mkdirs();
+ DownloadTask dlTask = new DownloadTask(Session.getSatelliteAddress(), transInf.getPlainPort(),
+ transInf.getToken(), new File(file.getAbsolutePath(), "Hans"),
+ imageTable.getSelectedItem().getFileSize(), null);
+ new Thread(dlTask).start();
+ Config.setDownloadPath(file.getAbsolutePath());
} catch (FileNotFoundException e) {
LOGGER.error("Got transfer information but failed to download: ", e);
return;
}
}
- private void applyFilterTable(){
+ private void applyFilterTable() {
try {
// List for filters
- List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(3);
+ List<RowFilter<Object, Object>> filters = new ArrayList<RowFilter<Object, Object>>(3);
// string for text in filter text field
String filterField = searchTextField.getText();
- filters.add(RowFilter.regexFilter("(?i)"+filterField, 0, 1, 2));
+ filters.add(RowFilter.regexFilter("(?i)" + filterField, 0, 1, 2));
// filter for user (only show own)
switch (showOwned.getSelectedIndex()) {
case 0:
@@ -300,22 +324,22 @@ public class ImageListWindow extends ImageListWindowLayout {
case 1:
// filter for owner
String userFilter = FormatHelper.userName(UserCache.find(Session.getUserId()));
- filters.add(RowFilter.regexFilter("(?i)"+userFilter, 2));
+ filters.add(RowFilter.regexFilter("(?i)" + userFilter, 2));
break;
case 2:
// filter for editable
RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
public boolean include(Entry entry) {
- return imageTable.getModelRow((Integer)entry.getIdentifier()).userPermissions.edit;
+ return imageTable.getModelRow((Integer) entry.getIdentifier()).userPermissions.edit;
}
};
filters.add(filter);
break;
default:
break;
- }
+ }
// for using multiple filters
- RowFilter<Object,Object> andFilters = RowFilter.andFilter(filters);
+ RowFilter<Object, Object> andFilters = RowFilter.andFilter(filters);
imageTable.getRowSorter().setRowFilter(andFilters);
searchTextField.setForeground(UIManager.getColor("TextField.foreground"));