  *  @playerversion AIR 2.5 
  *  @productversion Flex 4.5
  */
- public class TextAreaSkin extends MobileSkin 
- {      
-     //--------------------------------------------------------------------------
-     //
-     //  Class statics
-     //
-     //--------------------------------------------------------------------------
-     private static const HORIZONTAL_PADDING:int = 8;
-     private static const VERTICAL_PADDING:int = 12;
-     private static const TEXT_HEIGHT_PADDING:int = 6;
-     private static const CORNER_ELLIPSE_SIZE:uint = 16;
-     
-     //--------------------------------------------------------------------------
-     //
-     //  Constructor
-     //
-     //--------------------------------------------------------------------------
+public class TextAreaSkin extends TextSkinBase 
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
     public function TextAreaSkin()
     {
         super();

        // is not true: setting an explicit height will not adjust the width accordingly.
        textDisplay.commitStyles();
        measuredWidth = 440;
        measuredHeight = Math.max(textDisplay.textHeight + (VERTICAL_PADDING * 2), 55);
    }
    
    /**
     *  @private
     */
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);

        // Draw the contentBackgroundColor
        graphics.clear();
        graphics.beginFill(getStyle("contentBackgroundColor"), getStyle("contentBackgroundAlpha"));
    	graphics.drawRoundRect(1, 1, unscaledWidth - 2, unscaledHeight - 2, CORNER_ELLIPSE_SIZE, CORNER_ELLIPSE_SIZE);
        graphics.endFill();

        // position & size border
        resizePart(border, unscaledWidth, unscaledHeight);
        positionPart(border, 0, 0);

        // position & size the text
        textDisplay.commitStyles();
        resizePart(textDisplay, unscaledWidth - (HORIZONTAL_PADDING * 2), unscaledHeight - (VERTICAL_PADDING * 2) + TEXT_HEIGHT_PADDING);
        positionPart(textDisplay, HORIZONTAL_PADDING, VERTICAL_PADDING); 
    }

    /**
     *  @private
     */
    override public function styleChanged(styleProp:String):void
    {
        if (textDisplay)
            textDisplay.styleChanged(styleProp);
        super.styleChanged(styleProp);
    }
	
	/**
	 *  @private
	 */
	override protected function commitCurrentState():void
	{
		super.commitCurrentState();
		
		if (currentState == "normal")
			alpha = 1;
		else
			alpha = 0.5;
	}
    
    /**
     *  @private


package spark.skins.mobile 
{

import flash.events.Event;

import mx.core.mx_internal;
import mx.events.FlexEvent;

import spark.components.TextArea;
import spark.skins.mobile.supportClasses.TextSkinBase;

use namespace mx_internal;

/**
 *  Actionscript based skin for mobile text input. 
