package org.newdawn.slick.font.effects;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.font.Glyph;
/**
* Makes glyphs a solid color.
*
* @author Nathan Sweet <misc@n4te.com>
*/
public class ColorEffect implements ConfigurableEffect {
/** The colour that will be applied across the text */
private Color color = Color.white;
/**
* Default constructor for injection
*/
public ColorEffect() {
}
/**
* Create a new effect to colour the text
*
* @param color The colour to apply across the text
*/
public ColorEffect(Color color) {
this.color = color;
}
/**
* @see org.newdawn.slick.font.effects.Effect#draw(java.awt.image.BufferedImage, java.awt.Graphics2D, org.newdawn.slick.UnicodeFont, org.newdawn.slick.font.Glyph)
*/
public void draw(BufferedImage image, Graphics2D g, UnicodeFont unicodeFont, Glyph glyph) {
g.setColor(color);
g.fill(glyph.getShape());
}
/**
* Get the colour being applied by this effect
*
* @return The colour being applied by this effect
*/
public Color getColor() {
return color;
}
/**
* Set the colour being applied by this effect
*
* @param color The colour being applied by this effect
*/
public void setColor(Color color) {
if (color == null) throw new IllegalArgumentException("color cannot be null.");
this.color = color;
}
/**
* @see java.lang.Object#toString()
*/
public String toString () {
return "Color";
}
/**
* @see org.newdawn.slick.font.effects.ConfigurableEffect#getValues()
*/
public List getValues() {
List values = new ArrayList();
values.add(EffectUtil.colorValue("Color", color));
return values;
}
/**
* @see org.newdawn.slick.font.effects.ConfigurableEffect#setValues(java.util.List)
*/
public void setValues(List values) {
for (Iterator iter = values.iterator(); iter.hasNext();) {
Value value = (Value)iter.next();
if (value.getName().equals("Color")) {
setColor((Color)value.getObject());
}
}
}
}