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.gui.helper.QuitNotification; import org.openslx.dozmod.util.DesktopEnvironment; @SuppressWarnings("serial") public class DownloadPanel extends TransferPanel implements ActionListener, QuitNotification { private final DownloadPanel panel = this; 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); btnOpenFolder.addActionListener(this); btnClose.addActionListener(this); this.download = download; download.addListener(this); } @Override public void actionPerformed(ActionEvent e) { 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) { DesktopEnvironment.openLocal(download.getFile().getAbsoluteFile().getParentFile()); } } @Override public void update(final TransferEvent event) { super.update(event); if (event.state == TransferState.FINISHED) { btnOpenFolder.setEnabled(true); } } @Override public void onApplicationQuit() { download.cancel(); } }