1 | package clarin.cmdi.componentregistry.editor { |
---|
2 | import clarin.cmdi.componentregistry.common.StyleConstants; |
---|
3 | |
---|
4 | import flash.events.Event; |
---|
5 | |
---|
6 | import mx.binding.utils.BindingUtils; |
---|
7 | import mx.containers.FormItem; |
---|
8 | import mx.controls.TextInput; |
---|
9 | import mx.events.FlexEvent; |
---|
10 | import mx.events.ValidationResultEvent; |
---|
11 | import mx.validators.Validator; |
---|
12 | |
---|
13 | public class FormItemInputLine extends FormItem implements CMDValidator { |
---|
14 | |
---|
15 | public var editField:TextInput = new TextInput(); |
---|
16 | |
---|
17 | private var _validator:Validator; |
---|
18 | |
---|
19 | public function FormItemInputLine(name:String, value:String, bindingFunction:Function, editable:Boolean = true, validator:Validator = null) { |
---|
20 | super(); |
---|
21 | label = name; |
---|
22 | styleName = StyleConstants.XMLBROWSER_FIELD; |
---|
23 | editField.styleName = StyleConstants.XMLEDITOR_EDIT_FIELD; |
---|
24 | editField.width = 300; |
---|
25 | editField.text = value; |
---|
26 | editField.editable = editable; |
---|
27 | BindingUtils.bindSetter(bindingFunction, editField, "text"); |
---|
28 | if (validator) { |
---|
29 | _validator = validator; |
---|
30 | _validator.listener = this.editField; |
---|
31 | } |
---|
32 | } |
---|
33 | |
---|
34 | public function validate():Boolean { |
---|
35 | if (_validator && this.visible) { |
---|
36 | var result:ValidationResultEvent = _validator.validate(this.editField.text); |
---|
37 | return result.type == ValidationResultEvent.VALID; |
---|
38 | } |
---|
39 | return true; |
---|
40 | } |
---|
41 | |
---|
42 | protected override function createChildren():void { |
---|
43 | super.createChildren(); |
---|
44 | addChild(editField); |
---|
45 | } |
---|
46 | |
---|
47 | } |
---|
48 | } |
---|