File: /Users/shatabdi/Education/GitHub/se450_project/src/model/factory/ShapeFactory.java
1
2
3 package model.factory;
4
5 import java.awt.BasicStroke;
6 import java.awt.Graphics2D;
7 import java.awt.Point;
8 import java.awt.Shape;
9
10 import model.Ellipse;
11 import model.GeometricShape;
12 import model.Rectangle;
13 import model.Triangle;
14 import model.strategy.ShapeShadingStrategy;
15 import model.strategy.ShapeTypeStrategy;
16 import view.Enum.ShapeColor;
17 import view.Enum.ShapeShadingType;
18 import view.Enum.ShapeType;
19
20 public class ShapeFactory {
21
22 public static ShapeShadingStrategy combine(ShapeShadingType shapeShadingType, ShapeColor primaryColor,
23 ShapeColor secondaryColor, Shape shape, Graphics2D g2, BasicStroke str) {
24 return new ShapeShadingStrategy(shapeShadingType, primaryColor, secondaryColor, shape, g2, str);
25 }
26
27 public static Shape createShape(GeometricShape geometricShape) {
28 ShapeType shapeType = geometricShape.getShapeType();
29 int shapeXcoord = geometricShape.getShapeXcoord();
30 int shapeYcoord = geometricShape.getShapeYcoord();
31 int width = geometricShape.getWidth();
32 int height = geometricShape.getHeight();
33 Point startPoint = geometricShape.getStartPoint();
34 Point endPoint = geometricShape.getEndPoint();
35
36 ShapeTypeStrategy shapeTypeStrategy = null;
37
38 if (shapeType.equals(ShapeType.RECTANGLE)) {
39 shapeTypeStrategy = new Rectangle(shapeXcoord, shapeYcoord, width, height);
40 } else if (shapeType.equals(ShapeType.ELLIPSE)) {
41 shapeTypeStrategy = new Ellipse(shapeXcoord, shapeYcoord, width, height);
42 } else if (shapeType.equals(ShapeType.TRIANGLE)) {
43 shapeTypeStrategy = new Triangle(startPoint, endPoint);
44 }
45 return shapeTypeStrategy.createShapeType();
46 }
47 }
48