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 GUIDupTextGauge extends GUIDupGauge {
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 GUIDupTextGauge(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final Image pictureFullDiv, final Image pictureFullMod, @NotNull final Image pictureEmpty, @NotNull final Orientation orientationDiv, @NotNull final Orientation orientationMod, @Nullable final String tooltipPrefix, @NotNull final Color color, @NotNull final Font font) {
00080 super(tooltipManager, elementListener, name, pictureFullDiv, pictureFullMod, pictureEmpty, orientationDiv, orientationMod, tooltipPrefix);
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 g2.drawString(text, (int)Math.round((getWidth()-rectangle.getWidth())/2), (int)Math.round(getHeight()-rectangle.getMaxY()-rectangle.getMinY())/2);
00098 }
00099
00103 @Override
00104 public void setValues(final int curValue, final int minValue, final int maxValue, @NotNull final String labelText, @NotNull final String tooltipText) {
00105 super.setValues(curValue, minValue, maxValue, labelText, tooltipText);
00106 this.labelText = labelText;
00107 setChanged();
00108 }
00109
00110 }