/
TextLabelTrait.hx
43 lines (37 loc) · 924 Bytes
/
TextLabelTrait.hx
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
package guise.platform.html.display;
import composure.traits.AbstractTrait;
import guise.controls.data.ITextLabel;
import js.Lib;
import js.Dom;
/**
* ...
* @author Tom Byrne
*/
class TextLabelTrait extends AbstractTrait
{
@inject
public var textLabel(default, set_textLabel):ITextLabel;
private function set_textLabel(value:ITextLabel):ITextLabel {
if (textLabel!=null) {
textLabel.textChanged.remove(onTextChanged);
}
textLabel = value;
if (textLabel!=null) {
textLabel.textChanged.add(onTextChanged);
onTextChanged(textLabel);
}
return value;
}
public var domElement(get_domElement, null):HtmlDom;
private function get_domElement():HtmlDom {
return _domElement;
}
private var _domElement:HtmlDom;
public function new(domElement:HtmlDom){
super();
_domElement = domElement;
}
private function onTextChanged(from:ITextLabel):Void {
_domElement.innerHTML = from.text;
}
}