package com.tddinaction.swing.plotmap.view; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; public class PlotMapCanvasImpl extends Canvas implements PlotMapCanvas { private List<Point> plots = new ArrayList<Point>(); public PlotMapCanvasImpl() { setSize(200, 100); setBackground(Color.WHITE); } public void clear() { } public void plot(Point point) { plots.add(point); } @Override public void paint(Graphics g) { g.setColor(Color.BLACK); Point previous = null; for (Point p : plots) { if (previous == null) { previous = p; } g.drawLine(previous.x, previous.y, p.x, p.y); previous = p; } } public void addRemoveListener(final PointEventListener listener) { addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { Point point = e.getPoint(); if (plots.contains(point)) { listener.onPointEvent(point); } } }); } }