fixed series are expanded when sorting

* fixed series are expanded when sorting
* fixed null pointer exception when sorting
This commit is contained in:
Jannik 2018-04-07 12:49:00 +02:00
parent 3afc836df7
commit ee3ec73a63
2 changed files with 20 additions and 10 deletions

View File

@ -363,7 +363,7 @@ public class MainWindowController {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
ObservableList<FilmTabelDataType> helpData;
filterData.removeAll(filterData);
filterData.clear();
filmRoot.getChildren().removeAll(filmRoot.getChildren());
helpData = filmsList;
@ -440,31 +440,33 @@ public class MainWindowController {
/**
* FIXME fix bug when sort by ASCENDING, wrong order
* FIXME when sorting, series are expanded
*/
columnFavorite.sortTypeProperty().addListener(new ChangeListener<SortType>() {
@Override
public void changed(ObservableValue<? extends SortType> paramObservableValue, SortType paramT1, SortType paramT2) {
filmRoot.getChildren().clear();
filterData.clear();
if (paramT2.equals(SortType.DESCENDING)) {
for (FilmTabelDataType film : filmsList) {
if (film.getFavorite()) {
filmRoot.getChildren().add(0, new TreeItem<FilmTabelDataType>(film));
filterData.add(0, film);
} else {
filmRoot.getChildren().add(new TreeItem<FilmTabelDataType>(film));
filterData.add(film);
}
}
} else {
System.out.println("ascending");
for (FilmTabelDataType film : filmsList) {
if (!film.getFavorite()) {
filmRoot.getChildren().add(new TreeItem<FilmTabelDataType>(film));
filterData.add(0, film);
} else {
filmRoot.getChildren().add(new TreeItem<FilmTabelDataType>(film));
filterData.add(film);
}
}
}
addDataUI(filterData);
}
});
@ -472,9 +474,17 @@ public class MainWindowController {
filmsTreeTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() {
@Override
public void changed(ObservableValue<?> observable, Object oldVal, Object newVal) {
if (filmsTreeTable.getSelectionModel().getSelectedItem() == null) {
return;
}
currentTableFilm = filmsTreeTable.getSelectionModel().getSelectedItem().getValue(); // set the current film object
indexList = filmsList.indexOf(currentTableFilm); // get selected items list index
indexTable = filmsTreeTable.getSelectionModel().getSelectedIndex(); // get selected items table index
for (FilmTabelDataType film : filmsList) {
if (film.equals(currentTableFilm)) {
indexList = filmsList.indexOf(film); // get selected items list index
}
}
last = indexTable - 1;
next = indexTable + 1;
@ -681,9 +691,9 @@ public class MainWindowController {
/**
* add data from films-list to films-table
*/
public void addDataUI() {
public void addDataUI(ObservableList<FilmTabelDataType> elementsList) {
for (FilmTabelDataType element : filmsList) {
for (FilmTabelDataType element : elementsList) {
// only if the entry contains a season and a episode it's a valid series
if (!element.getSeason().isEmpty() && !element.getEpisode().isEmpty()) {

View File

@ -232,7 +232,7 @@ public class DBController {
}
LOGGER.info("loading data to the GUI ...");
mainWindowController.addDataUI();
mainWindowController.addDataUI(mainWindowController.getFilmsList());
}
/**