diff --git a/src/main/kotlin/app/termora/terminal/panel/vw/TransferVisualWindow.kt b/src/main/kotlin/app/termora/terminal/panel/vw/TransferVisualWindow.kt index 0a0dcda..21e9583 100644 --- a/src/main/kotlin/app/termora/terminal/panel/vw/TransferVisualWindow.kt +++ b/src/main/kotlin/app/termora/terminal/panel/vw/TransferVisualWindow.kt @@ -1,9 +1,7 @@ package app.termora.terminal.panel.vw import app.termora.* -import app.termora.actions.AnAction -import app.termora.actions.AnActionEvent -import app.termora.actions.DataProviders +import app.termora.actions.* import app.termora.plugin.internal.badge.Badge import app.termora.plugin.internal.ssh.SSHTerminalTab import app.termora.plugin.internal.ssh.SSHTerminalTab.Companion.SSHSession @@ -39,7 +37,7 @@ import kotlin.time.Duration.Companion.milliseconds internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: VisualWindowManager) : - SSHVisualWindow(tab, "Transfer", visualWindowManager) { + SSHVisualWindow(tab, "Transfer", visualWindowManager), DataProvider { companion object { private val log = LoggerFactory.getLogger(TransferVisualWindow::class.java) @@ -65,7 +63,7 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi private val downloadBtn = JButton(Icons.download) private val badgePresentation = Badge.getInstance(tab.windowScope) .addBadge(downloadBtn).apply { visible = false } - + private val support = DataProviderSupport() init { initViews() @@ -82,6 +80,8 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi add(panel, BorderLayout.CENTER) + + support.addData(TransportViewer.MyTransferManager, transferManager) } private fun initEvents() { @@ -240,6 +240,10 @@ internal class TransferVisualWindow(tab: SSHTerminalTab, visualWindowManager: Vi super.dispose() } + override fun getData(dataKey: DataKey): T? { + return support.getData(dataKey) + } + override fun toolbarButtons(): List> { return listOf(downloadBtn to Position.Left, questionBtn to Position.Right) } diff --git a/src/main/kotlin/app/termora/transfer/TransportPopupMenu.kt b/src/main/kotlin/app/termora/transfer/TransportPopupMenu.kt index c10506e..f5c5f46 100644 --- a/src/main/kotlin/app/termora/transfer/TransportPopupMenu.kt +++ b/src/main/kotlin/app/termora/transfer/TransportPopupMenu.kt @@ -1,12 +1,10 @@ package app.termora.transfer -import app.termora.Application -import app.termora.ApplicationScope -import app.termora.I18n -import app.termora.OptionPane +import app.termora.* import app.termora.plugin.ExtensionManager import app.termora.transfer.TransportPanel.Companion.isLocallyFileSystem import com.formdev.flatlaf.extras.components.FlatPopupMenu +import kotlinx.coroutines.launch import org.apache.commons.io.IOUtils import org.apache.commons.lang3.StringUtils import org.apache.sshd.sftp.client.fs.SftpFileSystem @@ -149,7 +147,12 @@ internal class TransportPopupMenu( } private fun initEvents() { - transferMenu.addActionListener { fireActionPerformed(it, ActionCommand.Transfer) } + transferMenu.addActionListener { + swingCoroutineScope.launch { + fireActionPerformed(it, ActionCommand.Transfer) + } + } + deleteMenu.addActionListener { if (OptionPane.showConfirmDialog( owner,