mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 18:32:58 +08:00
feat: support to open host by enter
This commit is contained in:
@@ -23,6 +23,7 @@ class MyTabbedPane : FlatTabbedPane() {
|
|||||||
.getData(DataProviders.TermoraFrame) as TermoraFrame
|
.getData(DataProviders.TermoraFrame) as TermoraFrame
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
isFocusable = false
|
||||||
initEvents()
|
initEvents()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,10 +30,7 @@ import java.awt.Dimension
|
|||||||
import java.awt.datatransfer.DataFlavor
|
import java.awt.datatransfer.DataFlavor
|
||||||
import java.awt.datatransfer.Transferable
|
import java.awt.datatransfer.Transferable
|
||||||
import java.awt.datatransfer.UnsupportedFlavorException
|
import java.awt.datatransfer.UnsupportedFlavorException
|
||||||
import java.awt.event.ActionEvent
|
import java.awt.event.*
|
||||||
import java.awt.event.ActionListener
|
|
||||||
import java.awt.event.MouseAdapter
|
|
||||||
import java.awt.event.MouseEvent
|
|
||||||
import java.io.*
|
import java.io.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.function.Function
|
import java.util.function.Function
|
||||||
@@ -216,6 +213,26 @@ class NewHostTree : JXTree() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
addKeyListener(object : KeyAdapter() {
|
||||||
|
override fun keyPressed(e: KeyEvent) {
|
||||||
|
if (e.keyCode == KeyEvent.VK_ENTER && doubleClickConnection) {
|
||||||
|
val nodes = getSelectionHostTreeNodes(false)
|
||||||
|
if (nodes.size == 1 && nodes.first().host.protocol == Protocol.Folder) {
|
||||||
|
val path = TreePath(model.getPathToRoot(nodes.first()))
|
||||||
|
if (isExpanded(path)) {
|
||||||
|
collapsePath(path)
|
||||||
|
} else {
|
||||||
|
expandPath(path)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (node in getSelectionHostTreeNodes(true)) {
|
||||||
|
openHostAction?.actionPerformed(OpenHostActionEvent(e.source, node.host, e))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// rename
|
// rename
|
||||||
getCellEditor().addCellEditorListener(object : CellEditorListener {
|
getCellEditor().addCellEditorListener(object : CellEditorListener {
|
||||||
override fun editingStopped(e: ChangeEvent) {
|
override fun editingStopped(e: ChangeEvent) {
|
||||||
|
|||||||
@@ -78,21 +78,14 @@ class TerminalTabbed(
|
|||||||
tabs[oldIndex].onLostFocus()
|
tabs[oldIndex].onLostFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabbedPane.getComponentAt(newIndex).requestFocusInWindow()
|
||||||
|
|
||||||
if (newIndex >= 0 && tabs.size > newIndex) {
|
if (newIndex >= 0 && tabs.size > newIndex) {
|
||||||
tabs[newIndex].onGrabFocus()
|
tabs[newIndex].onGrabFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
SwingUtilities.invokeLater { tabbedPane.getComponentAt(newIndex).requestFocusInWindow() }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选择变动
|
|
||||||
tabbedPane.addChangeListener {
|
|
||||||
if (tabbedPane.selectedIndex >= 0) {
|
|
||||||
val c = tabbedPane.getComponentAt(tabbedPane.selectedIndex)
|
|
||||||
c.requestFocusInWindow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 右键菜单
|
// 右键菜单
|
||||||
tabbedPane.addMouseListener(object : MouseAdapter() {
|
tabbedPane.addMouseListener(object : MouseAdapter() {
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ import com.formdev.flatlaf.extras.components.FlatTextField
|
|||||||
import org.apache.commons.lang3.StringUtils
|
import org.apache.commons.lang3.StringUtils
|
||||||
import org.jdesktop.swingx.action.ActionManager
|
import org.jdesktop.swingx.action.ActionManager
|
||||||
import java.awt.BorderLayout
|
import java.awt.BorderLayout
|
||||||
|
import java.awt.Component
|
||||||
import java.awt.Dimension
|
import java.awt.Dimension
|
||||||
|
import java.awt.KeyboardFocusManager
|
||||||
import java.awt.event.ActionEvent
|
import java.awt.event.ActionEvent
|
||||||
import java.awt.event.ComponentAdapter
|
import java.awt.event.ComponentAdapter
|
||||||
import java.awt.event.ComponentEvent
|
import java.awt.event.ComponentEvent
|
||||||
@@ -32,6 +34,7 @@ class WelcomePanel(private val windowScope: WindowScope) : JPanel(BorderLayout()
|
|||||||
private var fullContent = properties.getString("WelcomeFullContent", "false").toBoolean()
|
private var fullContent = properties.getString("WelcomeFullContent", "false").toBoolean()
|
||||||
private val dataProviderSupport = DataProviderSupport()
|
private val dataProviderSupport = DataProviderSupport()
|
||||||
private val hostTreeModel = hostTree.model as NewHostTreeModel
|
private val hostTreeModel = hostTree.model as NewHostTreeModel
|
||||||
|
private var lastFocused: Component? = null
|
||||||
private val filterableHostTreeModel = FilterableHostTreeModel(hostTree) {
|
private val filterableHostTreeModel = FilterableHostTreeModel(hostTree) {
|
||||||
searchTextField.text.isBlank()
|
searchTextField.text.isBlank()
|
||||||
}
|
}
|
||||||
@@ -258,6 +261,14 @@ class WelcomePanel(private val windowScope: WindowScope) : JPanel(BorderLayout()
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onLostFocus() {
|
||||||
|
lastFocused = KeyboardFocusManager.getCurrentKeyboardFocusManager().focusOwner
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGrabFocus() {
|
||||||
|
SwingUtilities.invokeLater { lastFocused?.requestFocusInWindow() }
|
||||||
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
properties.putString("WelcomeFullContent", fullContent.toString())
|
properties.putString("WelcomeFullContent", fullContent.toString())
|
||||||
properties.putString("Welcome.HostTree.state", TreeUtils.saveExpansionState(hostTree))
|
properties.putString("Welcome.HostTree.state", TreeUtils.saveExpansionState(hostTree))
|
||||||
|
|||||||
Reference in New Issue
Block a user