refactor: transfer

This commit is contained in:
hstyi
2025-06-21 16:52:55 +08:00
committed by hstyi
parent e6a45d25cd
commit e1eab9db06
113 changed files with 4592 additions and 4695 deletions

View File

@@ -4,21 +4,22 @@ import app.termora.DialogWrapper
import app.termora.Disposable
import app.termora.Disposer
import app.termora.OptionPane
import app.termora.sftp.absolutePathString
import org.apache.commons.vfs2.FileObject
import java.awt.Dimension
import java.awt.Window
import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
import java.io.File
import java.nio.file.Path
import javax.swing.JComponent
import javax.swing.JOptionPane
import javax.swing.UIManager
import kotlin.io.path.absolutePathString
import kotlin.io.path.name
class EditorDialog(file: FileObject, owner: Window, myDisposable: Disposable) : DialogWrapper(null) {
class EditorDialog(file: Path, owner: Window, myDisposable: Disposable) : DialogWrapper(null) {
private val filename = file.name.baseName
private val filename = file.name
private val filepath = File(file.absolutePathString())
private val editorPanel = EditorPanel(this, filepath)

View File

@@ -3,13 +3,13 @@ package app.termora.plugins.editor
import app.termora.plugin.Extension
import app.termora.plugin.ExtensionSupport
import app.termora.plugin.Plugin
import app.termora.sftp.SFTPEditFileExtension
import app.termora.transfer.TransportEditFileExtension
class EditorPlugin : Plugin {
private val support = ExtensionSupport()
init {
support.addExtension(SFTPEditFileExtension::class.java) { MySFTPEditFileExtension.instance }
support.addExtension(TransportEditFileExtension::class.java) { MyTransportEditFileExtension.instance }
}
override fun getAuthor(): String {

View File

@@ -1,21 +0,0 @@
package app.termora.plugins.editor
import app.termora.Disposable
import app.termora.Disposer
import app.termora.sftp.SFTPEditFileExtension
import app.termora.sftp.absolutePathString
import org.apache.commons.vfs2.FileObject
import java.awt.Window
import javax.swing.SwingUtilities
class MySFTPEditFileExtension private constructor() : SFTPEditFileExtension {
companion object {
val instance = MySFTPEditFileExtension()
}
override fun edit(owner: Window, file: FileObject): Disposable {
val disposable = Disposer.newDisposable()
SwingUtilities.invokeLater { EditorDialog(file, owner, disposable).isVisible = true }
return disposable
}
}

View File

@@ -0,0 +1,20 @@
package app.termora.plugins.editor
import app.termora.Disposable
import app.termora.Disposer
import app.termora.transfer.TransportEditFileExtension
import java.awt.Window
import java.nio.file.Path
import javax.swing.SwingUtilities
class MyTransportEditFileExtension private constructor() : TransportEditFileExtension {
companion object {
val instance = MyTransportEditFileExtension()
}
override fun edit(owner: Window, path: Path): Disposable {
val disposable = Disposer.newDisposable()
SwingUtilities.invokeLater { EditorDialog(path, owner, disposable).isVisible = true }
return disposable
}
}

View File

@@ -2,8 +2,8 @@ package app.termora.plugins.s3
import app.termora.DynamicIcon
import app.termora.Icons
import app.termora.protocol.FileObjectHandler
import app.termora.protocol.FileObjectRequest
import app.termora.protocol.PathHandler
import app.termora.protocol.PathHandlerRequest
import app.termora.protocol.TransferProtocolProvider
import io.minio.MinioClient
import org.apache.commons.lang3.StringUtils
@@ -30,7 +30,7 @@ class S3ProtocolProvider private constructor() : TransferProtocolProvider {
return S3FileProvider.instance
}
override fun getRootFileObject(requester: FileObjectRequest): FileObjectHandler {
override fun getRootFileObject(requester: PathHandlerRequest): PathHandler {
val host = requester.host
val builder = MinioClient.builder()
.endpoint(host.host)
@@ -53,7 +53,7 @@ class S3ProtocolProvider private constructor() : TransferProtocolProvider {
"s3://${StringUtils.defaultIfBlank(defaultPath, "/")}",
options
)
return FileObjectHandler(file)
return PathHandler(file)
}
}

View File

@@ -3,7 +3,7 @@ package app.termora.plugins.s3
import app.termora.Authentication
import app.termora.AuthenticationType
import app.termora.Host
import app.termora.protocol.FileObjectRequest
import app.termora.protocol.PathHandlerRequest
import app.termora.vfs2.VFSWalker
import io.minio.MakeBucketArgs
import io.minio.MinioClient
@@ -66,7 +66,7 @@ class S3FileProviderTest {
)
}
val requester = FileObjectRequest(
val requester = PathHandlerRequest(
host = Host(
name = "test",
protocol = S3ProtocolProvider.PROTOCOL,