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

1     package model.commands;
2     
3     import java.util.ArrayList;
4     import java.util.List;
5     
6     import controller.interfaces.ICommand;
7     import controller.interfaces.IUndoable;
8     import model.interfaces.IShape;
9     import view.interfaces.PaintCanvasBase;
10     
11     public class ShapeRemoveCommand implements ICommand, IUndoable {
12     	private PaintCanvasBase canvasBase;
13     
14     	private List<IShape> deleteShapes = new ArrayList<>();
15     
16     	public ShapeRemoveCommand(PaintCanvasBase canvasBase) {
17     		this.canvasBase = canvasBase;
18     		deleteShapes.addAll(CommandHistory.shapesSelected.getList());
19     
20     	}
21     
22     	@Override
23     	public void redo() {
24     		for (IShape shape : deleteShapes) {
25     			shape.deleteShape();
26     		}
27     		canvasBase.repaint();
28     	}
29     
30     	@Override
31     	public void run() {
32     		for (IShape shape : deleteShapes) {
33     			shape.deleteShape();
34     		}
35     		canvasBase.repaint();
36     		CommandHistory.add(this);
37     	}
38     
39     	@Override
40     	public void undo() {
41     		for (IShape shape : deleteShapes) {
42     			shape.create();
43     		}
44     		canvasBase.repaint();
45     	}
46     }
47