diff options
author | Simon Rettberg | 2015-09-03 11:22:26 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-03 11:22:26 +0200 |
commit | ceb88beda8d010ac11a35bfe3db1ca49fdcea712 (patch) | |
tree | 4892453de01e7d3d1ad75cf26f252f6e5c62aed5 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity | |
parent | [client] Generate VMX on download (diff) | |
download | tutor-module-ceb88beda8d010ac11a35bfe3db1ca49fdcea712.tar.gz tutor-module-ceb88beda8d010ac11a35bfe3db1ca49fdcea712.tar.xz tutor-module-ceb88beda8d010ac11a35bfe3db1ca49fdcea712.zip |
[client] Add "open folder" button to download panel
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java | 37 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java | 4 |
2 files changed, 33 insertions, 8 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java index 31946abd..f2434b1b 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java @@ -3,9 +3,14 @@ package org.openslx.dozmod.gui.activity; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.JButton; + +import org.openslx.bwlp.thrift.iface.TransferState; import org.openslx.dozmod.filetransfer.DownloadTask; +import org.openslx.dozmod.filetransfer.TransferEvent; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.MessageType; +import org.openslx.dozmod.util.OpenLinks; @SuppressWarnings("serial") public class DownloadPanel extends TransferPanel { @@ -14,8 +19,13 @@ public class DownloadPanel extends TransferPanel { private final DownloadTask download; + private final JButton btnOpenFolder; + public DownloadPanel(String displayName, String diskFile, DownloadTask download) { super(download, displayName, diskFile); + btnOpenFolder = new JButton("Ordner öffnen"); + btnOpenFolder.setEnabled(false); + header.add(btnOpenFolder, 6); btnClose.addActionListener(new ButtonAction()); this.download = download; download.addListener(this); @@ -24,14 +34,27 @@ public class DownloadPanel extends TransferPanel { private class ButtonAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { - if (!download.isCanceled()) { - if (!Gui.showMessageBox(panel, "Wollen Sie diesen Transfer wirklich abbrechen?", - MessageType.QUESTION_YESNO, null, null)) - return; - download.cancel(); + if (e.getSource() == btnClose) { + if (!download.isCanceled()) { + if (!Gui.showMessageBox(panel, "Wollen Sie diesen Transfer wirklich abbrechen?", + MessageType.QUESTION_YESNO, null, null)) + return; + download.cancel(); + } + download.removeListener(panel); + close(); + } else if (e.getSource() == btnOpenFolder) { + OpenLinks.openLocal(download.getFile().getAbsoluteFile().getParentFile()); } - download.removeListener(panel); - close(); } } + + @Override + public void update(final TransferEvent event) { + super.update(event); + if (event.state == TransferState.FINISHED) { + btnOpenFolder.setEnabled(true); + } + } + } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java index 96171e6d..cbb0fd2f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java @@ -39,13 +39,15 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve private final Color defaultLabelColor; + protected final JPanel header; + private int errorCountdown = 0; public TransferPanel(TransferTask transfer, String displayName, String fileName) { setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); // Header: [status] VM-Name ---- fileName [Button] - JPanel header = new JPanel(); + header = new JPanel(); header.setLayout(new BoxLayout(header, BoxLayout.LINE_AXIS)); lblStatus = new QLabel("[init]"); header.add(lblStatus); |