 /**
  *  Documentation is not currently available.
  */
-public class FxTextBase extends FxComponent
+public class FxTextBase extends FxComponent implements IFocusManagerComponent
 {
     include "../../core/Version.as";
 

		return _selectionAnchorPosition;
	}

	/**
	 *  @private
	 */
	public function set selectionAnchorPosition(value:int):void
	{
		if (value == _selectionAnchorPosition)
			return;
		
		_selectionAnchorPosition = value;
		selectionAnchorPositionChanged = true;

		invalidateProperties();

		dispatchEvent(new FlexEvent(FlexEvent.SELECTION_CHANGE));
	}

    //----------------------------------
	//  text
    //----------------------------------

		}
	}
    
    /**
     *  @private
     *  Focus should always be on the internal TextView.
     */
    override public function setFocus():void
    {
        textView.setFocus();
    }

    /**
     *  @private
     */
    override protected function isOurFocus(target:DisplayObject):Boolean
    {
        return target == textView || super.isOurFocus(target);
    }

    /**
     *  @private
     *  Forward the drawFocus to the parent, if requested.
     */
    override public function drawFocus(isFocused:Boolean):void
    {
        if (mx_internal::parentDrawsFocus)
        {
            IFocusManagerComponent(parent).drawFocus(isFocused);
            return;
        }

        super.drawFocus(isFocused);
    }
    
	//--------------------------------------------------------------------------
    //
    //  Methods
    //
    //--------------------------------------------------------------------------

	/**
	 *  Documentation is not currently available.
	 */
    public function setSelection(anchorIndex:int = 0,
                                 activeIndex:int = int.MAX_VALUE):void
    {
        if (!textView)
            return;

        textView.setSelection(anchorIndex, activeIndex);
    }

	/**
	 *  Documentation is not currently available.
	 */
    public function insertText(text:String):void
    {
        if (!textView)
            return;

        textView.insertText(text);
    }

	/**
	 *  Documentation is not currently available.
	 */
    public function appendText(text:String):void
    {
        if (!textView)
            return;

        textView.appendText(text);
    }

    //--------------------------------------------------------------------------
    //
    //  Overridden event handlers
    //
    //--------------------------------------------------------------------------

    /**
     *  @private
     */
    override protected function focusInHandler(event:FocusEvent):void
    {
        // An editable TCAL Sprite has the concept of "no selection",
        // represented by (-1, -1), even when the Sprite has focus.
        // But then no insertion point blinks and you can't enter any text.
        // So if this component is in that state when it takes focus,
        // it changes the selection to (0, 0).
        if (selectionAnchorPosition == -1 && selectionActivePosition == -1)
            setSelection(0, 0);
        
        super.focusInHandler(event);
    }

	//--------------------------------------------------------------------------
    //
    //  Event handlers
