Suche + getTourData/getTourNamen doppelte Daten bugfix

This commit is contained in:
Georg Reisinger 2021-04-17 14:40:00 +02:00
parent f4e9b16792
commit 9472a5537a
3 changed files with 42 additions and 9 deletions

View File

@ -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<Tour> sucheTour(String tourname){
ArrayList<Tour> touren = new ArrayList<>();
getAllTours().forEach(t ->{
if(t.getName().contains(tourname)){
touren.add(t);
}
});
return touren;
}
}

View File

@ -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<Log, String>("dauer"));
logStreckeCol.setCellValueFactory(new PropertyValueFactory<Log, String>("strecke"));
@ -138,6 +138,10 @@ public class TourplanerController implements Initializable {
logBemerkungCol.setCellValueFactory(new PropertyValueFactory<Log, String>("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")));

View File

@ -28,7 +28,8 @@ public class ViewModel {
//Log
private final ObservableList<Log> 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<Tour> 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<Tour> 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;
}
/**