 		if(!enabled)
             return;
         
-        if (event.ctrlKey && event.keyCode == Keyboard.DOWN)
-        {
-            openDropDown();
-            event.stopPropagation();
-        }
-        else if (event.ctrlKey && event.keyCode == Keyboard.UP)
-        {
-            closeDropDown(true);
-            event.stopPropagation();
-        }    
-        else if (event.keyCode == Keyboard.ENTER)
-        {
-            // Close the dropDown and eat the event if appropriate.
-            if (isOpen)
-            {
-                closeDropDown(true);
-                event.stopPropagation();
-            }
-        }
-        else if (event.keyCode == Keyboard.ESCAPE)
-        {
-            // Close the dropDown and eat the event if appropriate.
-            if (isOpen)
-            {
-                closeDropDown(false);
-                event.stopPropagation();
-            }
-        }
-        else 
-        {
-        	//trace("DropDownList.keyDownHandler arrow key isOpen",isOpen);
-        	// TODO (jszeto) Check if we need dataGroup skin during this event
+        if (!dropDownController.keyDownHandler(event))
         	super.list_keyDownHandler(event);
-        }         
+
 	}
 	
 	/**

 
 		if (instance == button)
    	{
    		// TODO (jszeto) Change this to be mouseDown. Figure out how to not 
    		// trigger systemManager_mouseDown.
    		button.addEventListener(FlexEvent.BUTTON_DOWN, button_buttonDownHandler);
    		button.enabled = enabled;
    	}
    }
    
    /**

     */ 
    public function openDropDown():void
    {
    	dropDownController.openDropDown();
    }
	
	 /**
