package org.ripple.power.ui.projector.action.sprite;
import java.awt.Color;
import java.awt.Font;
import org.ripple.power.ui.graphics.LColor;
import org.ripple.power.ui.graphics.LGraphics;
import org.ripple.power.ui.graphics.LImage;
import org.ripple.power.ui.graphics.geom.RectBox;
import org.ripple.power.ui.projector.core.LObject;
import org.ripple.power.utils.GraphicsUtils;
public class Label extends LObject implements ISprite {
/**
*
*/
private static final long serialVersionUID = 1L;
private Font font;
private boolean visible;
private int width, height;
private LColor color;
private float alpha;
private String label;
public Label(String label, int x, int y) {
this(GraphicsUtils.getFont(12), label, x, y);
}
public Label(String label, String font, int type, int size, int x, int y) {
this(GraphicsUtils.getFont(font, type, size), label, x, y);
}
public Label(Font font, String label, int x, int y) {
this.font = font;
this.label = label;
this.color = LColor.black;
this.visible = true;
this.setLocation(x, y);
}
public void setFont(String fontName, int type, int size) {
setFont(GraphicsUtils.getFont(fontName, type, size));
}
public void setFont(Font font) {
this.font = font;
}
public void createUI(LGraphics g) {
if (visible) {
Font oldFont = g.getFont();
Color oldColor = g.getColor();
g.setFont(font);
g.setColor(color);
this.width = g.getFontMetrics().stringWidth(label);
this.height = font.getSize();
g.setAntiAlias(true);
if (alpha > 0 && alpha <= 1.0) {
g.setAlpha(alpha);
g.drawString(label, x(), y());
g.setAlpha(1.0F);
} else {
g.drawString(label, x(), y());
}
g.setAntiAlias(false);
g.setFont(oldFont);
g.setColor(oldColor);
}
}
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
public void update(long timer) {
}
public RectBox getCollisionBox() {
return getRect(x(), y(), width, height);
}
public boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
public String getLabel() {
return label;
}
public void setLabel(int label) {
setLabel(String.valueOf(label));
}
public void setLabel(String label) {
this.label = label;
}
public float getAlpha() {
return alpha;
}
public void setAlpha(float alpha) {
this.alpha = alpha;
}
public LColor getColor() {
return color;
}
public void setColor(LColor color) {
this.color = color;
}
public LImage getBitmap() {
return null;
}
public void dispose() {
}
}