package com.kreative.paint.palette;
import javax.swing.JPanel;
import com.kreative.paint.PaintContext;
import com.kreative.paint.PaintContextConstants;
import com.kreative.paint.PaintContextListener;
import com.kreative.paint.document.draw.PaintSettings;
public abstract class PaintContextPanel extends JPanel implements PaintContextListener, PaintContextConstants {
private static final long serialVersionUID = 1L;
protected PaintContext pc;
protected int eventMask;
public PaintContextPanel(PaintContext pc, int eventMask) {
pc.addPaintContextListener(this);
this.pc = pc;
this.eventMask = eventMask;
}
public final PaintContext getPaintContext() {
return pc;
}
public final void setPaintContext(PaintContext pc) {
this.pc.removePaintContextListener(this);
pc.addPaintContextListener(this);
this.pc = pc;
pcChanged(pc);
}
protected void pcChanged(PaintContext pc) {}
public final void paintSettingsChanged(PaintContext src, PaintSettings ps, int delta) {
if ((eventMask & delta) != 0) update();
}
public final void editingChanged(PaintContext src, boolean editingStroke, boolean editingBkgnd) {
if ((eventMask & CHANGED_EDITING) != 0) update();
}
protected abstract void update();
}