Files
2020-JPaint/src/model/persistence/ApplicationState.java
T
2020-12-08 18:38:32 +07:00

87 lines
2.5 KiB
Java
Executable File

package model.persistence;
import model.ShapeColor;
import model.ShapeShadingType;
import model.ShapeType;
import model.MouseMode;
import model.dialogs.DialogProvider;
import model.interfaces.IApplicationState;
import model.interfaces.IDialogProvider;
import view.interfaces.IUiModule;
public class ApplicationState implements IApplicationState {
private final IUiModule uiModule;
private final IDialogProvider dialogProvider;
private ShapeType activeShapeType;
private ShapeColor activePrimaryColor;
private ShapeColor activeSecondaryColor;
private ShapeShadingType activeShapeShadingType;
private MouseMode activeMouseMode;
public ApplicationState(IUiModule uiModule) {
this.uiModule = uiModule;
this.dialogProvider = new DialogProvider(this);
setDefaults();
}
@Override
public void setActiveShape() {
activeShapeType = uiModule.getDialogResponse(dialogProvider.getChooseShapeDialog());
}
@Override
public void setActivePrimaryColor() {
activePrimaryColor = uiModule.getDialogResponse(dialogProvider.getChoosePrimaryColorDialog());
}
@Override
public void setActiveSecondaryColor() {
activeSecondaryColor = uiModule.getDialogResponse(dialogProvider.getChooseSecondaryColorDialog());
}
@Override
public void setActiveShadingType() {
activeShapeShadingType = uiModule.getDialogResponse(dialogProvider.getChooseShadingTypeDialog());
}
@Override
public void setActiveStartAndEndPointMode() {
activeMouseMode = uiModule.getDialogResponse(dialogProvider.getChooseStartAndEndPointModeDialog());
}
@Override
public ShapeType getActiveShapeType() {
return activeShapeType;
}
@Override
public ShapeColor getActivePrimaryColor() {
return activePrimaryColor;
}
@Override
public ShapeColor getActiveSecondaryColor() {
return activeSecondaryColor;
}
@Override
public ShapeShadingType getActiveShapeShadingType() {
return activeShapeShadingType;
}
@Override
public MouseMode getActiveMouseMode() {
return activeMouseMode;
}
private void setDefaults() {
activeShapeType = ShapeType.RECTANGLE;
activePrimaryColor = ShapeColor.BLUE;
activeSecondaryColor = ShapeColor.GREEN;
activeShapeShadingType = ShapeShadingType.FILLED_IN;
activeMouseMode = MouseMode.DRAW;
}
}