1
4 import org.aswing.ASWingConstants;
5 import org.aswing.Component;
6 import org.aswing.GrayFilteredIcon;
7 import org.aswing.Icon;
8 import org.aswing.plaf.LabelUI;
9 import org.aswing.UIManager;
10 import org.aswing.utils.StringUtils;
11
12
16 class org.aswing.JLabel extends Component {
17
18
22 public static var CENTER:Number = ASWingConstants.CENTER;
23
27 public static var TOP:Number = ASWingConstants.TOP;
28
32 public static var LEFT:Number = ASWingConstants.LEFT;
33
37 public static var BOTTOM:Number = ASWingConstants.BOTTOM;
38
42 public static var RIGHT:Number = ASWingConstants.RIGHT;
43
47 public static var HORIZONTAL:Number = ASWingConstants.HORIZONTAL;
48
52 public static var VERTICAL:Number = ASWingConstants.VERTICAL;
53
54
55 private var icon:Icon;
56 private var text:String;
57 private var disabledIcon:Icon;
58
59
60 private var verticalAlignment:Number;
61 private var horizontalAlignment:Number;
62
63 private var verticalTextPosition:Number;
64 private var horizontalTextPosition:Number;
65
66 private var iconTextGap:Number;
67
68
78 function JLabel(text, icon, horizontalAlignment:Number) {
79 super();
80 setName("JLabel");
81
82 this.verticalAlignment = CENTER;
83 this.horizontalAlignment = CENTER;
84 this.verticalTextPosition = CENTER;
85 this.horizontalTextPosition = RIGHT;
86
87 iconTextGap = 0;
88
89 if(text == undefined){
90 if(icon != null){
91 this.icon = Icon(icon);
92 if(horizontalAlignment != undefined){
93 this.horizontalAlignment = horizontalAlignment;
94 }
95 }
96 }else if(horizontalAlignment != undefined){
97 this.horizontalAlignment = horizontalAlignment;
98 this.text = StringUtils.castString(text);
99 this.icon = Icon(icon);
100 }else if(text instanceof Icon){
101 this.text = null;
102 this.icon = Icon(text);
103 if(icon != undefined){
104 this.horizontalAlignment = Number(icon);
105 }
106 }else{
107 this.text = StringUtils.castString(text);
108 if(icon != undefined){
109 if(icon instanceof Icon){
110 this.icon = Icon(icon);
111 }else{
112 this.horizontalAlignment = Number(icon);
113 }
114 }
115 }
116
117 updateUI();
118 }
119
120 public function updateUI():Void{
121 setUI(LabelUI(UIManager.getUI(this)));
122 }
123
124 public function setUI(newUI:LabelUI):Void{
125 super.setUI(newUI);
126 }
127
128 public function getUIClassID():String{
129 return "LabelUI";
130 }
131
132
139 public function setContent(text:String, icon:Icon):Void{
140 if(this.text != text){
141 this.text = text;
142 }
143 if(this.icon != icon){
144 uninstallIconWhenNextPaint(this.icon);
145 this.icon = icon;
146 }
147 repaint();
148 invalidate();
149 }
150
151 public function setText(text:String):Void{
152 if(this.text != text){
153 this.text = text;
154 repaint();
155 invalidate();
156 }
157 }
158
159 public function getText():String{
160 return text;
161 }
162
163 public function setIcon(icon:Icon):Void{
164 if(this.icon != icon){
165 uninstallIconWhenNextPaint(this.icon);
166 this.icon = icon;
167 repaint();
168 invalidate();
169 }
170 }
171
172 public function getIcon():Icon{
173 return icon;
174 }
175
176
189 public function getDisabledIcon():Icon {
190 if(disabledIcon == null) {
191 if(icon != null) {
192 disabledIcon = new GrayFilteredIcon(icon);
193 }
194 }
195 return disabledIcon;
196 }
197
198
204 public function setDisabledIcon(disabledIcon:Icon):Void {
205 var oldValue:Icon = this.disabledIcon;
206 this.disabledIcon = disabledIcon;
207 if (disabledIcon != oldValue) {
208 uninstallIconWhenNextPaint(oldValue);
209 if (!isEnabled()) {
210 repaint();
211 invalidate();
212 }
213 }
214 }
215
216
227 public function getVerticalAlignment():Number {
228 return verticalAlignment;
229 }
230
231
240 public function setVerticalAlignment(alignment:Number):Void {
241 if (alignment == verticalAlignment){
242 return;
243 }else{
244 verticalAlignment = alignment;
245 repaint();
246 }
247 }
248
249
259 public function getHorizontalAlignment():Number{
260 return horizontalAlignment;
261 }
262
263
272 public function setHorizontalAlignment(alignment:Number):Void {
273 if (alignment == horizontalAlignment){
274 return;
275 }else{
276 horizontalAlignment = alignment;
277 repaint();
278 }
279 }
280
281
282
292 public function getVerticalTextPosition():Number{
293 return verticalTextPosition;
294 }
295
296
305 public function setVerticalTextPosition(textPosition:Number):Void {
306 if (textPosition == verticalTextPosition){
307 return;
308 }else{
309 verticalTextPosition = textPosition;
310 repaint();
311 }
312 }
313
314
324 public function getHorizontalTextPosition():Number {
325 return horizontalTextPosition;
326 }
327
328
337 public function setHorizontalTextPosition(textPosition:Number):Void {
338 if (textPosition == horizontalTextPosition){
339 return;
340 }else{
341 horizontalTextPosition = textPosition;
342 repaint();
343 }
344 }
345
346
354 public function getIconTextGap():Number {
355 return iconTextGap;
356 }
357
358
366 public function setIconTextGap(iconTextGap:Number):Void {
367 var oldValue:Number = this.iconTextGap;
368 this.iconTextGap = iconTextGap;
369 if (iconTextGap != oldValue) {
370 revalidate();
371 repaint();
372 }
373 }
374
375 }
376