home *** CD-ROM | disk | FTP | other *** search
- package mug.ui;
-
- import java.awt.Canvas;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.util.StringTokenizer;
-
- public class MultiLineLabel extends Canvas {
- public static final int LEFT = 0;
- public static final int CENTER = 1;
- public static final int RIGHT = 2;
- private static final String DELIM = "\n\r";
- private static final int GAP = 2;
- private String _text;
- private int _alignment;
-
- public MultiLineLabel() {
- }
-
- public MultiLineLabel(String var1) {
- this._text = var1;
- }
-
- public MultiLineLabel(String var1, int var2) {
- this._text = var1;
- this._alignment = var2;
- }
-
- public String getText() {
- return this._text;
- }
-
- public void setText(String var1) {
- this._text = var1;
- ((Component)this).repaint();
- }
-
- public int getAlignment() {
- return this._alignment;
- }
-
- public void setAlignment(int var1) {
- this._alignment = var1;
- ((Component)this).repaint();
- }
-
- public Dimension preferredSize() {
- int var1 = 0;
- int var2 = 0;
- if (this._text != null) {
- FontMetrics var3 = ((Component)this).getFontMetrics(((Component)this).getFont());
- StringTokenizer var4 = new StringTokenizer(this._text, "\n\r");
-
- String var5;
- for(var1 = var4.countTokens() * var3.getHeight(); var4.hasMoreTokens(); var2 = Math.max(var2, var3.stringWidth(var5))) {
- var5 = var4.nextToken();
- }
- }
-
- return new Dimension(var2 + 4, var1 + 4);
- }
-
- public Dimension minimumSize() {
- return this.preferredSize();
- }
-
- public void paint(Graphics var1) {
- if (this._text != null) {
- Dimension var2 = ((Component)this).size();
- FontMetrics var3 = ((Component)this).getFontMetrics(((Component)this).getFont());
- StringTokenizer var4 = new StringTokenizer(this._text, "\n\r");
- int var5 = 2;
-
- for(int var6 = (var2.height - var4.countTokens() * var3.getHeight()) / 2 + var3.getAscent() + 2; var4.hasMoreTokens(); var6 += var3.getHeight()) {
- String var7 = var4.nextToken();
- if (this._alignment == 1) {
- var5 = (var2.width - var3.stringWidth(var7)) / 2;
- } else if (this._alignment == 2) {
- var5 = var2.width - var3.stringWidth(var7) - 2;
- }
-
- var1.drawString(var7, var5, var6);
- }
- }
-
- }
- }
-