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:
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())); }