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