File: /Users/shatabdi/Education/GitHub/se450_project/src/view/adapter/DrawMouseAdapter.java
1 package view.adapter;
2
3 import java.awt.Color;
4 import java.awt.Point;
5
6 import model.GeometricShape;
7 import model.commands.ShapeCreateCommand;
8 import model.interfaces.IApplicationState;
9 import model.shape.DrawShape;
10 import view.Enum.ShapeShadingType;
11 import view.Enum.ShapeType;
12 import view.interfaces.PaintCanvasBase;
13
14 public class DrawMouseAdapter extends MouseMode {
15
16 private PaintCanvasBase canvasBase;
17 private java.awt.Point endPoint;
18 GeometricShape geometricShape;
19 private java.awt.Point startPoint;
20
21 public DrawMouseAdapter(Point startPoint, Point endPoint, PaintCanvasBase canvasBase, IApplicationState appState) {
22 this.canvasBase = canvasBase;
23 this.startPoint = startPoint;
24 this.endPoint = endPoint;
25
26 ShapeType shapeType = appState.getActiveShapeType();
27 ShapeShadingType shadingType = appState.getActiveShapeShadingType();
28 Color primaryColor = ColorAdapter.getColor(appState.getActivePrimaryColor());
29 Color secondaryColor = ColorAdapter.getColor(appState.getActiveSecondaryColor());
30
31 geometricShape = new GeometricShape(startPoint, endPoint);
32 geometricShape.setShapeType(shapeType).setShadingType(shadingType).setPrimaryColor(primaryColor)
33 .setSecondaryColor(secondaryColor);
34 }
35
36 @Override
37 public void update() {
38 if (!startPoint.equals(endPoint)) {
39 DrawShape drawShape = new DrawShape(canvasBase, geometricShape);
40 ShapeCreateCommand shapeCreateCommand = new ShapeCreateCommand(drawShape);
41 shapeCreateCommand.run();
42 }
43 }
44 }
45