22 package com.realtime.crossfire.jxclient.gui.label;
27 import java.awt.Color;
28 import java.awt.Dimension;
30 import java.awt.FontMetrics;
31 import java.awt.Graphics;
32 import java.awt.image.BufferedImage;
33 import java.io.IOException;
34 import java.io.Reader;
35 import java.io.StringReader;
36 import java.util.regex.Pattern;
37 import javax.swing.text.html.HTMLEditorKit.ParserCallback;
38 import javax.swing.text.html.parser.ParserDelegator;
39 import org.jetbrains.annotations.NotNull;
40 import org.jetbrains.annotations.Nullable;
82 super(tooltipManager, elementListener, name, text, font, color, backgroundPicture, backgroundColor);
101 if (this.autoResize != autoResize) {
112 super.paintComponent(g);
119 final Reader reader =
new StringReader(
getText());
121 final ParserDelegator parserDelegator =
new ParserDelegator();
123 parserDelegator.parse(reader, renderer,
false);
124 }
catch (
final IOException ex) {
125 System.err.println(
"GUIHTMLLabel: cannot render HTML: "+ex.getMessage());
138 final FontMetrics fontMetrics = getFontMetrics(
getTextFont());
142 for (
final String str : PATTERN_LINE_BREAK.split(
getText(), -1)) {
144 width = Math.max(width, size.width);
145 height += size.height;
147 setSize(Math.max(1, width+2*AUTO_BORDER_SIZE), Math.max(1, height+2*AUTO_BORDER_SIZE));
156 return new Dimension(100, 32);
165 return new Dimension(100, 32);
Listener for GUIElement related events.
Abstract base class for all label classes.
final TooltipManager tooltipManager
The TooltipManager to update.
Dimension getMinimumSize()
static Dimension getTextDimension(@NotNull final String text, @NotNull final FontMetrics fontMetrics)
Returns the extents of a string when rendered in a given Font on this component.
void setChanged()
Records that the contents have changed and must be repainted.
void setAutoResize(final boolean autoResize)
Enable or disable auto-resizing.
static final int AUTO_BORDER_SIZE
Size of border around text in auto-resize mode.
Color getTextColor()
Returns the text color.
final GUIElementListener elementListener
The GUIElementListener to notify.
final Color backgroundColor
If set, the opaque background color.
final String name
The name of this element.
boolean autoResize
If set, auto-resize this element to the extent of text.
void autoResize()
If auto-resizing is enabled, calculate the new width and height.
static final Pattern PATTERN_LINE_BREAK
The pattern used to split a string into lines.
Font getTextFont()
Returns the font.
Utility class for Gui related functions.
String getText()
Returns the label text.
static final long serialVersionUID
The serial version UID.
String text
The label text.
Implements an AbstractLabel that displays HTML contents.
GUIHTMLLabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @Nullable final BufferedImage backgroundPicture, @NotNull final Font font, @NotNull final Color color, @Nullable final Color backgroundColor, @NotNull final String text)
Creates a new instance.
Dimension getPreferredSize()
void paintComponent(@NotNull final Graphics g)