1
4
5 import org.aswing.Component;
6 import org.aswing.geom.Dimension;
7 import org.aswing.geom.Rectangle;
8 import org.aswing.graphices.AdvancedPen;
9 import org.aswing.graphices.Graphics;
10 import org.aswing.Insets;
11 import org.aswing.JSeparator;
12 import org.aswing.LookAndFeel;
13 import org.aswing.plaf.ComponentUI;
14 import org.aswing.plaf.SeparatorUI;
15
16
22 class org.aswing.plaf.basic.BasicSeparatorUI extends SeparatorUI {
23
24
25 private static var basicSeparatorUI:BasicSeparatorUI;
26
27
28
29 public static function createInstance(c:Component):ComponentUI {
30 if(basicSeparatorUI == null){
31 basicSeparatorUI = new BasicSeparatorUI();
32 }
33 return basicSeparatorUI;
34 }
35
36
37 public function BasicSeparatorUI(){
38 }
39
40 public function installUI(c:Component):Void{
41 installDefaults(JSeparator(c));
42 installListeners(JSeparator(c));
43 }
44
45 public function uninstallUI(c:Component):Void{
46 uninstallDefaults(JSeparator(c));
47 uninstallListeners(JSeparator(c));
48 }
49
50 public function installDefaults(s:JSeparator):Void{
51 LookAndFeel.installColors(s, "Separator.background", "Separator.foreground");
52 LookAndFeel.installBasicProperties(s, "Separator.");
53 LookAndFeel.installBorder(s, "Separator.border");
54 }
55
56 public function uninstallDefaults(s:JSeparator):Void{
57 LookAndFeel.uninstallBorder(s);
58 }
59 public function installListeners(s:JSeparator):Void{
60 }
61 public function uninstallListeners(s:JSeparator):Void{
62 }
63
64 public function paint(c:Component, g:Graphics, b:Rectangle):Void{
65 var sp:JSeparator = JSeparator(c);
66 if (sp.getOrientation() == JSeparator.VERTICAL){
67 var pen:AdvancedPen = new AdvancedPen(c.getForeground(), 1, undefined, undefined, "none");
68 g.drawLine(pen, b.x+0.5, b.y, b.x+0.5, b.y+b.height);
69 pen.setASColor(c.getBackground());
70 g.drawLine(pen, b.x+1.5, b.y, b.x+1.5, b.y+b.height);
71 }else{
72 var pen:AdvancedPen = new AdvancedPen(c.getForeground(), 1, undefined, undefined, "none");
73 g.drawLine(pen, b.x, b.y+0.5, b.x+b.width, b.y+0.5);
74 pen.setASColor(c.getBackground());
75 g.drawLine(pen, b.x, b.y+1.5, b.x+b.width, b.y+1.5);
76 }
77 }
78
79 public function getPreferredSize(c:Component):Dimension{
80 var sp:JSeparator = JSeparator(c);
81 var insets:Insets = sp.getInsets();
82 if (sp.getOrientation() == JSeparator.VERTICAL){
83 return insets.roundsSize(new Dimension(2, 0));
84 }else{
85 return insets.roundsSize(new Dimension(0, 2));
86 }
87 }
88 public function getMaximumSize(c:Component):Dimension{
89 var sp:JSeparator = JSeparator(c);
90 var insets:Insets = sp.getInsets();
91 var size:Dimension = insets.roundsSize();
92 if (sp.getOrientation() == JSeparator.VERTICAL){
93 return new Dimension(2 + size.width, Number.MAX_VALUE);
94 }else{
95 return new Dimension(Number.MAX_VALUE, 2 + size.height);
96 }
97 }
98 }
99