01: /*
02: * Beryl - A web platform based on XML, XSLT and Java
03: * This file is part of the Beryl XML GUI
04: *
05: * Copyright (C) 2004 Wenzel Jakob <wazlaf@tigris.org>
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License as published by the Free Software Foundation; either
10: * version 2.1 of the License, or (at your option) any later version.
11:
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this program; if not, write to the Free Software
19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-3107 USA
20: */
21:
22: package org.beryl.gui.widgets;
23:
24: import java.awt.Color;
25: import java.awt.Component;
26:
27: import javax.swing.ImageIcon;
28: import javax.swing.JLabel;
29: import javax.swing.JToolTip;
30:
31: import org.beryl.gui.GUIException;
32: import org.beryl.gui.ImageIconFactory;
33: import org.beryl.gui.Widget;
34: import org.beryl.gui.WidgetInfo;
35: import org.beryl.gui.XMLUtils;
36:
37: public class Label extends Widget {
38: protected static WidgetInfo labelInfo = null;
39: private JLabel label = null;
40:
41: static {
42: labelInfo = new WidgetInfo(Label.class, widgetInfo);
43: labelInfo.addProperty("horizontalAlignment", "enum", "center");
44: labelInfo.addProperty("verticalAlignment", "enum", "center");
45: labelInfo.addProperty("text", "istring", "");
46: try {
47: labelInfo.addProperty("icon", "icon", ImageIconFactory
48: .getIcon("broken"));
49: } catch (Exception e) {
50: throw new RuntimeException(e);
51: }
52: };
53:
54: public Label(Widget parent, String name) throws GUIException {
55: super (parent, name);
56: label = new JLabel() {
57: public JToolTip createToolTip() {
58: /* Makes validation error tooltips look right */
59: return new JToolTip();
60: }
61: };
62: label.setForeground(Color.black);
63: }
64:
65: public void setProperty(String name, Object value)
66: throws GUIException {
67: if ("text".equals(name)) {
68: String text = (String) value;
69: if (text.indexOf("\n") != -1) {
70: text = "<html>" + XMLUtils.replace(text, "\n", "<br>")
71: + "</html>";
72: }
73: label.setText(text);
74: } else {
75: super .setProperty(name, value);
76: }
77: }
78:
79: public Component getWidget() {
80: return label;
81: }
82:
83: public void setIcon(ImageIcon icon) {
84: label.setIcon(icon);
85: }
86:
87: public WidgetInfo getWidgetInfo() {
88: return labelInfo;
89: }
90: }
|