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

1     // The rectangle drawing is adopted from
2     // https://www.programcreek.com/java-api-examples/?api=java.awt.geom.Rectangle2D
3     
4     package model;
5     
6     import java.awt.Color;
7     import java.awt.Graphics;
8     import java.awt.Graphics2D;
9     import java.awt.Shape;
10     import java.awt.Stroke;
11     import java.awt.geom.Rectangle2D;
12     
13     import model.strategy.ShapeTypeStrategy;
14     import view.Enum.ShapeColor;
15     import view.Enum.ShapeShadingType;
16     import view.adapter.ColorAdapter;
17     
18     public class Rectangle extends ShapeTypeStrategy {
19     
20     	ShapeColor color;
21     	private Graphics2D graphics2d;
22     
23     	int height;
24     	ShapeColor primaryColor;
25     
26     	ColorAdapter primaryColorAdapter;
27     	ShapeColor secondaryColor;
28     	ColorAdapter secondaryColorAdapter;
29     
30     	Shape shape;
31     	ShapeShadingType shapeShadingType;
32     	Stroke stroke;
33     	int width;
34     	int x;
35     	int y;
36     
37     
38     	public Shape createShapeType() {
39     		Rectangle2D rect = new Rectangle2D.Double(x, y, width, height);
40     		return rect;
41     	}
42     	
43     	public Rectangle(int x, int y, int width, int height) {
44     		this.x = x;
45     		this.y = y;
46     		this.width = width;
47     		this.height = height;
48     	}
49     	public void draw() {
50     		Color color2 = ColorAdapter.getColor(color);
51     		graphics2d.setPaint(color2);
52     		graphics2d.fill(shape);
53     	}
54     
55     	public void draw(Graphics g) {
56     		Graphics2D g2 = (Graphics2D) g;
57     		if (shapeShadingType.equals(ShapeShadingType.OUTLINE)) {
58     			g2.setStroke(stroke);
59     			g.setColor(ColorAdapter.getColor(primaryColor));
60     			g.drawRect(x, y, width, height);
61     		} else if (shapeShadingType.equals(ShapeShadingType.FILLED_IN)) {
62     			g2.setStroke(stroke);
63     			g.setColor(ColorAdapter.getColor(secondaryColor));
64     			g.fillRect(x, y, width, height);
65     		} else if (shapeShadingType.equals(ShapeShadingType.OUTLINE_AND_FILLED_IN)) {
66     			g2.setStroke(stroke);
67     			g.setColor(ColorAdapter.getColor(primaryColor));
68     			g.drawRect(x, y, width, height);
69     			g.setColor(ColorAdapter.getColor(secondaryColor));
70     			g.fillRect(x, y, width, height);
71     		}
72     	}
73     
74     }
75