File: /Users/shatabdi/Education/GitHub/se450_project/src/model/commands/ShapeSelectionCommand.java

1     package model.commands;
2     
3     import java.awt.Graphics2D;
4     import java.awt.Point;
5     import java.util.List;
6     
7     import controller.interfaces.ICommand;
8     import model.interfaces.IShape;
9     import model.others.BoundingBox;
10     import view.interfaces.PaintCanvasBase;
11     
12     public class ShapeSelectionCommand implements ICommand {
13     	private PaintCanvasBase canvasBase;
14     	private Graphics2D graphics2d;
15     
16     	private Point ptEnd;
17     	private Point ptStart;
18     
19     	public ShapeSelectionCommand(Point startPoint, Point endPoint, PaintCanvasBase canvasBase) {
20     		this.graphics2d = canvasBase.getGraphics2D();
21     		this.canvasBase = canvasBase;
22     		this.ptStart = startPoint;
23     		this.ptEnd = endPoint;
24     
25     	}
26     
27     	@Override
28     	public void run() {
29     
30     		CommandHistory.shapesSelected.clear();
31     
32     		List<IShape> shapeList = CommandHistory.shapeCollection.getList();
33     		BoundingBox boundingBox = new BoundingBox();
34     		boundingBox.generateFromPoints(ptStart, ptEnd);
35     		boundingBox.drawBoundingBox(graphics2d);
36     
37     		for (IShape shape : shapeList) {
38     			CommandHistory.shapesSelected.add(shape);
39     
40     		}
41     
42     		canvasBase.repaint();
43     
44     	}
45     
46     }
47