Files
termora/src/main/kotlin/app/termora/PropertyTerminalTab.kt
2025-01-02 10:51:54 +08:00

32 lines
776 B
Kotlin

package app.termora
import java.beans.PropertyChangeEvent
import java.beans.PropertyChangeListener
abstract class PropertyTerminalTab : TerminalTab {
protected val listeners = mutableListOf<PropertyChangeListener>()
var hasFocus = false
protected set
override fun addPropertyChangeListener(listener: PropertyChangeListener) {
listeners.add(listener)
}
override fun removePropertyChangeListener(listener: PropertyChangeListener) {
listeners.remove(listener)
}
protected fun firePropertyChange(event: PropertyChangeEvent) {
listeners.forEach { l -> l.propertyChange(event) }
}
override fun onGrabFocus() {
hasFocus = true
}
override fun onLostFocus() {
hasFocus = false
}
}