[Event(name="change", type="mx.events.ListEvent")] ") .appendChild(_editor.data); } collection.addItem(newItem); addCancel(); _editor.update(collection.list); if(!_editor.hasContent()) { addButton.enabled = false; } this.dispatchEvent(new ListEvent("change")); } } private function addCancel():void { addBox.visible = false; addBox.enabled = false; addBox.includeInLayout = false; addButton.enabled = true; removeButton.enabled = list.selectedItem != null; list.enabled = true; } override protected function createChildren():void { super.createChildren(); _editor = _editorFactory.newInstance(); subContainer.addChild(_editor); } private function listChanged():void { if(list.editable) { dispatchEvent(new ListEvent('change')) } } private function init():void { list.addEventListener(ListEvent.ITEM_EDIT_END, function():void { if(list.itemEditorInstance is EditableListEditor && EditableListEditor(list.itemEditorInstance).isValid()) { XML(list.selectedItem).setChildren(list.itemEditorInstance.data); listChanged(); } }); } public function get firstItem():String { if(collection.length == 0) { return ""; } else { return collection.children()[0]; } } private function invalid():void { setStyle("oldBorderStyle", getStyle("borderStyle")); setStyle("oldBorderColor", getStyle("borderColor")); setStyle("borderStyle", "solid"); setStyle("borderColor", getStyle("errorColor")); } private function valid():void { setStyle("borderStyle", getStyle("oldBorderStyle")); setStyle("borderColor", getStyle("oldBorderColor")); } ]]>