package screens;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.RenderingHints;
/**
* Class which forces implementation of generateImage method
* @author Tristan Goffman(tgoffman@gmail.com) Jul 16, 2011
*/
public abstract class AbstractStrictScreen extends AbstractScreen{
private boolean dirty;
@Override
public Image getImage() {
if (this.currentImage == null) {
this.currentImage = generateImage();
}
return super.getImage();
}
protected abstract Image generateImage();
protected void setGraphicDefaults(Graphics2D g2) {
// enable anti-aliasing
// code to check anti-aliasing
// RenderingHints rhints = g2.getRenderingHints();
// boolean antialiasOn = rhints.containsValue(RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// Background
g2.setColor(Color.WHITE);
g2.fill(new Rectangle.Float(0, 0, width, height));
}
public boolean isDirty() {
return dirty;
}
public void setDirty(boolean val){
dirty = val;
}
}