Skip to content

Commit d02a78c

Browse files
committed
extracted TimeSpinner logic to extra Function
1 parent c770b32 commit d02a78c

File tree

1 file changed

+22
-53
lines changed

1 file changed

+22
-53
lines changed

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

Lines changed: 22 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -83,61 +83,30 @@ public void setModel(final Model model) {
8383

8484
@FXML
8585
private void initialize() {
86-
startTimeSpinner.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
87-
final LocalTimeStringConverter stringConverter = new LocalTimeStringConverter(FormatStyle.MEDIUM);
88-
final StringProperty text = (StringProperty) observable;
89-
try {
90-
stringConverter.fromString(newValue);
91-
text.setValue(newValue);
92-
// needed to log in value from editor to spinner
93-
startTimeSpinner.increment(0); // TODO find better Solution
94-
} catch (final DateTimeParseException e) {
95-
text.setValue(oldValue);
96-
}
97-
});
9886

99-
endTimeSpinner.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
87+
setUpTimeSpinner(startTimeSpinner);
88+
89+
setUpTimeSpinner(endTimeSpinner);
90+
91+
setProjectUpComboBox();
92+
93+
}
94+
95+
private void setUpTimeSpinner(final Spinner<LocalTime> spinner) {
96+
spinner.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
10097
final LocalTimeStringConverter stringConverter = new LocalTimeStringConverter(FormatStyle.MEDIUM);
10198
final StringProperty text = (StringProperty) observable;
10299
try {
103100
stringConverter.fromString(newValue);
104101
text.setValue(newValue);
105102
// needed to log in value from editor to spinner
106-
endTimeSpinner.increment(0); // TODO find better Solution
103+
spinner.increment(0); // TODO find better Solution
107104
} catch (final DateTimeParseException e) {
108105
text.setValue(oldValue);
109106
}
110107
});
111108

112-
startTimeSpinner.setValueFactory(new SpinnerValueFactory<LocalTime>() {
113-
114-
@Override
115-
public void decrement(final int steps) {
116-
if (getValue() == null) {
117-
setValue(LocalTime.now());
118-
} else {
119-
final LocalTime time = getValue();
120-
setValue(time.minusMinutes(steps));
121-
}
122-
123-
}
124-
125-
@Override
126-
public void increment(final int steps) {
127-
if (getValue() == null) {
128-
setValue(LocalTime.now());
129-
} else {
130-
final LocalTime time = getValue();
131-
setValue(time.plusMinutes(steps));
132-
}
133-
134-
}
135-
136-
});
137-
138-
startTimeSpinner.getValueFactory().setConverter(new LocalTimeStringConverter(FormatStyle.MEDIUM));
139-
140-
endTimeSpinner.setValueFactory(new SpinnerValueFactory<LocalTime>() {
109+
spinner.setValueFactory(new SpinnerValueFactory<LocalTime>() {
141110

142111
@Override
143112
public void decrement(final int steps) {
@@ -162,24 +131,23 @@ public void increment(final int steps) {
162131
}
163132

164133
});
165-
endTimeSpinner.getValueFactory().setConverter(new LocalTimeStringConverter(FormatStyle.MEDIUM));
166134

167-
setUpComboBox();
135+
spinner.getValueFactory().setConverter(new LocalTimeStringConverter(FormatStyle.MEDIUM));
168136

169137
}
170138

171-
private void setUpComboBox() {
139+
private void setProjectUpComboBox() {
172140
// color Dropdown Options
173141
projectComboBox.setCellFactory(listView -> new ListCell<Project>() {
174142

175143
@Override
176-
protected void updateItem(final Project item, final boolean empty) {
177-
super.updateItem(item, empty);
178-
if (item == null || empty) {
144+
protected void updateItem(final Project project, final boolean empty) {
145+
super.updateItem(project, empty);
146+
if (project == null || empty) {
179147
setGraphic(null);
180148
} else {
181-
setColor(this, item.getColor());
182-
setText(item.getName());
149+
setColor(this, project.getColor());
150+
setText(project.getName());
183151

184152
}
185153
}
@@ -198,12 +166,12 @@ public String toString(final Project project) {
198166

199167
@Override
200168
public Project fromString(final String string) {
201-
169+
// ignores String and gets selected Value of ComboBox
202170
return projectComboBox.getValue();
203171
}
204172
});
205173

206-
// needs to set again because editable is ignored from fxml because of custom preselection
174+
// needs to set again because editable is ignored from fxml because of custom preselection of current Project
207175
projectComboBox.setEditable(true);
208176

209177
projectComboBox.valueProperty().addListener(
@@ -259,6 +227,7 @@ public void changed(final ObservableValue<? extends String> observable, final St
259227
}
260228
});
261229

230+
// manages Focusbehaviour
262231
projectComboBox.getEditor().focusedProperty().addListener((final ObservableValue<? extends Boolean> observable,
263232
final Boolean oldIsFocused, final Boolean newIsFocused) -> {
264233
if (Boolean.TRUE.equals(newIsFocused)) {

0 commit comments

Comments
 (0)