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

View File

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