diff --git a/src/tourplaner/business/TourPlaner.java b/src/tourplaner/business/TourPlaner.java index 82359fc..5114cfe 100644 --- a/src/tourplaner/business/TourPlaner.java +++ b/src/tourplaner/business/TourPlaner.java @@ -175,4 +175,19 @@ public class TourPlaner{ FileHelper.openDefault(path); } + /** + * Sucht alle touren die den gegebenen tournamen enthalten + * @param tourname Name der zu suchen ist + * @return Alle touren die auf den Suchterm passen + */ + public static ArrayList sucheTour(String tourname){ + ArrayList touren = new ArrayList<>(); + getAllTours().forEach(t ->{ + if(t.getName().contains(tourname)){ + touren.add(t); + } + }); + return touren; + } + } diff --git a/src/tourplaner/ui/TourplanerController.java b/src/tourplaner/ui/TourplanerController.java index 646a513..cde6341 100644 --- a/src/tourplaner/ui/TourplanerController.java +++ b/src/tourplaner/ui/TourplanerController.java @@ -92,18 +92,18 @@ public class TourplanerController implements Initializable { } private void syncTour(String selectedItem){ - beschreibungTableView.getItems().removeIf(s -> true); //Leert die Table View komplett + beschreibungTableView.getItems().clear(); //Leert die Table View komplett beschreibungTableView.getItems().add(this.viewModel.getTour(selectedItem)); mapImageView.setImage(this.viewModel.getImage(selectedItem)); } private void syncTourNamen(){ - TourListView.getItems().removeIf(s -> true); + TourListView.getItems().clear(); TourListView.setItems(this.viewModel.getTourNamen()); } private void syncLogs(){ - logTableView.getItems().removeIf(s -> true); + logTableView.getItems().clear(); logTableView.setItems(this.viewModel.getLogData()); } @@ -126,7 +126,7 @@ public class TourplanerController implements Initializable { //Log anzeigen logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinelogsvorhanden"))); - logTableView.getItems().removeIf(s -> true); + logTableView.getItems().clear(); logTableView.setItems(this.viewModel.getLogData()); logDauerCol.setCellValueFactory(new PropertyValueFactory("dauer")); logStreckeCol.setCellValueFactory(new PropertyValueFactory("strecke")); @@ -138,6 +138,10 @@ public class TourplanerController implements Initializable { logBemerkungCol.setCellValueFactory(new PropertyValueFactory("bemerkung")); mapImageView.setImage(this.viewModel.getImage(this.viewModel.getSelectedTour().getName())); + if(this.viewModel.isSucheAktiv()){ + this.viewModel.setSucheAktiv(false); + syncTourNamen(); + } } /** @@ -165,7 +169,7 @@ public class TourplanerController implements Initializable { */ @FXML private void delTour(){ - this.beschreibungTableView.getItems().removeIf(s -> true); //löscht alles aus der tabelle + this.beschreibungTableView.getItems().clear(); //löscht alles aus der tabelle this.titleTextView.setText(ConfigHelper.getLangIniString("keinetourselected")); this.viewModel.delTour(); logTableView.setPlaceholder(new Label( ConfigHelper.getLangIniString("keinetourselected"))); diff --git a/src/tourplaner/viewmodels/ViewModel.java b/src/tourplaner/viewmodels/ViewModel.java index 76d7be1..7277ed0 100644 --- a/src/tourplaner/viewmodels/ViewModel.java +++ b/src/tourplaner/viewmodels/ViewModel.java @@ -28,7 +28,8 @@ public class ViewModel { //Log private final ObservableList logData = FXCollections.observableArrayList(); private Log selectedLog; - +// Suche + private boolean sucheAktiv; public Image getImage(String tourname){ @@ -457,7 +458,7 @@ public class ViewModel { getTourData().forEach(s -> { namen.add(s.getName()); }); - tourNamen.removeAll(); + tourNamen.clear(); tourNamen.addAll(namen); return tourNamen; } @@ -479,7 +480,7 @@ public class ViewModel { } public ObservableList getTourData() { - tourData.removeAll(); + tourData.clear(); tourData.addAll(TourPlaner.getAllTours()); return tourData; } @@ -514,7 +515,20 @@ public class ViewModel { ConfigHelper.getLangIniString("suchfeldleer"), ConfigHelper.getLangIniString("suchtextzuerst")); } - // TODO: 19.03.2021 Suchlogik + ArrayList result = TourPlaner.sucheTour(sucheInput); + tourNamen.clear(); + for (Tour tour:result) { + tourNamen.add(tour.getName()); + } + this.sucheAktiv = true; + } + + public boolean isSucheAktiv() { + return sucheAktiv; + } + + public void setSucheAktiv(boolean sucheAktiv) { + this.sucheAktiv = sucheAktiv; } /**