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