package open.dolphin.impl.scheam;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
/**
*
* @author Kazushi Minagawa, pns
*/
public class SchemaCanvas extends JComponent {
private final SchemaEditorImpl context;
private final SchemaEditorProperties properties;
// baseImage はここで管理する
private BufferedImage baseImage;
public SchemaCanvas(SchemaEditorImpl context) {
super();
this.context = context;
this.properties = context.getProperties();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// baseImage はデフォルト設定で描く
g2d.drawImage(baseImage, 0, 0, null);
if (context != null) {
// 現在の色,ストロークなどを設定
properties.setGraphicsState(g2d);
// draw の流れ
// baseImage → DrawingHolder#draw() → 現在のstate#draw()
context.getStateMgr().draw(g2d);
}
}
public final void setBaseImage(BufferedImage image) {
this.baseImage = image;
this.setPreferredSize(new Dimension(baseImage.getWidth(), baseImage.getHeight()));
}
public final BufferedImage getBaseImage() {
return baseImage;
}
}