From e92a43a37e6d1643e870b0b5ef8de0df943c8d35 Mon Sep 17 00:00:00 2001 From: Jannik Date: Mon, 11 Dec 2017 10:31:23 +0100 Subject: [PATCH] added a search bar for smmdb courses * added a search bar for the smmdbcourse table * fixed some wrong Anschors at the smmdb Anchorpane --- .../application/MainWindowController.java | 41 +++++++++++++++++-- src/main/resources/fxml/MainWindow.fxml | 9 ++-- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/cemu_UI/application/MainWindowController.java b/src/main/java/com/cemu_UI/application/MainWindowController.java index 719c4a1..61bc094 100644 --- a/src/main/java/com/cemu_UI/application/MainWindowController.java +++ b/src/main/java/com/cemu_UI/application/MainWindowController.java @@ -152,6 +152,9 @@ public class MainWindowController { @FXML private JFXTextField romTextField; + + @FXML + private JFXTextField courseSearchTextFiled; @FXML private TextFlow smmdbTextFlow; @@ -291,6 +294,7 @@ public class MainWindowController { private ObservableList smmIDs = FXCollections.observableArrayList("fe31b7f2", "44fc5929"); // TODO add more IDs private ObservableList games = FXCollections.observableArrayList(); ObservableList courses = FXCollections.observableArrayList(); + ObservableList filteredCourses = FXCollections.observableArrayList(); ArrayList courseText = new ArrayList(); ArrayList nameText = new ArrayList(); Properties props = new Properties(); @@ -361,9 +365,9 @@ public class MainWindowController { applyColor(); // initialize courseTable - titleColumn.setPrefWidth(160); - timeColumn.setPrefWidth(127); - starsColumn.setPrefWidth(100); + titleColumn.setPrefWidth(185); + timeColumn.setPrefWidth(112); + starsColumn.setPrefWidth(90); courseTreeTable.setRoot(root); courseTreeTable.setShowRoot(false); @@ -611,6 +615,32 @@ public class MainWindowController { } }); + courseSearchTextFiled.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, String newValue) { + + filteredCourses.removeAll(filteredCourses); + root.getChildren().remove(0, root.getChildren().size()); + + for (int i = 0; i < courses.size(); i++) { + if (courses.get(i).getTitle().toLowerCase() + .contains(courseSearchTextFiled.getText().toLowerCase())) { + + // add data from courses to filteredCourses where title contains search input + filteredCourses.add(courses.get(i)); + } + } + + for (int i = 0; i < filteredCourses.size(); i++) { + CourseTableDataType helpCourse = new CourseTableDataType(filteredCourses.get(i).getTitle(), + filteredCourses.get(i).getId(), filteredCourses.get(i).getTime(), + filteredCourses.get(i).getStars()); + + root.getChildren().add(new TreeItem(helpCourse)); // add data to root-node + } + } + }); + // Change-listener for TreeTable courseTreeTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override @@ -887,6 +917,11 @@ public class MainWindowController { } saveSettings(); } + + @FXML + void courseSearchTextFiledAction(ActionEvent event) { + // not in use + } @FXML void smmdbDownloadBtnAction(ActionEvent event) { diff --git a/src/main/resources/fxml/MainWindow.fxml b/src/main/resources/fxml/MainWindow.fxml index e854236..88f644e 100644 --- a/src/main/resources/fxml/MainWindow.fxml +++ b/src/main/resources/fxml/MainWindow.fxml @@ -147,19 +147,20 @@ - + + - + - + -