001: package demo.notification.whiteboard;
002:
003: import java.awt.Canvas;
004:
005: import java.awt.image.ImageProducer;
006:
007: import java.awt.event.MouseAdapter;
008:
009: import java.awt.event.MouseEvent;
010:
011: import java.awt.event.MouseMotionAdapter;
012:
013: import java.awt.Graphics;
014:
015: public class BrushSizeDrawCanvas extends Canvas {
016:
017: WorkgroupController controller_;
018:
019: ImageProducer imageProducer_;
020:
021: // the last point
022:
023: private int lastX, lastY;
024:
025: // the drawing color
026:
027: private int drawRed = 255;
028:
029: private int drawGreen = 255;
030:
031: private int drawBlue = 255;
032:
033: public BrushSizeDrawCanvas(WorkgroupController controller,
034: int width, int height) {
035:
036: super ();
037:
038: setSize(width, height);
039:
040: controller_ = controller;
041:
042: initialize();
043:
044: }
045:
046: public void initialize() {
047:
048: imageProducer_ = controller_.getImage().getProducer();
049:
050: // react on pressed mouse key to start drawing
051:
052: addMouseListener(new MouseAdapter() {
053:
054: public void mousePressed(MouseEvent e) {
055:
056: lastX = e.getX();
057:
058: lastY = e.getY();
059:
060: }
061:
062: });
063:
064: // react on dragged mouse
065:
066: addMouseMotionListener(new MouseMotionAdapter() {
067:
068: public void mouseDragged(MouseEvent e) {
069:
070: controller_.drawLine(lastX, lastY,
071:
072: e.getX(), e.getY(),
073:
074: drawRed, drawGreen, drawBlue);
075:
076: lastX = e.getX();
077:
078: lastY = e.getY();
079:
080: repaint();
081:
082: }
083:
084: });
085:
086: }
087:
088: public void paint(Graphics g) {
089:
090: g.drawImage(createImage(imageProducer_), 0, 0, null);
091:
092: }
093:
094: public void update(Graphics g) {
095:
096: paint(g);
097:
098: }
099:
100: void setDrawColor(int red, int green, int blue) {
101:
102: drawRed = red;
103:
104: drawGreen = green;
105:
106: drawBlue = blue;
107:
108: }
109:
110: public void clearAll() {
111:
112: controller_.clearAll();
113:
114: repaint();
115:
116: }
117:
118: void setBrushSize(int size) {
119:
120: controller_.setBrushSize(size);
121:
122: }
123:
124: }
|