2017-08-11 3 views
0

J'essaye d'implémenter le chargement paresseux avec la grille dans Vaadin 8. Mais il montre seulement une table vide. Qu'est-ce que je fais de mal? En outre, comment puis-je définir le nombre d'éléments à charger (limiter) à par exemple 20 éléments (la valeur par défaut est de 40 éléments)?Java, Vaadin 8, le chargement paresseux avec la grille

private Grid<Image> makeLazyTable() 
{ 
    Grid<Image> grid = new Grid<Image>();  
    DataProvider<Image, Void> dataProvider = DataProvider.fromCallbacks(
    query -> { 
     int offset = query.getOffset(); 
     int limit = query.getLimit();   
     OffsetRequest request = new OffsetRequest(); 
     request.setLimit(limit); 
     request.setOffset(offset); 
     List<QuerySortOrder> sort = query.getSortOrders(); 
     return ImagesRepository.findAll(request, sort); 
    }, 
    query -> ImagesRepository.getImageCount() 
);  
    grid.setDataProvider(dataProvider);  
    return grid; 
} 
+0

Avez-vous déboguer votre comte et la récupération du code? Quel nombre est retourné, est-ce que findAll renvoie des objets Image? –

+0

Oui, j'ai débogué le compte et récupérer le code. Les objets image sont renvoyés par le code de récupération. –

Répondre

1

Je n'ai ajouté aucune colonne. C'était la raison pour laquelle la table était vide. De cette façon, cela fonctionne:

Column<Image, String> filenameColumn = grid.addColumn(Image::getFilename); 
Column<Image, String> orientationColumn = grid.addColumn(Image::getOrientation); 
Column<Image, String> latitudeColumn = grid.addColumn(Image::getLatitude); 
Column<Image, String> longitudeColumn = grid.addColumn(Image::getLongitude);