Skip to content

Commit dbbe715

Browse files
committed
fixed unit test by removing static model values
1 parent e3d66f0 commit dbbe715

File tree

6 files changed

+69
-66
lines changed

6 files changed

+69
-66
lines changed

src/main/java/de/doubleslash/keeptime/Main.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ private void readSettings() {
173173
final Settings settings;
174174
if (settingsList.isEmpty()) {
175175
settings = new Settings();
176-
settings.setTaskBarColor(Model.TASK_BAR_COLOR.get());
176+
settings.setTaskBarColor(model.taskBarColor.get());
177177

178178
settings.setDefaultBackgroundColor(Model.ORIGINAL_DEFAULT_BACKGROUND_COLOR);
179179
settings.setDefaultFontColor(Model.ORIGINAL_DEFAULT_FONT_COLOR);
@@ -188,23 +188,23 @@ private void readSettings() {
188188
settings = settingsList.get(0);
189189
}
190190

191-
Model.DEFAULT_BACKGROUND_COLOR.set(settings.getDefaultBackgroundColor());
192-
Model.DEFAULT_FONT_COLOR.set(settings.getDefaultFontColor());
193-
Model.HOVER_BACKGROUND_COLOR.set(settings.getHoverBackgroundColor());
194-
Model.HOVER_FONT_COLOR.set(settings.getHoverFontColor());
195-
Model.TASK_BAR_COLOR.set(settings.getTaskBarColor());
196-
Model.USE_HOTKEY.set(settings.isUseHotkey());
197-
Model.DISPLAY_PROJECTS_RIGHT.set(settings.isDisplayProjectsRight());
198-
Model.HIDE_PROJECTS_ON_MOUSE_EXIT.set(settings.isHideProjectsOnMouseExit());
191+
model.defaultBackgroundColor.set(settings.getDefaultBackgroundColor());
192+
model.defaultFontColor.set(settings.getDefaultFontColor());
193+
model.hoverBackgroundColor.set(settings.getHoverBackgroundColor());
194+
model.hoverFontColor.set(settings.getHoverFontColor());
195+
model.taskBarColor.set(settings.getTaskBarColor());
196+
model.useHotkey.set(settings.isUseHotkey());
197+
model.displayProjectsRight.set(settings.isDisplayProjectsRight());
198+
model.hideProjectsOnMouseExit.set(settings.isHideProjectsOnMouseExit());
199199
}
200200

201201
private void initialisePopupUI(final Stage primaryStage) throws IOException {
202202
LOG.debug("Initialising popup UI.");
203203

204204
globalScreenListener = new GlobalScreenListener();
205205

206-
Model.USE_HOTKEY.addListener((a, b, newValue) -> globalScreenListener.register(newValue));
207-
globalScreenListener.register(Model.USE_HOTKEY.get());
206+
model.useHotkey.addListener((a, b, newValue) -> globalScreenListener.register(newValue));
207+
globalScreenListener.register(model.useHotkey.get());
208208

209209
popupViewStage = new Stage();
210210
popupViewStage.initOwner(primaryStage);

src/main/java/de/doubleslash/keeptime/controller/Controller.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void changeProject(final Project newProject) {
5858
}
5959

6060
public void changeProject(final Project newProject, final long minusSeconds) {
61-
final Work currentWork = Model.activeWorkItem.get();
61+
final Work currentWork = model.activeWorkItem.get();
6262

6363
final LocalDateTime now = dateProvider.dateTimeNow().minusSeconds(minusSeconds);
6464
final LocalDate dateNow = now.toLocalDate();
@@ -88,7 +88,7 @@ public void changeProject(final Project newProject, final long minusSeconds) {
8888
model.getPastWorkItems().removeIf(w -> !dateNow.isEqual(w.getCreationDate()));
8989
LOG.debug("Removed '{}' work items from past work items.", sizeBefore - model.getPastWorkItems().size());
9090
}
91-
Model.activeWorkItem.set(work);
91+
model.activeWorkItem.set(work);
9292
}
9393

9494
public void addNewProject(final String projectName, final boolean isWork, final Color projectColor,
@@ -121,14 +121,14 @@ public void updateSettings(final Color hoverBackgroundColor, final Color hoverFo
121121

122122
model.getSettingsRepository().save(settings);
123123

124-
Model.DEFAULT_BACKGROUND_COLOR.set(settings.getDefaultBackgroundColor());
125-
Model.DEFAULT_FONT_COLOR.set(settings.getDefaultFontColor());
126-
Model.HOVER_BACKGROUND_COLOR.set(settings.getHoverBackgroundColor());
127-
Model.HOVER_FONT_COLOR.set(settings.getHoverFontColor());
128-
Model.TASK_BAR_COLOR.set(settings.getTaskBarColor());
129-
Model.USE_HOTKEY.set(settings.isUseHotkey());
130-
Model.DISPLAY_PROJECTS_RIGHT.set(settings.isDisplayProjectsRight());
131-
Model.HIDE_PROJECTS_ON_MOUSE_EXIT.set(settings.isHideProjectsOnMouseExit());
124+
model.defaultBackgroundColor.set(settings.getDefaultBackgroundColor());
125+
model.defaultFontColor.set(settings.getDefaultFontColor());
126+
model.hoverBackgroundColor.set(settings.getHoverBackgroundColor());
127+
model.hoverFontColor.set(settings.getHoverFontColor());
128+
model.taskBarColor.set(settings.getTaskBarColor());
129+
model.useHotkey.set(settings.isUseHotkey());
130+
model.displayProjectsRight.set(settings.isDisplayProjectsRight());
131+
model.hideProjectsOnMouseExit.set(settings.isHideProjectsOnMouseExit());
132132
}
133133

134134
@PreDestroy
@@ -244,7 +244,7 @@ List<Project> adaptProjectIndexesAfterRemoving(final List<Project> originalList,
244244
}
245245

246246
public void setComment(final String notes) {
247-
final Work work = Model.activeWorkItem.get();
247+
final Work work = model.activeWorkItem.get();
248248
work.setNotes(notes);
249249
}
250250

src/main/java/de/doubleslash/keeptime/model/Model.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,20 @@ public Model(final ProjectRepository projectRepository, final WorkRepository wor
6262
Comparator.comparing(Project::getIndex));
6363
private ObservableList<Project> allProjects = FXCollections.observableArrayList();
6464

65-
protected static final ObservableList<Work> pastWorkItems = FXCollections.observableArrayList();
66-
public static final ObjectProperty<Work> activeWorkItem = new SimpleObjectProperty<>();
65+
protected final ObservableList<Work> pastWorkItems = FXCollections.observableArrayList();
66+
public final ObjectProperty<Work> activeWorkItem = new SimpleObjectProperty<>();
6767

68-
public static final ObjectProperty<Color> TASK_BAR_COLOR = new SimpleObjectProperty<>(ORIGINAL_TASK_BAR_FONT_COLOR);
68+
public final ObjectProperty<Color> taskBarColor = new SimpleObjectProperty<>(ORIGINAL_TASK_BAR_FONT_COLOR);
6969

70-
public static final ObjectProperty<Color> HOVER_BACKGROUND_COLOR = new SimpleObjectProperty<>(
70+
public final ObjectProperty<Color> hoverBackgroundColor = new SimpleObjectProperty<>(
7171
ORIGINAL_HOVER_BACKGROUND_COLOR);
72-
public static final ObjectProperty<Color> HOVER_FONT_COLOR = new SimpleObjectProperty<>(ORIGINAL_HOVER_Font_COLOR);
73-
public static final ObjectProperty<Color> DEFAULT_BACKGROUND_COLOR = new SimpleObjectProperty<>(
72+
public final ObjectProperty<Color> hoverFontColor = new SimpleObjectProperty<>(ORIGINAL_HOVER_Font_COLOR);
73+
public final ObjectProperty<Color> defaultBackgroundColor = new SimpleObjectProperty<>(
7474
ORIGINAL_DEFAULT_BACKGROUND_COLOR);
75-
public static final ObjectProperty<Color> DEFAULT_FONT_COLOR = new SimpleObjectProperty<>(
76-
ORIGINAL_DEFAULT_FONT_COLOR);
77-
public static final ObjectProperty<Boolean> USE_HOTKEY = new SimpleObjectProperty<>(false);
78-
public static final ObjectProperty<Boolean> DISPLAY_PROJECTS_RIGHT = new SimpleObjectProperty<>(false);
79-
public static final ObjectProperty<Boolean> HIDE_PROJECTS_ON_MOUSE_EXIT = new SimpleObjectProperty<>(true);
75+
public final ObjectProperty<Color> defaultFontColor = new SimpleObjectProperty<>(ORIGINAL_DEFAULT_FONT_COLOR);
76+
public final ObjectProperty<Boolean> useHotkey = new SimpleObjectProperty<>(false);
77+
public final ObjectProperty<Boolean> displayProjectsRight = new SimpleObjectProperty<>(false);
78+
public final ObjectProperty<Boolean> hideProjectsOnMouseExit = new SimpleObjectProperty<>(true);
8079

8180
public void setWorkRepository(final WorkRepository workRepository) {
8281
this.workRepository = workRepository;

src/main/java/de/doubleslash/keeptime/view/SettingsController.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class SettingsController {
9797
private static final Logger LOG = LoggerFactory.getLogger(SettingsController.class);
9898

9999
private Controller controller;
100+
private Model model;
100101

101102
private static final String INPUT_FILE = "config.xml";
102103

@@ -203,24 +204,24 @@ private void initialize() {
203204
});
204205
}
205206

206-
public void setController(final Controller controller) {
207+
public void setControllerAndModel(final Controller controller, final Model model) {
207208
this.controller = controller;
208-
209+
this.model = model;
209210
update();
210211
}
211212

212213
void update() {
213-
hoverBackgroundColor.setValue(Model.HOVER_BACKGROUND_COLOR.get());
214-
hoverFontColor.setValue(Model.HOVER_FONT_COLOR.get());
214+
hoverBackgroundColor.setValue(model.hoverBackgroundColor.get());
215+
hoverFontColor.setValue(model.hoverFontColor.get());
215216

216-
defaultBackgroundColor.setValue(Model.DEFAULT_BACKGROUND_COLOR.get());
217-
defaultFontColor.setValue(Model.DEFAULT_FONT_COLOR.get());
217+
defaultBackgroundColor.setValue(model.defaultBackgroundColor.get());
218+
defaultFontColor.setValue(model.defaultFontColor.get());
218219

219-
taskBarColor.setValue(Model.TASK_BAR_COLOR.get());
220+
taskBarColor.setValue(model.taskBarColor.get());
220221

221-
useHotkeyCheckBox.setSelected(Model.USE_HOTKEY.get());
222-
displayProjectsRightCheckBox.setSelected(Model.DISPLAY_PROJECTS_RIGHT.get());
223-
hideProjectsOnMouseExitCheckBox.setSelected(Model.HIDE_PROJECTS_ON_MOUSE_EXIT.get());
222+
useHotkeyCheckBox.setSelected(model.useHotkey.get());
223+
displayProjectsRightCheckBox.setSelected(model.displayProjectsRight.get());
224+
hideProjectsOnMouseExitCheckBox.setSelected(model.hideProjectsOnMouseExit.get());
224225
}
225226

226227
public void setStage(final Stage thisStage) {

src/main/java/de/doubleslash/keeptime/view/ViewController.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ private void initialize() {
197197

198198
// reposition window if projects are hidden (as anchor is top left)
199199
mouseHoveringProperty.addListener((a, b, c) -> {
200-
if (!Model.HIDE_PROJECTS_ON_MOUSE_EXIT.get()) {
200+
if (!model.hideProjectsOnMouseExit.get()) {
201201
setProjectListVisible(true);
202202
return;
203203
}
@@ -232,22 +232,22 @@ private void initialize() {
232232

233233
Platform.runLater(() -> {
234234
loadSubStages();
235-
fontColorProperty.set(Model.DEFAULT_FONT_COLOR.get());
235+
fontColorProperty.set(model.defaultFontColor.get());
236236
fontColorProperty.bind(Bindings.createObjectBinding(() -> {
237237
if (mouseHoveringProperty.get()) {
238-
return Model.HOVER_FONT_COLOR.get();
238+
return model.hoverFontColor.get();
239239
} else {
240-
return Model.DEFAULT_FONT_COLOR.get();
240+
return model.defaultFontColor.get();
241241
}
242-
}, mouseHoveringProperty, Model.DEFAULT_FONT_COLOR, Model.HOVER_FONT_COLOR));
242+
}, mouseHoveringProperty, model.defaultFontColor, model.hoverFontColor));
243243

244244
bigTimeLabel.textFillProperty().bind(fontColorProperty);
245245
allTimeLabel.textFillProperty().bind(fontColorProperty);
246246
todayAllSeconds.textFillProperty().bind(fontColorProperty);
247247
currentProjectLabel.textFillProperty().bind(fontColorProperty);
248248

249249
final Runnable displayProjectRightRunnable = () -> {
250-
if (Model.DISPLAY_PROJECTS_RIGHT.get()) {
250+
if (model.displayProjectsRight.get()) {
251251
borderPane.setLeft(null);
252252
borderPane.setRight(projectsVBox);
253253
} else {
@@ -256,7 +256,7 @@ private void initialize() {
256256

257257
}
258258
};
259-
Model.DISPLAY_PROJECTS_RIGHT.addListener((a, oldValue, newValue) -> displayProjectRightRunnable.run());
259+
model.displayProjectsRight.addListener((a, oldValue, newValue) -> displayProjectRightRunnable.run());
260260
displayProjectRightRunnable.run();
261261

262262
// Setup textarea font color binding
@@ -277,15 +277,15 @@ private void initialize() {
277277
}
278278
}
279279

280-
Model.activeWorkItem.addListener((a, b, c) -> {
280+
model.activeWorkItem.addListener((a, b, c) -> {
281281
updateProjectView();
282282
textArea.setText("");
283283
});
284284

285285
model.getAvailableProjects().addListener(this::setUpAvailableProjectsListener);
286286

287-
Model.DEFAULT_BACKGROUND_COLOR.addListener((a, b, c) -> updateMainBackgroundColor.run());
288-
Model.HOVER_BACKGROUND_COLOR.addListener((a, b, c) -> updateMainBackgroundColor.run());
287+
model.defaultBackgroundColor.addListener((a, b, c) -> updateMainBackgroundColor.run());
288+
model.hoverBackgroundColor.addListener((a, b, c) -> updateMainBackgroundColor.run());
289289
updateMainBackgroundColor.run();
290290
});
291291

@@ -374,10 +374,10 @@ private void calendarClicked() {
374374
}
375375

376376
private void runUpdateMainBackgroundColor() {
377-
Color color = Model.DEFAULT_BACKGROUND_COLOR.get();
377+
Color color = model.defaultBackgroundColor.get();
378378
double opacity = 0;
379379
if (mouseHoveringProperty.get()) {
380-
color = Model.HOVER_BACKGROUND_COLOR.get();
380+
color = model.hoverBackgroundColor.get();
381381
opacity = .3;
382382
}
383383
String style = changeStyleAttribute(pane.getStyle(), "fx-background-color",
@@ -399,7 +399,7 @@ private void setUpAvailableProjectsListener(final Change<? extends Project> lis)
399399
final List<? extends Project> removedSubList = lis.getRemoved();
400400
for (final Project project : removedSubList) {
401401
// change to idle if removed project was active
402-
if (project == Model.activeWorkItem.get().getProject()) {
402+
if (project == model.activeWorkItem.get().getProject()) {
403403
changeProject(model.getIdleProject(), 0);
404404
}
405405
final Node remove = projectSelectionNodeMap.remove(project);
@@ -430,7 +430,7 @@ private void setProjectListVisible(final boolean showProjectList) {
430430
final double afterWidth = mainStage.getWidth();
431431
projectsVBox.setVisible(showProjectList);
432432
final double offset = afterWidth - beforeWidth;
433-
if (!Model.DISPLAY_PROJECTS_RIGHT.get()) {
433+
if (!model.displayProjectsRight.get()) {
434434
// we only need to move the stage if the node on the left is hidden
435435
// not sure how we can prevent the jumping
436436
mainStage.setX(mainStage.getX() - offset);
@@ -456,7 +456,7 @@ private void loadSubStages() {
456456
final FXMLLoader fxmlLoader2 = createFXMLLoader(RESOURCE.FXML_SETTINGS);
457457
final Parent root1 = fxmlLoader2.load();
458458
settingsController = fxmlLoader2.getController();
459-
settingsController.setController(controller);
459+
settingsController.setControllerAndModel(controller, model);
460460
settingsStage = new Stage();
461461
settingsController.setStage(settingsStage);
462462
settingsStage.initModality(Modality.APPLICATION_MODAL);
@@ -559,7 +559,7 @@ private Node addProjectToProjectList(final Project p) {
559559

560560
grid.add(new Label("New time distribution"), 0, gridRow);
561561
gridRow++;
562-
grid.add(new Label("Active project duration: " + Model.activeWorkItem.get().getProject().getName()), 0,
562+
grid.add(new Label("Active project duration: " + model.activeWorkItem.get().getProject().getName()), 0,
563563
gridRow);
564564
final Label currentProjectTimeLabel = new Label(TIME_ZERO);
565565
grid.add(currentProjectTimeLabel, 1, gridRow);
@@ -585,7 +585,7 @@ private Node addProjectToProjectList(final Project p) {
585585
currentProjectTimeLabel.setText(DateFormatter.secondsToHHMMSS(secondsActiveWork));
586586
newProjectTimeLabel.setText(DateFormatter.secondsToHHMMSS(secondsNewWork));
587587
newEndTimeLabel.setText(
588-
DateFormatter.toTimeString(Model.activeWorkItem.get().getEndTime().minusSeconds(secondsOffset)));
588+
DateFormatter.toTimeString(model.activeWorkItem.get().getEndTime().minusSeconds(secondsOffset)));
589589
};
590590
activeWorkSecondsProperty.addListener((obs, oldValue, newValue) -> updateLabelsRunnable.run());
591591
slider.valueProperty().addListener((obs, oldValue, newValue) -> updateLabelsRunnable.run());
@@ -793,10 +793,10 @@ private void updateTaskbarIcon(final long currentWorkSeconds) {
793793
final GraphicsContext gcIcon = taskbarCanvas.getGraphicsContext2D();
794794

795795
gcIcon.clearRect(0, 0, taskbarCanvas.getWidth(), taskbarCanvas.getHeight());
796-
gcIcon.setFill(Model.activeWorkItem.get().getProject().getColor());
796+
gcIcon.setFill(model.activeWorkItem.get().getProject().getColor());
797797
gcIcon.fillRect(1, 27, 31, 5);
798798

799-
gcIcon.setStroke(Model.TASK_BAR_COLOR.get());
799+
gcIcon.setStroke(model.taskBarColor.get());
800800
gcIcon.setTextAlign(TextAlignment.CENTER);
801801
gcIcon.strokeText(DateFormatter.secondsToHHMMSS(currentWorkSeconds).replaceFirst(":", ":\n"),
802802
Math.round(taskbarCanvas.getWidth() / 2), Math.round(taskbarCanvas.getHeight() / 2) - 5.0);
@@ -819,7 +819,7 @@ private void updateTaskbarIcon(final long currentWorkSeconds) {
819819
}
820820

821821
private void updateProjectView() {
822-
final Project project = Model.activeWorkItem.get().getProject();
822+
final Project project = model.activeWorkItem.get().getProject();
823823
currentProjectLabel.setText(project.getName());
824824
currentProjectLabel.setUnderline(project.isWork());
825825
final Circle circle = new Circle(4);

src/main/java/de/doubleslash/keeptime/viewpopup/ViewControllerPopup.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,18 @@ public class ViewControllerPopup {
5555

5656
private Controller controller;
5757

58+
private Model model;
59+
5860
private FilteredList<Project> filteredData;
5961

6062
private void changeProject(final Project item) {
6163
LOG.info("Change project to '{}'.", item.getName());
6264

6365
// ask for a note for the current project
64-
final TextInputDialog dialog = new TextInputDialog(Model.activeWorkItem.get().getNotes());
66+
final TextInputDialog dialog = new TextInputDialog(model.activeWorkItem.get().getNotes());
6567
dialog.setTitle("Note for current project");
6668
dialog.setHeaderText(
67-
"Add a note for '" + Model.activeWorkItem.get().getProject().getName() + "' before changing project?");
69+
"Add a note for '" + model.activeWorkItem.get().getProject().getName() + "' before changing project?");
6870
dialog.setContentText("Note: ");
6971

7072
this.stage.setAlwaysOnTop(false);
@@ -163,7 +165,7 @@ protected void updateItem(final Project project, final boolean empty) {
163165
} else {
164166
setOnMouseClicked(ev -> changeProject(project));
165167

166-
final boolean isActiveProject = project == Model.activeWorkItem.get().getProject();
168+
final boolean isActiveProject = project == model.activeWorkItem.get().getProject();
167169
setText((isActiveProject ? "* " : "") + project.getName());
168170
setTextFill(project.getColor());
169171
setUnderline(project.isWork());
@@ -176,6 +178,7 @@ protected void updateItem(final Project project, final boolean empty) {
176178

177179
public void setControllerAndModel(final Controller controller, final Model model) {
178180
this.controller = controller;
181+
this.model = model;
179182

180183
filteredData = new FilteredList<>(model.getSortedAvailableProjects(), p -> true);
181184
projectListView.setItems(filteredData);

0 commit comments

Comments
 (0)