Skip to content

Commit 0abf2de

Browse files
committed
#178: transform settings table to key-value table for easier extesion (not all done yet)
1 parent e18e3bb commit 0abf2de

File tree

8 files changed

+176
-122
lines changed

8 files changed

+176
-122
lines changed

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class App extends Application {
7878
private ViewController viewController;
7979

8080
private GlobalScreenListener globalScreenListener;
81+
private Settings settings;
8182

8283
@Override
8384
public void init() throws Exception {
@@ -95,6 +96,7 @@ public void init() throws Exception {
9596

9697
model = springContext.getBean(Model.class);
9798
controller = springContext.getBean(Controller.class);
99+
settings = springContext.getBean(Settings.class);
98100
controller.enableAutoSave();
99101
model.setSpringContext(springContext);
100102
}
@@ -183,11 +185,8 @@ private void initialiseApplication(final Stage primaryStage) throws Exception {
183185
private void readSettings() {
184186
LOG.debug("Reading configuration");
185187

186-
final List<Settings> settingsList = model.getSettingsRepository().findAll();
187-
final Settings settings;
188-
if (settingsList.isEmpty()) {
188+
if (false) {
189189
LOG.info("Empty settings. Set default");
190-
settings = new Settings();
191190
settings.setTaskBarColor(model.taskBarColor.get());
192191

193192
settings.setDefaultBackgroundColor(Model.ORIGINAL_DEFAULT_BACKGROUND_COLOR);
@@ -198,10 +197,8 @@ private void readSettings() {
198197
settings.setUseHotkey(false);
199198
settings.setDisplayProjectsRight(false);
200199
settings.setHideProjectsOnMouseExit(false);
201-
model.getSettingsRepository().save(settings);
202200
} else {
203201
LOG.info("Got settings from database");
204-
settings = settingsList.get(0);
205202
}
206203

207204
model.defaultBackgroundColor.set(settings.getDefaultBackgroundColor());

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,13 @@ public class Controller {
4444
private Interval autoSaveInterval;
4545

4646
private final Model model;
47+
private final Settings settings;
4748

4849
private final DateProvider dateProvider;
4950

50-
public Controller(final Model model, final DateProvider dateProvider) {
51+
public Controller(final Model model, Settings settings, final DateProvider dateProvider) {
5152
this.model = model;
53+
this.settings = settings;
5254
this.dateProvider = dateProvider;
5355
}
5456

@@ -118,7 +120,6 @@ public void addNewProject(final Project project) {
118120
}
119121

120122
public void updateSettings(final Settings newValuedSettings) {
121-
Settings settings = model.getSettingsRepository().findAll().get(0);
122123

123124
settings.setTaskBarColor(newValuedSettings.getTaskBarColor());
124125
settings.setDefaultBackgroundColor(newValuedSettings.getDefaultBackgroundColor());
@@ -136,8 +137,6 @@ public void updateSettings(final Settings newValuedSettings) {
136137
settings.setRemindIfNotesAreEmptyOnlyForWorkEntry(newValuedSettings.isRemindIfNotesAreEmptyOnlyForWorkEntry());
137138
settings.setConfirmClose(newValuedSettings.isConfirmClose());
138139

139-
settings = model.getSettingsRepository().save(settings);
140-
141140
model.defaultBackgroundColor.set(settings.getDefaultBackgroundColor());
142141
model.defaultFontColor.set(settings.getDefaultFontColor());
143142
model.hoverBackgroundColor.set(settings.getHoverBackgroundColor());
@@ -163,14 +162,14 @@ public void shutdown() {
163162
changeProject(model.getIdleProject(), 0);
164163

165164
LOG.info("Updating settings to persist local changes on shutdown.");
166-
final Settings newSettings = new Settings(model.hoverBackgroundColor.get(), model.hoverFontColor.get(),
165+
/*final Settings newSettings = new Settings(model.hoverBackgroundColor.get(), model.hoverFontColor.get(),
167166
model.defaultBackgroundColor.get(), model.defaultFontColor.get(), model.taskBarColor.get(),
168167
model.useHotkey.get(), model.displayProjectsRight.get(), model.hideProjectsOnMouseExit.get(),
169168
model.screenSettings.proportionalX.get(), model.screenSettings.proportionalY.get(),
170169
model.screenSettings.screenHash.get(), model.screenSettings.saveWindowPosition.get(),
171170
model.remindIfNotesAreEmpty.get(), model.remindIfNotesAreEmptyOnlyForWorkEntry.get(),
172171
model.confirmClose.get());
173-
updateSettings(newSettings);
172+
updateSettings(newSettings);*/
174173
}
175174

176175
public void deleteProject(final Project p) {
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package de.doubleslash.keeptime.model;
2+
3+
import jakarta.persistence.*;
4+
5+
@Entity
6+
@Table(name = "Settings")
7+
public class Setting {
8+
9+
@Id
10+
@Column(nullable = false, unique = true)
11+
private String setting;
12+
13+
@Lob
14+
private String settingValue;
15+
16+
public Setting(){
17+
// for hibernate
18+
}
19+
20+
public Setting(final String setting, final String settingValue) {
21+
this.setting = setting;
22+
this.settingValue = settingValue;
23+
}
24+
25+
public String getSetting() {
26+
return setting;
27+
}
28+
29+
public void setSetting(final String setting) {
30+
this.setting = setting;
31+
}
32+
33+
public String getSettingValue() {
34+
return settingValue;
35+
}
36+
37+
public void setSettingValue(final String settingValue) {
38+
this.settingValue = settingValue;
39+
}
40+
41+
}

0 commit comments

Comments
 (0)