00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.gui.gauge;
00023
00024 import com.realtime.crossfire.jxclient.gui.gui.GUIElementListener;
00025 import com.realtime.crossfire.jxclient.gui.gui.TooltipManager;
00026 import java.awt.Color;
00027 import java.awt.Font;
00028 import java.awt.Graphics;
00029 import java.awt.Graphics2D;
00030 import java.awt.Image;
00031 import java.awt.geom.RectangularShape;
00032 import org.jetbrains.annotations.NotNull;
00033 import org.jetbrains.annotations.Nullable;
00034
00040 public class GUITextGauge extends GUIGauge {
00041
00045 private static final long serialVersionUID = 1;
00046
00050 @NotNull
00051 private final Color color;
00052
00056 @NotNull
00057 private final Font font;
00058
00062 @NotNull
00063 private String labelText = "";
00064
00079 public GUITextGauge(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final Image pictureFull, @Nullable final Image pictureNegative, @NotNull final Image pictureEmpty, @NotNull final Orientation orientation, @Nullable final String tooltipPrefix, @NotNull final Color color, @NotNull final Font font, final float alpha) {
00080 super(tooltipManager, elementListener, name, pictureFull, pictureNegative, pictureEmpty, orientation, tooltipPrefix, alpha);
00081 this.color = color;
00082 this.font = font;
00083 }
00084
00088 @Override
00089 public void paintComponent(@NotNull final Graphics g) {
00090 super.paintComponent(g);
00091 final Graphics2D g2 = (Graphics2D)g;
00092 g2.setBackground(new Color(0, 0, 0, 0.0f));
00093 g2.setColor(color);
00094 g2.setFont(font);
00095 final String text = labelText;
00096 final RectangularShape rectangle = font.getStringBounds(text, g2.getFontRenderContext());
00097 final int x = (int)Math.round((getWidth()-rectangle.getWidth())/2);
00098 final int y = (int)Math.round(getHeight()-rectangle.getMaxY()-rectangle.getMinY())/2;
00099 g2.drawString(text, x, y);
00100 }
00101
00105 @Override
00106 public void setValues(final int curValue, final int minValue, final int maxValue, @NotNull final String labelText, @NotNull final String tooltipText) {
00107 super.setValues(curValue, minValue, maxValue, labelText, tooltipText);
00108 this.labelText = labelText;
00109 setChanged();
00110 }
00111
00112 }