 	import flash.display.DisplayObjectContainer;
 	import flash.events.Event;
 	import flash.events.FocusEvent;
+	import flash.events.IEventDispatcher;
 	import flash.events.KeyboardEvent;
 	import flash.ui.Keyboard;
 	
 	import mx.collections.ArrayCollection;
 	import mx.collections.ArrayList;
 	import mx.collections.IList;
+	import mx.collections.ListCollectionView;
 	import mx.core.FlexGlobals;
 	import mx.core.mx_internal;
 	import mx.events.CollectionEvent;

            }
            
            if (instance == list) {
                list.dataProvider = _collection;
                list.labelField = labelField;
                list.labelFunction = labelFunction;
                list.searchMode = searchMode;

        }                
        
        protected function filterData() : void {
            if (_collection) {
                _collection.filterFunction = filterFunction;                        	
                _collection.refresh();
            }
        }
        
        protected function itemToLabel(item : Object) : String {
