mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 02:12:58 +08:00
chore: improve factories
This commit is contained in:
@@ -13,7 +13,7 @@ import javax.swing.Icon
|
|||||||
abstract class HostTerminalTab(
|
abstract class HostTerminalTab(
|
||||||
val windowScope: WindowScope,
|
val windowScope: WindowScope,
|
||||||
val host: Host,
|
val host: Host,
|
||||||
protected val terminal: Terminal = TerminalFactory.getInstance(windowScope).createTerminal()
|
protected val terminal: Terminal = TerminalFactory.getInstance().createTerminal()
|
||||||
) : PropertyTerminalTab(), DataProvider {
|
) : PropertyTerminalTab(), DataProvider {
|
||||||
companion object {
|
companion object {
|
||||||
val Host = DataKey(app.termora.Host::class)
|
val Host = DataKey(app.termora.Host::class)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class LocalTerminalTab(windowScope: WindowScope, host: Host) :
|
|||||||
|
|
||||||
override suspend fun openPtyConnector(): PtyConnector {
|
override suspend fun openPtyConnector(): PtyConnector {
|
||||||
val winSize = terminalPanel.winSize()
|
val winSize = terminalPanel.winSize()
|
||||||
val ptyConnector = PtyConnectorFactory.getInstance(windowScope).createPtyConnector(
|
val ptyConnector = PtyConnectorFactory.getInstance().createPtyConnector(
|
||||||
winSize.rows, winSize.cols,
|
winSize.rows, winSize.cols,
|
||||||
host.options.envs(),
|
host.options.envs(),
|
||||||
Charsets.toCharset(host.options.encoding, StandardCharsets.UTF_8),
|
Charsets.toCharset(host.options.encoding, StandardCharsets.UTF_8),
|
||||||
|
|||||||
@@ -14,9 +14,7 @@ class MultiplePtyConnector(
|
|||||||
|
|
||||||
private val isMultiple get() = ActionManager.getInstance().isSelected(Actions.MULTIPLE)
|
private val isMultiple get() = ActionManager.getInstance().isSelected(Actions.MULTIPLE)
|
||||||
private val ptyConnectors
|
private val ptyConnectors
|
||||||
get() = ApplicationScope.forApplicationScope()
|
get() = PtyConnectorFactory.getInstance().getPtyConnectors()
|
||||||
.windowScopes().map { PtyConnectorFactory.getInstance(it).getPtyConnectors() }
|
|
||||||
.flatten()
|
|
||||||
|
|
||||||
override fun write(buffer: ByteArray, offset: Int, len: Int) {
|
override fun write(buffer: ByteArray, offset: Int, len: Int) {
|
||||||
if (isMultiple) {
|
if (isMultiple) {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package app.termora
|
package app.termora
|
||||||
|
|
||||||
import app.termora.actions.AnActionEvent
|
import app.termora.actions.AnActionEvent
|
||||||
import app.termora.actions.DataProvider
|
|
||||||
import app.termora.actions.DataProviders
|
import app.termora.actions.DataProviders
|
||||||
import com.formdev.flatlaf.extras.components.FlatTabbedPane
|
import com.formdev.flatlaf.extras.components.FlatTabbedPane
|
||||||
import org.apache.commons.lang3.StringUtils
|
import org.apache.commons.lang3.StringUtils
|
||||||
@@ -237,11 +236,8 @@ class MyTabbedPane : FlatTabbedPane() {
|
|||||||
|
|
||||||
private fun dragToAnotherWindow(oldFrame: TermoraFrame, frame: TermoraFrame) {
|
private fun dragToAnotherWindow(oldFrame: TermoraFrame, frame: TermoraFrame) {
|
||||||
val tab = this.terminalTab ?: return
|
val tab = this.terminalTab ?: return
|
||||||
val terminalPanel = (tab as DataProvider?)?.getData(DataProviders.TerminalPanel) ?: return
|
|
||||||
val tabbedManager = frame.getData(DataProviders.TerminalTabbed) ?: return
|
val tabbedManager = frame.getData(DataProviders.TerminalTabbed) ?: return
|
||||||
val tabbedPane = frame.getData(DataProviders.TabbedPane) ?: return
|
val tabbedPane = frame.getData(DataProviders.TabbedPane) ?: return
|
||||||
val windowScope = frame.getData(DataProviders.WindowScope) ?: return
|
|
||||||
val oldWindowScope = oldFrame.getData(DataProviders.WindowScope) ?: return
|
|
||||||
val location = Point(MouseInfo.getPointerInfo().location)
|
val location = Point(MouseInfo.getPointerInfo().location)
|
||||||
SwingUtilities.convertPointFromScreen(location, tabbedPane)
|
SwingUtilities.convertPointFromScreen(location, tabbedPane)
|
||||||
val index = tabbedPane.indexAtLocation(location.x, location.y)
|
val index = tabbedPane.indexAtLocation(location.x, location.y)
|
||||||
@@ -253,11 +249,6 @@ class MyTabbedPane : FlatTabbedPane() {
|
|||||||
index
|
index
|
||||||
)
|
)
|
||||||
|
|
||||||
TerminalPanelFactory.getInstance(oldWindowScope).removeTerminalPanel(terminalPanel)
|
|
||||||
TerminalPanelFactory.getInstance(windowScope).addTerminalPanel(terminalPanel)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (frame.hasFocus()) {
|
if (frame.hasFocus()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ class PtyConnectorFactory : Disposable {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val log = LoggerFactory.getLogger(PtyConnectorFactory::class.java)
|
private val log = LoggerFactory.getLogger(PtyConnectorFactory::class.java)
|
||||||
fun getInstance(scope: Scope): PtyConnectorFactory {
|
fun getInstance(): PtyConnectorFactory {
|
||||||
return scope.getOrCreate(PtyConnectorFactory::class) { PtyConnectorFactory() }
|
return ApplicationScope.forApplicationScope().getOrCreate(PtyConnectorFactory::class) { PtyConnectorFactory() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import kotlin.time.Duration.Companion.milliseconds
|
|||||||
abstract class PtyHostTerminalTab(
|
abstract class PtyHostTerminalTab(
|
||||||
windowScope: WindowScope,
|
windowScope: WindowScope,
|
||||||
host: Host,
|
host: Host,
|
||||||
terminal: Terminal = TerminalFactory.getInstance(windowScope).createTerminal()
|
terminal: Terminal = TerminalFactory.getInstance().createTerminal()
|
||||||
) : HostTerminalTab(windowScope, host, terminal) {
|
) : HostTerminalTab(windowScope, host, terminal) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -24,10 +24,10 @@ abstract class PtyHostTerminalTab(
|
|||||||
private var readerJob: Job? = null
|
private var readerJob: Job? = null
|
||||||
private val ptyConnectorDelegate = PtyConnectorDelegate()
|
private val ptyConnectorDelegate = PtyConnectorDelegate()
|
||||||
|
|
||||||
private val terminalPanelFactory = TerminalPanelFactory.getInstance(windowScope)
|
private val terminalPanelFactory = TerminalPanelFactory.getInstance()
|
||||||
protected val terminalPanel = terminalPanelFactory.createTerminalPanel(terminal, ptyConnectorDelegate)
|
protected val terminalPanel = terminalPanelFactory.createTerminalPanel(terminal, ptyConnectorDelegate)
|
||||||
.apply { Disposer.register(this@PtyHostTerminalTab, this) }
|
.apply { Disposer.register(this@PtyHostTerminalTab, this) }
|
||||||
protected val ptyConnectorFactory get() = PtyConnectorFactory.getInstance(windowScope)
|
protected val ptyConnectorFactory get() = PtyConnectorFactory.getInstance()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
terminal.getTerminalModel().setData(DataKey.PtyConnector, ptyConnectorDelegate)
|
terminal.getTerminalModel().setData(DataKey.PtyConnector, ptyConnectorDelegate)
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ class SettingsOptionsPane : OptionsPane() {
|
|||||||
floatingToolbarComboBox.addItemListener { e ->
|
floatingToolbarComboBox.addItemListener { e ->
|
||||||
if (e.stateChange == ItemEvent.SELECTED) {
|
if (e.stateChange == ItemEvent.SELECTED) {
|
||||||
terminalSetting.floatingToolbar = floatingToolbarComboBox.selectedItem as Boolean
|
terminalSetting.floatingToolbar = floatingToolbarComboBox.selectedItem as Boolean
|
||||||
TerminalPanelFactory.getAllTerminalPanel().forEach { tp ->
|
TerminalPanelFactory.getInstance().getTerminalPanels().forEach { tp ->
|
||||||
if (terminalSetting.floatingToolbar && FloatingToolbarPanel.isPined) {
|
if (terminalSetting.floatingToolbar && FloatingToolbarPanel.isPined) {
|
||||||
tp.getData(FloatingToolbarPanel.FloatingToolbar)?.triggerShow()
|
tp.getData(FloatingToolbarPanel.FloatingToolbar)?.triggerShow()
|
||||||
} else {
|
} else {
|
||||||
@@ -369,7 +369,7 @@ class SettingsOptionsPane : OptionsPane() {
|
|||||||
if (it.stateChange == ItemEvent.SELECTED) {
|
if (it.stateChange == ItemEvent.SELECTED) {
|
||||||
val style = cursorStyleComboBox.selectedItem as CursorStyle
|
val style = cursorStyleComboBox.selectedItem as CursorStyle
|
||||||
terminalSetting.cursor = style
|
terminalSetting.cursor = style
|
||||||
TerminalFactory.getInstance(ApplicationScope.forWindowScope(owner)).getTerminals().forEach { e ->
|
TerminalFactory.getInstance().getTerminals().forEach { e ->
|
||||||
e.getTerminalModel().setData(DataKey.CursorStyle, style)
|
e.getTerminalModel().setData(DataKey.CursorStyle, style)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -379,7 +379,7 @@ class SettingsOptionsPane : OptionsPane() {
|
|||||||
debugComboBox.addItemListener { e ->
|
debugComboBox.addItemListener { e ->
|
||||||
if (e.stateChange == ItemEvent.SELECTED) {
|
if (e.stateChange == ItemEvent.SELECTED) {
|
||||||
terminalSetting.debug = debugComboBox.selectedItem as Boolean
|
terminalSetting.debug = debugComboBox.selectedItem as Boolean
|
||||||
TerminalFactory.getInstance(ApplicationScope.forWindowScope(owner)).getTerminals().forEach {
|
TerminalFactory.getInstance().getTerminals().forEach {
|
||||||
it.getTerminalModel().setData(TerminalPanel.Debug, terminalSetting.debug)
|
it.getTerminalModel().setData(TerminalPanel.Debug, terminalSetting.debug)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -408,10 +408,8 @@ class SettingsOptionsPane : OptionsPane() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun fireFontChanged() {
|
private fun fireFontChanged() {
|
||||||
ApplicationScope.windowScopes().forEach {
|
TerminalPanelFactory.getInstance()
|
||||||
TerminalPanelFactory.getInstance(it)
|
|
||||||
.fireResize()
|
.fireResize()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initView() {
|
private fun initView() {
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ class TerminalFactory private constructor() : Disposable {
|
|||||||
private val terminals = mutableListOf<Terminal>()
|
private val terminals = mutableListOf<Terminal>()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun getInstance(scope: WindowScope): TerminalFactory {
|
fun getInstance(): TerminalFactory {
|
||||||
return scope.getOrCreate(TerminalFactory::class) { TerminalFactory() }
|
return ApplicationScope.forApplicationScope().getOrCreate(TerminalFactory::class) { TerminalFactory() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,9 @@ class TerminalPanelFactory : Disposable {
|
|||||||
|
|
||||||
private val Factory = DataKey(TerminalPanelFactory::class)
|
private val Factory = DataKey(TerminalPanelFactory::class)
|
||||||
|
|
||||||
fun getInstance(scope: Scope): TerminalPanelFactory {
|
fun getInstance(): TerminalPanelFactory {
|
||||||
return scope.getOrCreate(TerminalPanelFactory::class) { TerminalPanelFactory() }
|
return ApplicationScope.forApplicationScope()
|
||||||
}
|
.getOrCreate(TerminalPanelFactory::class) { TerminalPanelFactory() }
|
||||||
|
|
||||||
fun getAllTerminalPanel(): Array<TerminalPanel> {
|
|
||||||
return ApplicationScope.forApplicationScope().windowScopes()
|
|
||||||
.map { getInstance(it) }
|
|
||||||
.flatMap { it.terminalPanels }.toTypedArray()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,10 +92,7 @@ class TerminalPanelFactory : Disposable {
|
|||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
while (coroutineScope.isActive) {
|
while (coroutineScope.isActive) {
|
||||||
delay(500.milliseconds)
|
delay(500.milliseconds)
|
||||||
SwingUtilities.invokeLater {
|
SwingUtilities.invokeLater { TerminalPanelFactory.getInstance().repaintAll() }
|
||||||
ApplicationScope.forApplicationScope().windowScopes()
|
|
||||||
.map { getInstance(it) }.forEach { it.repaintAll() }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package app.termora.actions
|
package app.termora.actions
|
||||||
|
|
||||||
import app.termora.*
|
import app.termora.I18n
|
||||||
|
import app.termora.Icons
|
||||||
|
import app.termora.TerminalPanelFactory
|
||||||
|
|
||||||
class MultipleAction : AnAction(
|
class MultipleAction : AnAction(
|
||||||
I18n.getString("termora.tools.multiple"),
|
I18n.getString("termora.tools.multiple"),
|
||||||
@@ -11,7 +13,6 @@ class MultipleAction : AnAction(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun actionPerformed(evt: AnActionEvent) {
|
override fun actionPerformed(evt: AnActionEvent) {
|
||||||
ApplicationScope.windowScopes().map { TerminalPanelFactory.getInstance(it) }
|
TerminalPanelFactory.getInstance().repaintAll()
|
||||||
.forEach { it.repaintAll() }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package app.termora.actions
|
package app.termora.actions
|
||||||
|
|
||||||
import app.termora.ApplicationScope
|
|
||||||
import app.termora.Database
|
import app.termora.Database
|
||||||
import app.termora.TerminalPanelFactory
|
import app.termora.TerminalPanelFactory
|
||||||
|
|
||||||
@@ -13,10 +12,8 @@ abstract class TerminalZoomAction : AnAction() {
|
|||||||
evt.getData(DataProviders.TerminalPanel) ?: return
|
evt.getData(DataProviders.TerminalPanel) ?: return
|
||||||
|
|
||||||
if (zoom()) {
|
if (zoom()) {
|
||||||
ApplicationScope.windowScopes().forEach {
|
TerminalPanelFactory.getInstance()
|
||||||
TerminalPanelFactory.getInstance(it)
|
|
||||||
.fireResize()
|
.fireResize()
|
||||||
}
|
|
||||||
evt.consume()
|
evt.consume()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package app.termora.highlight
|
package app.termora.highlight
|
||||||
|
|
||||||
import app.termora.ApplicationScope
|
|
||||||
import app.termora.DialogWrapper
|
import app.termora.DialogWrapper
|
||||||
import app.termora.TerminalFactory
|
import app.termora.TerminalFactory
|
||||||
import com.formdev.flatlaf.util.SystemInfo
|
import com.formdev.flatlaf.util.SystemInfo
|
||||||
@@ -31,7 +30,7 @@ class ChooseColorTemplateDialog(owner: Window, title: String) : DialogWrapper(ow
|
|||||||
|
|
||||||
override fun createCenterPanel(): JComponent {
|
override fun createCenterPanel(): JComponent {
|
||||||
val panel = JPanel(GridLayout(2, 8, 4, 4))
|
val panel = JPanel(GridLayout(2, 8, 4, 4))
|
||||||
val colorPalette = TerminalFactory.getInstance(ApplicationScope.forWindowScope(this))
|
val colorPalette = TerminalFactory.getInstance()
|
||||||
.createTerminal().getTerminalModel().getColorPalette()
|
.createTerminal().getTerminalModel().getColorPalette()
|
||||||
for (i in 1..16) {
|
for (i in 1..16) {
|
||||||
val c = JPanel()
|
val c = JPanel()
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class KeywordHighlightDialog(owner: Window) : DialogWrapper(owner) {
|
|||||||
private val table = FlatTable()
|
private val table = FlatTable()
|
||||||
private val keywordHighlightManager by lazy { KeywordHighlightManager.getInstance() }
|
private val keywordHighlightManager by lazy { KeywordHighlightManager.getInstance() }
|
||||||
private val colorPalette by lazy {
|
private val colorPalette by lazy {
|
||||||
TerminalFactory.getInstance(ApplicationScope.forWindowScope(this)).createTerminal().getTerminalModel()
|
TerminalFactory.getInstance().createTerminal().getTerminalModel()
|
||||||
.getColorPalette()
|
.getColorPalette()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package app.termora.highlight
|
package app.termora.highlight
|
||||||
|
|
||||||
import app.termora.ApplicationScope
|
import app.termora.ApplicationScope
|
||||||
import app.termora.TerminalPanelFactory
|
|
||||||
import app.termora.Database
|
import app.termora.Database
|
||||||
|
import app.termora.TerminalPanelFactory
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
class KeywordHighlightManager private constructor() {
|
class KeywordHighlightManager private constructor() {
|
||||||
@@ -27,7 +27,7 @@ class KeywordHighlightManager private constructor() {
|
|||||||
fun addKeywordHighlight(keywordHighlight: KeywordHighlight) {
|
fun addKeywordHighlight(keywordHighlight: KeywordHighlight) {
|
||||||
database.addKeywordHighlight(keywordHighlight)
|
database.addKeywordHighlight(keywordHighlight)
|
||||||
keywordHighlights[keywordHighlight.id] = keywordHighlight
|
keywordHighlights[keywordHighlight.id] = keywordHighlight
|
||||||
ApplicationScope.windowScopes().forEach { TerminalPanelFactory.getInstance(it).repaintAll() }
|
TerminalPanelFactory.getInstance().repaintAll()
|
||||||
|
|
||||||
if (log.isDebugEnabled) {
|
if (log.isDebugEnabled) {
|
||||||
log.debug("Keyword highlighter added. {}", keywordHighlight)
|
log.debug("Keyword highlighter added. {}", keywordHighlight)
|
||||||
@@ -37,7 +37,7 @@ class KeywordHighlightManager private constructor() {
|
|||||||
fun removeKeywordHighlight(id: String) {
|
fun removeKeywordHighlight(id: String) {
|
||||||
database.removeKeywordHighlight(id)
|
database.removeKeywordHighlight(id)
|
||||||
keywordHighlights.remove(id)
|
keywordHighlights.remove(id)
|
||||||
ApplicationScope.windowScopes().forEach { TerminalPanelFactory.getInstance(it).repaintAll() }
|
TerminalPanelFactory.getInstance().repaintAll()
|
||||||
|
|
||||||
if (log.isDebugEnabled) {
|
if (log.isDebugEnabled) {
|
||||||
log.debug("Keyword highlighter removed. {}", id)
|
log.debug("Keyword highlighter removed. {}", id)
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import app.termora.*
|
|||||||
import app.termora.AES.decodeBase64
|
import app.termora.AES.decodeBase64
|
||||||
import app.termora.actions.AnAction
|
import app.termora.actions.AnAction
|
||||||
import app.termora.actions.AnActionEvent
|
import app.termora.actions.AnActionEvent
|
||||||
import app.termora.actions.DataProviders
|
|
||||||
import app.termora.native.FileChooser
|
import app.termora.native.FileChooser
|
||||||
import com.formdev.flatlaf.extras.components.FlatComboBox
|
import com.formdev.flatlaf.extras.components.FlatComboBox
|
||||||
import com.formdev.flatlaf.extras.components.FlatTable
|
import com.formdev.flatlaf.extras.components.FlatTable
|
||||||
@@ -196,7 +195,6 @@ class KeyManagerPanel : JPanel(BorderLayout()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun sshCopyId(evt: AnActionEvent) {
|
private fun sshCopyId(evt: AnActionEvent) {
|
||||||
val windowScope = evt.getData(DataProviders.WindowScope) ?: return
|
|
||||||
val keyPairs = keyPairTable.selectedRows.map { keyPairTableModel.getOhKeyPair(it) }
|
val keyPairs = keyPairTable.selectedRows.map { keyPairTableModel.getOhKeyPair(it) }
|
||||||
val publicKeys = mutableListOf<Pair<String, String>>()
|
val publicKeys = mutableListOf<Pair<String, String>>()
|
||||||
for (keyPair in keyPairs) {
|
for (keyPair in keyPairs) {
|
||||||
@@ -220,7 +218,7 @@ class KeyManagerPanel : JPanel(BorderLayout()) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
SSHCopyIdDialog(owner, windowScope, hosts, publicKeys).start()
|
SSHCopyIdDialog(owner, hosts, publicKeys).start()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun exportKeyPairs(file: File, keyPairs: List<OhKeyPair>) {
|
private fun exportKeyPairs(file: File, keyPairs: List<OhKeyPair>) {
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import javax.swing.UIManager
|
|||||||
|
|
||||||
class SSHCopyIdDialog(
|
class SSHCopyIdDialog(
|
||||||
owner: Window,
|
owner: Window,
|
||||||
private val windowScope: WindowScope,
|
|
||||||
private val hosts: List<Host>,
|
private val hosts: List<Host>,
|
||||||
// key: name , value: public key
|
// key: name , value: public key
|
||||||
private val publicKeys: List<Pair<String, String>>,
|
private val publicKeys: List<Pair<String, String>>,
|
||||||
@@ -33,9 +32,9 @@ class SSHCopyIdDialog(
|
|||||||
private val log = LoggerFactory.getLogger(SSHCopyIdDialog::class.java)
|
private val log = LoggerFactory.getLogger(SSHCopyIdDialog::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val terminalPanelFactory = TerminalPanelFactory.getInstance(windowScope)
|
private val terminalPanelFactory = TerminalPanelFactory.getInstance()
|
||||||
private val terminal by lazy {
|
private val terminal by lazy {
|
||||||
TerminalFactory.getInstance(windowScope).createTerminal().apply {
|
TerminalFactory.getInstance().createTerminal().apply {
|
||||||
getTerminalModel().setData(DataKey.ShowCursor, false)
|
getTerminalModel().setData(DataKey.ShowCursor, false)
|
||||||
getTerminalModel().setData(DataKey.AutoNewline, true)
|
getTerminalModel().setData(DataKey.AutoNewline, true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,13 +41,13 @@ class FloatingToolbarPanel : FlatToolBar(), Disposable {
|
|||||||
actionListeners.forEach { it.actionPerformed(evt) }
|
actionListeners.forEach { it.actionPerformed(evt) }
|
||||||
|
|
||||||
if (isSelected) {
|
if (isSelected) {
|
||||||
TerminalPanelFactory.getAllTerminalPanel().forEach {
|
TerminalPanelFactory.getInstance().getTerminalPanels().forEach {
|
||||||
it.getData(FloatingToolbar)?.triggerShow()
|
it.getData(FloatingToolbar)?.triggerShow()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 触发者的不隐藏
|
// 触发者的不隐藏
|
||||||
val c = evt.getData(FloatingToolbar)
|
val c = evt.getData(FloatingToolbar)
|
||||||
TerminalPanelFactory.getAllTerminalPanel().forEach {
|
TerminalPanelFactory.getInstance().getTerminalPanels().forEach {
|
||||||
val e = it.getData(FloatingToolbar)
|
val e = it.getData(FloatingToolbar)
|
||||||
if (c != e) {
|
if (c != e) {
|
||||||
e?.triggerHide()
|
e?.triggerHide()
|
||||||
|
|||||||
Reference in New Issue
Block a user