1  
     2  import org.aswing.ASColor;
     3  import org.aswing.Component;
     4  import org.aswing.geom.Dimension;
     5  import org.aswing.geom.Rectangle;
     6  import org.aswing.graphices.GradientBrush;
     7  import org.aswing.graphices.Graphics;
     8  import org.aswing.graphices.SolidBrush;
     9  import org.aswing.plaf.basic.BasicTextComponentUI;
    10  import org.aswing.plaf.ComponentUI;
    11  import org.aswing.UIManager;
    12  
    13  
    14  /**
    15   * @author Tomato, iiley
    16   */
    17  class org.aswing.plaf.basic.BasicTextFieldUI extends BasicTextComponentUI {
    18  	
    19  	private static var textUI:BasicTextFieldUI;
    20  	private var highlight:ASColor;
    21  	private var shadow:ASColor;
    22  	
    23  	public static function createInstance(c:Component):ComponentUI {
    24  		if(textUI == null){
    25  			textUI = new BasicTextFieldUI();
    26  		}
    27  		return textUI;
    28  	}
    29  	
    30  	public function BasicTextFieldUI(){
    31  		super();
    32  		highlight = UIManager.getColor("TextField.highlight");
    33  		shadow = UIManager.getColor("TextField.shadow");
    34  	}
    35  	
    36  	
    37  	//override this to the sub component's prefix
    38      private function getPropertyPrefix():String {
    39          return "TextField.";
    40      }
    41  	
    42      private function paintBackGround(c:Component, g:Graphics, r:Rectangle):Void{
    43      	if(c.isOpaque() && c.isEnabled()){
    44  			var x:Number = r.x;
    45  			var y:Number = r.y;
    46  			var w:Number = r.width;
    47  			var h:Number = r.height;
    48  			g.fillRectangle(new SolidBrush(c.getBackground()), x,y,w,h);
    49  			
    50  			var colors:Array = [0xF7F7F7, c.getBackground().getRGB()];
    51  			var alphas:Array = [50, 0];
    52  			var ratios:Array = [0, 100];
    53  			var matrix:Object = {matrixType:"box", x:x, y:y, w:w, h:h, r:(90/180)*Math.PI};        
    54  		    var brush:GradientBrush=new GradientBrush(GradientBrush.LINEAR, colors, alphas, ratios, matrix);
    55  		    g.fillRectangle(brush,x,y,w,h);
    56  		    
    57      	}
    58      	
    59      }
    60      
    61      /**
    62       * Return null, make it to count in JTextFiled's countPreferredSize method.
    63       */
    64      public function getPreferredSize(c:Component):Dimension{
    65      	return null;
    66      }    
    67  }