System filtracji i sortowania - lambdaforg/Northwind_AGH GitHub Wiki

W naszym projekcie zaimplementowaliśmy system podstawowej filtracji produktów w celu łatwiejszego przeglądania produktów.

Stworzyliśmy do tego następujący interfejs graficzny:
Widok filtracji

Tak jak pokazuje zdjecie, stworzyliśmy:

  • filtracje po minimalnej i maskymalnej cenie,
  • nazwie produktu,
  • kategorii

Oraz dodaliśmy możliwość sortowania wyników rosnącą lub malejąco.

Sortowanie jest przeprowadzone przez proste dodanie atrybutu do Query, w jaki sposób mają być dane sortowane oraz po jakiej właściwości:

  Query query = new Query();  
        if(request.isDescIs()) {  
            productService.setSort("DESC");  
        query.with(Sort.by(Sort.Direction.DESC, "unitPrice"));  
        }  
        if(request.isAscIs()) {  
            productService.setSort("ASC");  
        query.with(Sort.by(Sort.Direction.ASC, "unitPrice"));  
        }  

Filtracja została stworzona w podobny sposób, dodająć do query kolejne kryteria w zależności od tego co użytkownik wybrał:

    if(!request.getName().isEmpty()){  
        query.addCriteria(Criteria.where("name").regex(request.getName()));    
    }