 import mx.collections.IList;
 import mx.core.EventPriority;
 import mx.core.IFactory;
+import mx.core.INavigatable;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
+import mx.events.FlexEvent;
 import mx.managers.IFocusManagerComponent;
 
 use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal

    override public function set dataProvider(value:IList):void
    {
        if (dataProvider)
            dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, resetCollectionChangeHandler);
    
        // not really a default handler, we just want it to run after the datagroup
        if (value)
            value.addEventListener(CollectionEvent.COLLECTION_CHANGE, resetCollectionChangeHandler, false, EventPriority.DEFAULT_HANDLER);

        super.dataProvider = value;
    }

    /**

            setCurrentCaretIndex(index);
            renderer.selected = selected;
        }
        if (dataProvider is INavigatable && selected)
            INavigatable(dataProvider).selectedIndex = index;
    }
        
    /**
