mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 02:12:58 +08:00
chore: optimising SFTP for Linux edit (#229)
This commit is contained in:
@@ -2,6 +2,7 @@ package app.termora.transport
|
||||
|
||||
import app.termora.*
|
||||
import app.termora.actions.AnActionEvent
|
||||
import app.termora.actions.SettingsAction
|
||||
import com.formdev.flatlaf.FlatClientProperties
|
||||
import com.formdev.flatlaf.extras.components.FlatPopupMenu
|
||||
import com.formdev.flatlaf.extras.components.FlatToolBar
|
||||
@@ -20,6 +21,7 @@ import org.apache.sshd.sftp.client.SftpClient
|
||||
import org.apache.sshd.sftp.client.fs.SftpFileSystem
|
||||
import org.apache.sshd.sftp.client.fs.SftpPath
|
||||
import org.jdesktop.swingx.JXBusyLabel
|
||||
import org.jdesktop.swingx.action.ActionManager
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.awt.BorderLayout
|
||||
import java.awt.Component
|
||||
@@ -70,6 +72,8 @@ class FileSystemPanel(
|
||||
private val properties get() = Database.getDatabase().properties
|
||||
private val showHiddenFilesKey by lazy { "termora.transport.host.${host.id}.show-hidden-files" }
|
||||
private val evt by lazy { AnActionEvent(this, StringUtils.EMPTY, EventObject(this)) }
|
||||
private val sftp get() = Database.getDatabase().sftp
|
||||
private val actionManager get() = ActionManager.getInstance()
|
||||
|
||||
/**
|
||||
* Edit
|
||||
@@ -596,6 +600,19 @@ class FileSystemPanel(
|
||||
if (files.isEmpty()) return
|
||||
val transportManager = evt.getData(TransportDataProviders.TransportManager) ?: return
|
||||
|
||||
if (SystemInfo.isLinux) {
|
||||
if (sftp.editCommand.isBlank()) {
|
||||
OptionPane.showMessageDialog(
|
||||
owner,
|
||||
I18n.getString("termora.transport.table.contextmenu.edit-command"),
|
||||
messageType = JOptionPane.INFORMATION_MESSAGE
|
||||
)
|
||||
actionManager.getAction(SettingsAction.SETTING)
|
||||
?.actionPerformed(AnActionEvent(this, StringUtils.EMPTY, EventObject(this)))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
val temporary = Paths.get(Application.getBaseDataDir().absolutePath, "temporary")
|
||||
Files.createDirectories(temporary)
|
||||
|
||||
@@ -617,7 +634,6 @@ class FileSystemPanel(
|
||||
|
||||
private fun editFileTransportListener(source: Path, localPath: Path): TransportListener {
|
||||
return object : TransportListener {
|
||||
private val sftp get() = Database.getDatabase().sftp
|
||||
override fun onTransportChanged(transport: Transport) {
|
||||
// 传输成功
|
||||
if (transport.state == TransportState.Done) {
|
||||
|
||||
@@ -265,6 +265,7 @@ termora.transport.table.owner=Owner
|
||||
# contextmenu
|
||||
termora.transport.table.contextmenu.transfer=Transfer
|
||||
termora.transport.table.contextmenu.edit=${termora.keymgr.edit}
|
||||
termora.transport.table.contextmenu.edit-command=You must configure the "Edit Command" in "Settings - SFTP" before you can edit the file
|
||||
termora.transport.table.contextmenu.copy-path=Copy Path
|
||||
termora.transport.table.contextmenu.open-in-folder=Open in {0}
|
||||
termora.transport.table.contextmenu.rename=${termora.welcome.contextmenu.rename}
|
||||
|
||||
@@ -257,6 +257,7 @@ termora.transport.table.owner=所有者
|
||||
# contextmenu
|
||||
termora.transport.table.contextmenu.transfer=传输
|
||||
termora.transport.table.contextmenu.copy-path=复制路径
|
||||
termora.transport.table.contextmenu.edit-command=你必须在 “设置 - SFTP” 中配置 “编辑命令” 后才能编辑文件
|
||||
termora.transport.table.contextmenu.open-in-folder=在{0}中打开
|
||||
termora.transport.table.contextmenu.change-permissions=更改权限...
|
||||
termora.transport.table.contextmenu.refresh=刷新
|
||||
|
||||
@@ -251,6 +251,7 @@ termora.transport.table.owner=所有者
|
||||
# contextmenu
|
||||
termora.transport.table.contextmenu.transfer=傳輸
|
||||
termora.transport.table.contextmenu.copy-path=複製路徑
|
||||
termora.transport.table.contextmenu.edit-command=你必須在 “設定 - SFTP” 中設定 “編輯指令” 後才能編輯文件
|
||||
termora.transport.table.contextmenu.open-in-folder=在{0}中打開
|
||||
termora.transport.table.contextmenu.change-permissions=更改權限...
|
||||
termora.transport.table.contextmenu.refresh=刷新
|
||||
|
||||
Reference in New Issue
Block a user