blob: 3be31809d7bc8310dd2d60f1d3bd57a8a5816bd5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
package scala.swing
import javax.swing._
import javax.swing.text._
import javax.swing.event._
import event._
object TextComponent {
trait HasColumns extends TextComponent {
def columns: Int
def columns_=(n: Int)
}
trait HasRows extends TextComponent {
def rows: Int
def rows_=(n: Int)
}
}
/**
* A component that allows some kind of text input and display.
*
* @see javax.swing.JTextComponent
*/
class TextComponent extends Component with Publisher {
override lazy val peer: JTextComponent = new JTextComponent with SuperMixin {}
def text: String = peer.getText
def text_=(t: String) = peer.setText(t)
class Caret extends Publisher {
def dot: Int = peer.getCaret.getDot
def dot_=(n: Int) { peer.getCaret.setDot(n) }
def mark: Int = peer.getCaret.getMark
def moveDot(n: Int) { peer.getCaret.moveDot(n) }
def visible: Boolean = peer.getCaret.isVisible
def visible_=(b: Boolean) { peer.getCaret.setVisible(b) }
def selectionVisible: Boolean = peer.getCaret.isSelectionVisible
def selectionVisible_=(b: Boolean) { peer.getCaret.setSelectionVisible(b) }
def blinkRate: Int = peer.getCaret.getBlinkRate
def blinkRate_=(n: Int) { peer.getCaret.setBlinkRate(n) }
peer.addCaretListener {
new CaretListener {
def caretUpdate(e: CaretEvent) { publish(CaretUpdate(TextComponent.this)) }
}
}
}
object caret extends Caret
def editable: Boolean = peer.isEditable
def editable_=(x: Boolean) = peer.setEditable(x)
def cut() { peer.cut() }
def copy() { peer.copy() }
def selected: String = peer.getSelectedText
def selectAll() { peer.selectAll() }
peer.getDocument.addDocumentListener(new DocumentListener {
def changedUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
def insertUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
def removeUpdate(e:DocumentEvent) { publish(ValueChanged(TextComponent.this)) }
})
}
|