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