     public function get styleParent():IAdvancedStyleClient
     {
         return parent as IAdvancedStyleClient;
+    }
+
+    /**
+     *  Apply state-specific styles to this component. If there is a chance
+     *  of a matching CSS pseudo-selector for the current state, the style
+     *  cache needs to be regenerated for this instance and, potentially all
+     *  children, if the recursive param is set to true.
+     */
+    public function applyStateStyles(oldState:String, newState:String, recursive:Boolean):void
+    {
+        if (pseudoSelectorState && oldState != newState &&
+               (StyleManager.hasPseudoSelector(oldState) ||
+                StyleManager.hasPseudoSelector(newState)))
+        {
+            regenerateStyleCache(recursive);
+            initThemeColor();
+            styleChanged(null);
+            notifyStyleChangeInChildren(null, recursive);
+        }
     }
 
     /**

        removeState(_currentState, commonBaseState);
        _currentState = requestedCurrentState;

        // Update styles
        //if (StyleManager.hasPseudoSelector(className))
        //   regenerateStyleCache(false);

        // If we're going back to the base state, dispatch an
        // enter state event, otherwise apply the state.

     *
     *  <p>You should not need to call or override this method.</p>
     *
     *  @param recursive Recursively regenerates the style cache for
     *  all children of this component.
     */
    public function regenerateStyleCache(recursive:Boolean):void
