package howto; import java.awt.*; import java.util.*; public class ShapeMgr extends Canvas { Vector _vec; HotSpotMgr _hsm; HotSpot _hs; public ShapeMgr() { _vec = new Vector(); _hsm = new HotSpotMgr(); } public void manage(Shape s) { _vec.addElement(s); Vector vecShapes = s.getHotSpots(); for (int i = 0; i < vecShapes.size(); i++) { _hsm.manage((HotSpot)vecShapes.elementAt(i)); } repaint(); } public boolean mouseDrag(Event e, int x, int y) { if (_hs != null) { _hs.setCoordinates(new Coordinates(x, y)); _hs.notifyObservers(); repaint(); } return true; } public boolean mouseDown(Event e, int x, int y) { _hs = _hsm.isAt(new Coordinates(x, y)); return true; } public boolean mouseUp(Event e, int x, int y) { _hs = null; return true; } public void paint(Graphics g) { for (int i = 0; i < _vec.size(); i++) { Shape s = (Shape)_vec.elementAt(i); g.setColor(Color.lightGray); Vector vecShapes = s.getHotSpots(); for (int j = 0; j < vecShapes.size(); j++) { HotSpot hs = (HotSpot)vecShapes.elementAt(j); hs.paint(g); } g.setColor(Color.black); s.paint(g); } } }