ich bau gerade ein Tableview, dabei muss ich lazyLoading verwenden, um das zu realisieren
habe ich nach einer Möglichkeit gesucht den ersten und den letzten angezeigten Datensatz zu ermitteln um dann gegebenfalls nachzuladen und eventuelle Datensätze aus der OLst zu entfernen.
Ich bin auch fündig geworden und es funktioniert, leider habe ich bei der Rechere wie genau die Methode arbeitet keine Ergebnisse gefunden.
Insbesondere würde ich gerne genauer wissen was ein skin und was ein virtualflow ist.
getChildren : heißt das dort werden die Colums und Cells definiert ?
was representiert dann der flow ?
hier mal der Code,
habe ich nach einer Möglichkeit gesucht den ersten und den letzten angezeigten Datensatz zu ermitteln um dann gegebenfalls nachzuladen und eventuelle Datensätze aus der OLst zu entfernen.
Ich bin auch fündig geworden und es funktioniert, leider habe ich bei der Rechere wie genau die Methode arbeitet keine Ergebnisse gefunden.
Insbesondere würde ich gerne genauer wissen was ein skin und was ein virtualflow ist.
getChildren : heißt das dort werden die Colums und Cells definiert ?
was representiert dann der flow ?
hier mal der Code,
Code:
public int[] getVisibleRows(TableView table) {
int indexFirst;
int indexLast;
// sichtbarer Teil des tabviews
TableViewSkin<?> skin = (TableViewSkin) table.getSkin();
if (skin == null) {
return new int[] {0, 0};
}
VirtualFlow<?> flow = (VirtualFlow) skin.getChildren().get(1);
if (flow != null && flow.getFirstVisibleCellWithinViewPort() != null && flow.getLastVisibleCellWithinViewPort() != null) {
indexFirst = flow.getFirstVisibleCellWithinViewPort().getIndex();
if (indexFirst >= table.getItems().size())
indexFirst = table.getItems().size() - 1;
indexLast = flow.getLastVisibleCellWithinViewPort().getIndex();
if (indexLast >= table.getItems().size()) {
indexLast = table.getItems().size() - 1;
}
} else {
indexFirst = 0;
indexLast = 0;
}
return new int[] {indexFirst, indexLast};