import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Canvas extends JPanel implements MouseListener {
private Model model; //*1 Save model, to be provided later
Canvas () {
setBorder (new LineBorder(Color.BLUE));
addMouseListener (this);
}
/**
* Couldn't pass model in constructor,
* cause it doesn't exist yet
*/
public void setModel (Model model) { //*1
this.model = model; //*1
}
/** Tell parent to do the job */
public void paintComponent (Graphics g) { //*2 Just pass jobs to parent
super.paintComponent(g);
model.draw (g); //*2
}
/** MouseListener callbacks */
public void mousePressed (MouseEvent event) { //*2
// Tell parent to do the job
model.doMouse (event.getPoint()); //*2
}
public void mouseClicked (MouseEvent event) {}
public void mouseReleased (MouseEvent event) {}
public void mouseEntered (MouseEvent event) {}
public void mouseExited (MouseEvent event) {}
}