Initial commit of newLISP.
[newlisp.git] / guiserver / java / LabelWidget.java
blobcdd0aec85fa093b33678a66632e0a8465d922f07
1 //
2 // LabelWidget.java
3 // guiserver
4 //
5 // Created by Lutz Mueller on 5/14/07.
6 //
7 //
8 // Copyright (C) 2007 Lutz Mueller
9 //
10 // This program is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
20 // You should have received a copy of the GNU General Public License
21 // along with this program. If not, see <http://www.gnu.org/licenses/>.
25 import java.lang.*;
26 import java.awt.*;
27 import javax.swing.*;
28 import java.util.*;
30 public class LabelWidget extends gsObject {
32 JLabel label;
34 @SuppressWarnings("unchecked")
35 public LabelWidget(StringTokenizer params)
37 label = new JLabel();
38 jcomponent = label;
39 component = label;
40 container = label;
42 id = params.nextToken();
43 String align = "center";
44 if(params.hasMoreTokens())
45 label.setText(Base64Coder.decodeString(params.nextToken()));
47 if(params.hasMoreTokens())
48 align = params.nextToken();
50 if(align.equals("left")) label.setHorizontalAlignment(JLabel.LEFT);
51 else if(align.equals("center")) label.setHorizontalAlignment(JLabel.CENTER);
52 else if(align.equals("right")) label.setHorizontalAlignment(JLabel.RIGHT);
53 else if(align.equals("leading")) label.setHorizontalAlignment(JLabel.LEADING);
54 else if(align.equals("trailing")) label.setHorizontalAlignment(JLabel.TRAILING);
55 else if(align.equals("bottom")) label.setVerticalAlignment(JLabel.BOTTOM);
56 else if(align.equals("top")) label.setVerticalAlignment(JLabel.TOP);
58 if(params.hasMoreTokens())
60 int width = Integer.parseInt(params.nextToken());
61 int height = Integer.parseInt(params.nextToken());
62 jcomponent.setPreferredSize(new Dimension(width, height));
65 gsObject.widgets.put(id, this);
70 public void setText(StringTokenizer tokens)
72 String text = Base64Coder.decodeString(tokens.nextToken());
73 label.setText(text);
76 public void getText(StringTokenizer params)
78 String action = params.nextToken();
79 String text = label.getText();
80 if(text.length() == 0)
81 guiserver.out.println("(" + action + " \"" + id + "\")");
82 else
83 guiserver.out.println("(" + action + " \"" + id + "\" [text]" + Base64Coder.encodeString(text) + "[/text])");
84 guiserver.out.flush();
87 public void appendText(StringTokenizer tokens)
89 String text = Base64Coder.decodeString(tokens.nextToken());
90 String oldtext = label.getText();
91 label.setText(oldtext + text);
94 public void clearText(StringTokenizer tokens)
96 label.setText("");
99 public void setIcon(StringTokenizer tokens)
101 String path = Base64Coder.decodeString(tokens.nextToken());
102 label.setIcon(guiserver.getIconFromPath(path, this.getClass()));
108 // eof //