mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-15 18:02:58 +08:00
refactor: transfer
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user