Skip to content

Commit e7c2946

Browse files
author
gustavnavar
committed
Add support for initial predicte and order list
1 parent e437ab9 commit e7c2946

4 files changed

Lines changed: 35 additions & 30 deletions

File tree

gridcore/src/main/java/me/agno/gridcore/Grid.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,12 @@ public class Grid<T> implements IGrid<T> {
5252
@Getter
5353
private Class<T> targetType;
5454

55+
@Getter
56+
@Setter
5557
private Predicate predicate;
5658

57-
public Predicate getPredicate() {
58-
//call preprocessors before:
59-
preProcess();
60-
return this.predicate;
61-
}
62-
6359
@Getter
60+
@Setter
6461
private List<Order> orderList;
6562

6663
@Getter
@@ -145,18 +142,15 @@ public IGridPager<T> getPager() {
145142
@Setter
146143
private String removeDiacritics = null;
147144

148-
public Grid(EntityManager entityManager, Class<T> targetType, Predicate predicate, List<Order> orderList,
149-
LinkedHashMap<String, List<String>> query, IColumnBuilder<T> columnBuilder) {
145+
public Grid(EntityManager entityManager, Class<T> targetType, LinkedHashMap<String, List<String>> query,
146+
IColumnBuilder<T> columnBuilder) {
150147

151148
this.entityManager = entityManager;
152149
this.targetType = targetType;
153150
this.criteriaBuilder = entityManager.getCriteriaBuilder();
154151
this.criteriaQuery = this.criteriaBuilder.createQuery(this.targetType);
155152
this.root = this.criteriaQuery.from(this.targetType);
156153

157-
this.predicate = predicate;
158-
this.orderList = orderList;
159-
160154
this.query = query;
161155

162156
//set up sort settings:

gridcore/src/main/java/me/agno/gridcore/IGrid.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package me.agno.gridcore;
22

33
import jakarta.persistence.EntityManager;
4-
import jakarta.persistence.criteria.CriteriaBuilder;
5-
import jakarta.persistence.criteria.CriteriaQuery;
6-
import jakarta.persistence.criteria.Predicate;
7-
import jakarta.persistence.criteria.Root;
4+
import jakarta.persistence.criteria.*;
85
import me.agno.gridcore.columns.GridColumnCollection;
96
import me.agno.gridcore.filtering.FilterProcessor;
107
import me.agno.gridcore.pagination.IGridPager;
@@ -103,4 +100,6 @@ public interface IGrid<T> extends IGridOptions{
103100
Class<T> getTargetType();
104101

105102
Predicate getPredicate();
103+
104+
List<Order> getOrderList();
106105
}

gridcore/src/main/java/me/agno/gridcore/server/GridServer.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,39 +25,34 @@
2525
import java.util.function.Consumer;
2626
import java.util.stream.Collectors;
2727

28+
@Getter
2829
public class GridServer<T> implements IGridServer<T> {
2930

30-
@Getter
3131
protected IGrid<T> grid;
3232

3333
public GridServer()
3434
{ }
3535

36-
public GridServer(EntityManager entityManager, Class<T> targetType, Predicate predicate, List<Order> orderList,
37-
Map<String, String[]> query, Consumer<IGridColumnCollection<T>> columns) {
38-
this(entityManager, targetType, predicate, orderList, query, true, "", columns,
39-
0, null);
36+
public GridServer(EntityManager entityManager, Class<T> targetType, Map<String, String[]> query,
37+
Consumer<IGridColumnCollection<T>> columns) {
38+
this(entityManager, targetType, query, columns,0, null);
4039
}
4140

42-
public GridServer(EntityManager entityManager, Class<T> targetType, Predicate predicate, List<Order> orderList,
43-
Map<String, String[]> query, boolean renderOnlyRows,
44-
String gridName, Consumer<IGridColumnCollection<T>> columns, int pageSize) {
45-
this(entityManager, targetType, predicate, orderList, query, renderOnlyRows, gridName, columns,
46-
pageSize, null);
41+
public GridServer(EntityManager entityManager, Class<T> targetType, Map<String, String[]> query,
42+
Consumer<IGridColumnCollection<T>> columns, int pageSize) {
43+
this(entityManager, targetType, query, columns, pageSize, null);
4744
}
4845

49-
public GridServer(EntityManager entityManager, Class<T> targetType, Predicate predicate, List<Order> orderList,
50-
Map<String, String[]> query, boolean renderOnlyRows,
51-
String gridName, Consumer<IGridColumnCollection<T>> columns, int pageSize,
52-
IColumnBuilder<T> columnBuilder) {
46+
public GridServer(EntityManager entityManager, Class<T> targetType, Map<String, String[]> query,
47+
Consumer<IGridColumnCollection<T>> columns, int pageSize, IColumnBuilder<T> columnBuilder) {
5348

5449
var map = query.entrySet()
5550
.stream()
5651
.collect(Collectors.toMap(Map.Entry::getKey, entry -> Arrays.asList(entry.getValue())));
5752

5853
var linkedHashMap = new LinkedHashMap<>(map);
5954

60-
this.grid = new Grid<T>(entityManager, targetType, predicate, orderList, linkedHashMap, columnBuilder);
55+
this.grid = new Grid<T>(entityManager, targetType, linkedHashMap, columnBuilder);
6156

6257
if(columns != null)
6358
columns.accept(this.grid.getColumns());
@@ -205,6 +200,16 @@ public IGridServer<T> setRemoveDiacritics(String removeDiacritics) {
205200
return this;
206201
}
207202

203+
public IGridServer<T> setPredicate(Predicate predicate) {
204+
((Grid<T>)this.grid).setPredicate(predicate);
205+
return this;
206+
}
207+
208+
public IGridServer<T> setOrder(List<Order> orderList) {
209+
((Grid<T>)this.grid).setOrderList(orderList);
210+
return this;
211+
}
212+
208213
public ItemsDTO<T> getItemsToDisplay() {
209214

210215
var items = this.grid.getItemsToDisplay();

gridcore/src/main/java/me/agno/gridcore/server/IGridServer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package me.agno.gridcore.server;
22

3+
import jakarta.persistence.criteria.Order;
4+
import jakarta.persistence.criteria.Predicate;
35
import me.agno.gridcore.IGrid;
46
import me.agno.gridcore.IGridColumnCollection;
57
import me.agno.gridcore.SearchOptions;
68
import me.agno.gridcore.sorting.GridSortMode;
79
import me.agno.gridcore.utils.ItemsDTO;
810

11+
import java.util.List;
912
import java.util.function.Consumer;
1013

1114
public interface IGridServer<T> {
@@ -51,6 +54,10 @@ public interface IGridServer<T> {
5154

5255
IGridServer<T> setRemoveDiacritics(String methodName);
5356

57+
IGridServer<T> setPredicate(Predicate predicate);
58+
59+
IGridServer<T> setOrder(List<Order> orderList);
60+
5461
ItemsDTO<T> getItemsToDisplay();
5562

5663
IGrid<T> getGrid();

0 commit comments

Comments
 (0)