1  /*
     2   Copyright aswing.org, see the LICENCE.txt.
     3  */
     4  
     5  import org.aswing.*;
     6  import org.aswing.plaf.*;
     7   
     8  /**
     9   * Basic Panel implementation.
    10   * To implement a Diff Panel UI, generally you should:
    11   * <ul>
    12   * 	<li>initialize differnt UI defaults for buttons in your LAF class, for example: Button.border, 
    13   * 	Button.font, ToggleButton.backgound XXXButton.foreground...
    14   * </ul>
    15   * @author iiley
    16   */
    17  class org.aswing.plaf.basic.BasicPanelUI extends PanelUI{
    18  
    19      // Shared UI object
    20      private static var panelUI:PanelUI;
    21  
    22      public static function createInstance(c:Component):ComponentUI {
    23  		if(panelUI == null) {
    24              panelUI = new BasicPanelUI();
    25  		}
    26          return panelUI;
    27      }
    28      
    29      public function installUI(c:Component):Void {
    30          var p:JPanel = JPanel(c);
    31          installDefaults(p);
    32      }
    33  
    34      public function uninstallUI(c:Component):Void {
    35          var p:JPanel = JPanel(c);
    36          uninstallDefaults(p);
    37      }
    38  
    39      private function installDefaults(p:JPanel):Void {
    40      	var pp:String = "Panel.";
    41          LookAndFeel.installColorsAndFont(p, pp + "background", pp + "foreground", pp + "font");
    42          LookAndFeel.installBorder(p, "Panel.border");
    43          LookAndFeel.installBasicProperties(p, pp);
    44      }
    45  
    46      private function uninstallDefaults(p:JPanel):Void {
    47          LookAndFeel.uninstallBorder(p);
    48      }
    49  }
    50