package org.jacorb.demo.notification.whiteboard;
import java.awt.Canvas;
import java.awt.image.ImageProducer;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.Graphics;
public class BrushSizeDrawCanvas extends Canvas {
WorkgroupController controller_;
ImageProducer imageProducer_;
// the last point
private int lastX,lastY;
// the drawing color
private int drawRed=255;
private int drawGreen=255;
private int drawBlue=255;
public BrushSizeDrawCanvas(WorkgroupController controller, int width, int height) {
super();
setSize(width,height);
controller_ = controller;
initialize();
}
public void initialize() {
imageProducer_ = controller_.getImage().getProducer();
// react on pressed mouse key to start drawing
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
lastX = e.getX();
lastY = e.getY();
}
});
// react on dragged mouse
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
controller_.drawLine(lastX,lastY,
e.getX(),e.getY(),
drawRed,drawGreen,drawBlue);
lastX = e.getX();
lastY = e.getY();
repaint();
}
});
}
public void paint(Graphics g){
g.drawImage(createImage(imageProducer_), 0, 0, null);
}
public void update(Graphics g){
paint(g);
}
void setDrawColor(int red,int green,int blue) {
drawRed=red;
drawGreen=green;
drawBlue=blue;
}
public void clearAll() {
controller_.clearAll();
repaint();
}
void setBrushSize(int size) {
controller_.setBrushSize(size);
}
}