Skip to content

Commit ca70845

Browse files
author
Martin Plieske
committed
put filter logic in own method, refactored editProject method
1 parent 2008837 commit ca70845

File tree

1 file changed

+26
-29
lines changed

1 file changed

+26
-29
lines changed

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

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import javafx.scene.control.Alert;
2626
import javafx.scene.control.Alert.AlertType;
2727
import javafx.scene.control.ButtonType;
28-
import javafx.scene.control.CheckBox;
29-
import javafx.scene.control.ColorPicker;
3028
import javafx.scene.control.ContextMenu;
3129
import javafx.scene.control.Dialog;
3230
import javafx.scene.control.Label;
@@ -35,8 +33,6 @@
3533
import javafx.scene.control.MenuItem;
3634
import javafx.scene.control.MultipleSelectionModel;
3735
import javafx.scene.control.SelectionMode;
38-
import javafx.scene.control.Spinner;
39-
import javafx.scene.control.TextArea;
4036
import javafx.scene.control.TextField;
4137
import javafx.scene.control.Tooltip;
4238
import javafx.scene.effect.Bloom;
@@ -57,7 +53,7 @@ public class ProjectsListViewController {
5753
private final Map<Project, Node> projectSelectionNodeMap;
5854
private final FilteredList<Project> filteredData;
5955

60-
private boolean hideable;
56+
private final boolean hideable;
6157
private ManageProjectController manageProjectController;
6258

6359
public ProjectsListViewController(final Model model, final Controller controller, final Stage mainStage,
@@ -76,21 +72,7 @@ public ProjectsListViewController(final Model model, final Controller controller
7672
searchTextField.textProperty().addListener((a, b, newValue) -> {
7773
LOG.info("New filter value: " + newValue);
7874
// TODO do i always have to create a new predicate?
79-
filteredData.setPredicate(project -> {
80-
// If filter text is empty, display all data.
81-
if (newValue == null || newValue.isEmpty()) {
82-
return true;
83-
}
84-
85-
final String lowerCaseFilter = newValue.toLowerCase();
86-
87-
if (project.getName().toLowerCase().contains(lowerCaseFilter)
88-
|| project.getDescription().toLowerCase().contains(lowerCaseFilter)) {
89-
return true;
90-
}
91-
92-
return false;
93-
});
75+
filteredData.setPredicate(project -> doesProjectMatchSearchFilter(newValue, project));
9476
LOG.debug("Amount of projects to show '{}'.", filteredData.size());
9577
availableProjectsListView.getSelectionModel().selectFirst();
9678
availableProjectsListView.scrollTo(0);
@@ -135,6 +117,22 @@ public ProjectsListViewController(final Model model, final Controller controller
135117
availableProjectsListView.getSelectionModel().selectFirst();
136118
}
137119

120+
static boolean doesProjectMatchSearchFilter(final String searchText, final Project project) {
121+
// If filter text is empty, display all data.
122+
if (searchText == null || searchText.isEmpty()) {
123+
return true;
124+
}
125+
126+
final String lowerCaseFilter = searchText.toLowerCase();
127+
128+
if (project.getName().toLowerCase().contains(lowerCaseFilter)
129+
|| project.getDescription().toLowerCase().contains(lowerCaseFilter)) {
130+
return true;
131+
}
132+
133+
return false;
134+
}
135+
138136
/**
139137
* Update UI
140138
*/
@@ -324,20 +322,19 @@ private GridPane setUpEditProjectGridPane(final Project p) {
324322
manageProjectController = loader.getController();
325323
manageProjectController.setModel(model);
326324
manageProjectController.secondInitialize();
327-
manageProjectController.setValues(p.getName(), p.getDescription(), p.getColor(), p.isWork(), p.getIndex());
325+
manageProjectController.setValues(p);
328326

329327
return grid;
330328
}
331329

332330
private void editProject(final Project p, final ManageProjectController manageProjectController) {
333-
final TextField nameTextField = manageProjectController.getNameTextField();
334-
final TextArea descriptionTextArea = manageProjectController.getDescriptionTextArea();
335-
final ColorPicker textFillColorPicker = manageProjectController.getTextFillColorPicker();
336-
final CheckBox isWorkCheckBox = manageProjectController.getIsWorkCheckBox();
337-
final Spinner<Integer> sortIndexSpinner = manageProjectController.getSortIndexSpinner();
338-
339-
final Project newValues = new Project(nameTextField.getText(), descriptionTextArea.getText(),
340-
textFillColorPicker.getValue(), isWorkCheckBox.isSelected(), sortIndexSpinner.getValue());
331+
final String projectName = manageProjectController.getProjectName();
332+
final String projectDescription = manageProjectController.getProjectDescription();
333+
final Color projectColor = manageProjectController.getProjectColor();
334+
final boolean isWork = manageProjectController.isWork();
335+
final int index = manageProjectController.getIndex();
336+
337+
final Project newValues = new Project(projectName, projectDescription, projectColor, isWork, index);
341338
controller.editProject(p, newValues);
342339
}
343340

0 commit comments

Comments
 (0)