File: /Users/shatabdi/Education/GitHub/se450_project/src/model/persistence/ApplicationState.java
1 package model.persistence;
2
3 import java.io.Serializable;
4
5 import model.dialogs.DialogProvider;
6 import model.interfaces.IApplicationState;
7 import model.interfaces.IDialogProvider;
8 import view.Enum.MouseMode;
9 import view.Enum.ShapeColor;
10 import view.Enum.ShapeShadingType;
11 import view.Enum.ShapeType;
12 import view.interfaces.IUiModule;
13
14 public class ApplicationState implements IApplicationState, Serializable {
15
16
17
18 private static final long serialVersionUID = 1L;
19 private MouseMode activeMouseMode;
20 private ShapeColor activePrimaryColor;
21
22 private ShapeColor activeSecondaryColor;
23 private ShapeShadingType activeShapeShadingType;
24 private ShapeType activeShapeType;
25 private final IDialogProvider dialogProvider;
26 private final IUiModule iUiModule;
27
28 public ApplicationState(IUiModule uiModule) {
29 this.iUiModule = uiModule;
30 this.dialogProvider = new DialogProvider(this);
31 setDefaults();
32 }
33
34 @Override
35 public MouseMode getActiveMouseMode() {
36 return activeMouseMode;
37 }
38
39 @Override
40 public ShapeColor getActivePrimaryColor() {
41 return activePrimaryColor;
42 }
43
44 @Override
45 public ShapeColor getActiveSecondaryColor() {
46 return activeSecondaryColor;
47 }
48
49 @Override
50 public ShapeShadingType getActiveShapeShadingType() {
51 return activeShapeShadingType;
52 }
53
54 @Override
55 public ShapeType getActiveShapeType() {
56 return activeShapeType;
57 }
58
59 @Override
60 public void setActiveMouseMode() {
61 activeMouseMode = iUiModule.getDialogChoiceResponse(dialogProvider.getMouseModeDialogChoice());
62 }
63
64 @Override
65 public void setActivePrimaryColor() {
66 activePrimaryColor = iUiModule.getDialogChoiceResponse(dialogProvider.getPrimaryColorDialogChoice());
67 }
68
69 @Override
70 public void setActiveSecondaryColor() {
71 activeSecondaryColor = iUiModule.getDialogChoiceResponse(dialogProvider.getSecondaryColorDialogChoice());
72 }
73
74 @Override
75 public void setActiveShadingType() {
76 activeShapeShadingType = iUiModule.getDialogChoiceResponse(dialogProvider.getShadingTypeDialogChoice());
77 }
78
79 @Override
80 public void setActiveShape() {
81 activeShapeType = iUiModule.getDialogChoiceResponse(dialogProvider.getShapeDialogChoice());
82 }
83
84 private void setDefaults() {
85 activeShapeType = ShapeType.RECTANGLE;
86 activePrimaryColor = ShapeColor.BLUE;
87 activeSecondaryColor = ShapeColor.GREEN;
88 activeShapeShadingType = ShapeShadingType.OUTLINE;
89 activeMouseMode = MouseMode.DRAW;
90 }
91 }
92