From f929e56f71afa8bebb160d2d8b4350d5b11c2128 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Thu, 13 Sep 2018 10:35:52 +0100 Subject: [PATCH 01/10] DWN-26012 Enable moving of the last column, and include cell vertical padding in cell height calculation --- .../src/main/java/com/notlob/jgrid/model/Viewport.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java index 613bdc4..3e98732 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java @@ -462,7 +462,7 @@ public Column getColumnForMouseOperation(final GC gc, final int x, final int y, final Rectangle viewportArea = getViewportArea(gc); int columnHeaderX = viewportArea.x + gridModel.getStyleRegistry().getCellSpacingHorizontal(); - for (int columnIndex=firstColumnIndex; columnIndex row : gridModel.getColumnHeaderRows()) { - currentY += grid.getRowHeight(row); + currentY += (grid.getRowHeight(row) + gridModel.getStyleRegistry().getCellSpacingVertical()); if (y <= currentY) { return -1; @@ -522,7 +522,7 @@ public int getRowIndexByY(final int y, final GC gc) { if (rowIndex < gridModel.getRows().size()) { final Row row = gridModel.getRows().get(rowIndex); - currentY += grid.getRowHeight(row); + currentY += (grid.getRowHeight(row) + gridModel.getStyleRegistry().getCellSpacingVertical()); if (y <= currentY) { return rowIndex; @@ -571,7 +571,7 @@ public int getRowY(final GC gc, final Row row) { return currentY; } - currentY += grid.getRowHeight(current); + currentY += (grid.getRowHeight(current) + gridModel.getStyleRegistry().getCellSpacingVertical()); } return -1; From d52f6e518eee329a5b6592b4052e11b63790c8f1 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Mon, 17 Sep 2018 12:44:48 +0100 Subject: [PATCH 02/10] DWN-26012 Vertical cell spacing when grid styling is applied --- .../java/com/notlob/jgrid/input/GridMouseHandler.java | 4 ++-- .../src/main/java/com/notlob/jgrid/model/Viewport.java | 6 +++--- .../java/com/notlob/jgrid/renderer/SelectionRenderer.java | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/input/GridMouseHandler.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/input/GridMouseHandler.java index 2bec20f..5c706c7 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/input/GridMouseHandler.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/input/GridMouseHandler.java @@ -116,8 +116,8 @@ public void mouseMove(final MouseEvent e) { hideTooltip(); if (resizing != null) { - resizeColumn(e.x); - + resizeColumn(e.x); + } else if (repositioningDetect != null) { checkForColumnMove(e.x); diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java index 3e98732..f80f069 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java @@ -430,7 +430,7 @@ public int getColumnX(final Column column) { public int getColumnViewportX(final GC gc, final Column column) { int currentX = getViewportArea(gc).x; - for (int columnIndex=getFirstColumnIndex(); columnIndex= 0) && (y < currentY)) { // @@ -515,7 +515,7 @@ public int getRowIndexByY(final int y, final GC gc) { // // A data row (or row number) has been clicked. // - for (int rowIndex=getFirstRowIndex(); rowIndex row = gridModel.getRows().get(rowIndex); if (row.getElement() == element) { - selectionRegion.y = rowLocation.y; + selectionRegion.y = rowLocation.y + (styleRegistry.getCellSpacingVertical() * 2); selectionRegion.height = grid.getRowHeight(row); selectionRegion.width = viewport.getColumnWidth(selectionRegion.x, anchorColumn); @@ -191,7 +191,7 @@ protected void paintRowBasedSelection(final RenderContext rc) { if (row.isSelected()) { if (inSelection) { // - // Expand the selction region. + // Expand the selection region. // selectionRegion.height += grid.getRowHeight(row); @@ -200,7 +200,7 @@ protected void paintRowBasedSelection(final RenderContext rc) { // Start a new selection region. // selectionRegion.x = rowLocation.x; - selectionRegion.y = rowLocation.y; + selectionRegion.y = rowLocation.y + styleRegistry.getCellSpacingVertical(); selectionRegion.height = grid.getRowHeight(row); // From eadc3fba94bc37fbbe9e6251533e3b734dbf2cea Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Thu, 20 Sep 2018 08:56:00 +0100 Subject: [PATCH 03/10] DWN-26012 Block attempt resize on last column --- com.notlob.jgrid/pom.xml | 8 +++++++- .../src/main/java/com/notlob/jgrid/model/Viewport.java | 10 ++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/com.notlob.jgrid/pom.xml b/com.notlob.jgrid/pom.xml index 40dbce1..bd98f54 100644 --- a/com.notlob.jgrid/pom.xml +++ b/com.notlob.jgrid/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.notlob com.notlob.jgrid - 0.0.32-RELEASE + 0.0.34-RELEASE 1.8 @@ -25,6 +25,12 @@ + + + grid + + + diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java index f80f069..88a9a3f 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java @@ -471,10 +471,12 @@ public Column getColumnForMouseOperation(final GC gc, final int x, final int y, // switch (operation) { case RESIZE: - columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); - - if ((x > (columnHeaderX - RESIZE_DEADZONE)) && (x < (columnHeaderX + RESIZE_DEADZONE))) { - return column; + if(columnIndex != lastColumnIndex) { + columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); + + if ((x > (columnHeaderX - RESIZE_DEADZONE)) && (x < (columnHeaderX + RESIZE_DEADZONE))) { + return column; + } } break; From 9a221ac77fd6936eb0231cc73bd2335e5535a841 Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Fri, 9 Nov 2018 10:29:14 +0000 Subject: [PATCH 04/10] DWN-26012 Fixed moving of last column not using expanded column width to detect dragging --- com.notlob.jgrid/pom.xml | 2 +- .../src/main/java/com/notlob/jgrid/model/Viewport.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/com.notlob.jgrid/pom.xml b/com.notlob.jgrid/pom.xml index bd98f54..3d41f48 100644 --- a/com.notlob.jgrid/pom.xml +++ b/com.notlob.jgrid/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.notlob com.notlob.jgrid - 0.0.34-RELEASE + 0.0.35-RELEASE 1.8 diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java index 88a9a3f..61410a6 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java @@ -481,7 +481,7 @@ public Column getColumnForMouseOperation(final GC gc, final int x, final int y, break; case REPOSITION: - if ((x >= (columnHeaderX + RESIZE_DEADZONE)) && (x <= (columnHeaderX + column.getWidth() - RESIZE_DEADZONE))) { + if ((x >= (columnHeaderX + RESIZE_DEADZONE)) && (x <= (columnHeaderX + columnWidth - RESIZE_DEADZONE))) { return column; } From 3b66cdf0c995e8f54d99b720bcc0b3a38196242f Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Thu, 24 Jan 2019 07:26:59 +0000 Subject: [PATCH 05/10] DWN-27363 Fix null pointer on grid columns empty --- .../java/com/notlob/jgrid/model/Viewport.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java index 61410a6..00714d9 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/Viewport.java @@ -461,32 +461,34 @@ public Column getColumnForMouseOperation(final GC gc, final int x, final int y, if ((y >= 0) && (y <= height)) { final Rectangle viewportArea = getViewportArea(gc); int columnHeaderX = viewportArea.x + gridModel.getStyleRegistry().getCellSpacingHorizontal(); - - for (int columnIndex=firstColumnIndex; columnIndex<=lastColumnIndex; columnIndex++) { - final Column column = gridModel.getColumns().get(columnIndex); - final int columnWidth = getColumnWidth(columnHeaderX, column/*, false*/); - - // - // Note: We bump the columnHeaderX before the check for a resize and after for a reposition. - // - switch (operation) { - case RESIZE: - if(columnIndex != lastColumnIndex) { - columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); + + if(!gridModel.getColumns().isEmpty()) { + for (int columnIndex=firstColumnIndex; columnIndex<=lastColumnIndex; columnIndex++) { + final Column column = gridModel.getColumns().get(columnIndex); + final int columnWidth = getColumnWidth(columnHeaderX, column/*, false*/); + + // + // Note: We bump the columnHeaderX before the check for a resize and after for a reposition. + // + switch (operation) { + case RESIZE: + if(columnIndex != lastColumnIndex) { + columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); + + if ((x > (columnHeaderX - RESIZE_DEADZONE)) && (x < (columnHeaderX + RESIZE_DEADZONE))) { + return column; + } + } + break; - if ((x > (columnHeaderX - RESIZE_DEADZONE)) && (x < (columnHeaderX + RESIZE_DEADZONE))) { + case REPOSITION: + if ((x >= (columnHeaderX + RESIZE_DEADZONE)) && (x <= (columnHeaderX + columnWidth - RESIZE_DEADZONE))) { return column; } - } - break; - - case REPOSITION: - if ((x >= (columnHeaderX + RESIZE_DEADZONE)) && (x <= (columnHeaderX + columnWidth - RESIZE_DEADZONE))) { - return column; - } - - columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); - break; + + columnHeaderX += (columnWidth + gridModel.getStyleRegistry().getCellSpacingHorizontal()); + break; + } } } } From bda54235aa1a16f1f42bfb62eead9f53ed2ffe72 Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Thu, 24 Jan 2019 07:31:06 +0000 Subject: [PATCH 06/10] DWN-26545 Support persistence of pinned columns --- .../src/main/java/com/notlob/jgrid/Grid.java | 22 +++++++++++++++++++ .../notlob/jgrid/listeners/GridAdapter.java | 8 +++++++ .../notlob/jgrid/listeners/IGridListener.java | 6 ++++- .../com/notlob/jgrid/model/GridModel.java | 16 ++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java index ffe1dcc..bdae848 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java @@ -1343,6 +1343,28 @@ public void columnSorted(Column column) { } } + @Override + public void columnPinned(Column column) { + if (isEventsSuppressed()) { + return; + } + + for (final IGridListener listener : listeners) { + listener.columnPinned(column); + } + } + + @Override + public void columnUnpinned(Column column) { + if (isEventsSuppressed()) { + return; + } + + for (final IGridListener listener : listeners) { + listener.columnUnpinned(column); + } + } + @Override public void rowNumbersVisibilityChanged(boolean visible) { if (isEventsSuppressed()) { diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/GridAdapter.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/GridAdapter.java index 2757ba4..a59da4f 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/GridAdapter.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/GridAdapter.java @@ -76,6 +76,14 @@ public void columnAboutToSort(Column column) { public void columnSorted(Column column) { } + @Override + public void columnPinned(Column column) { + } + + @Override + public void columnUnpinned(Column column) { + } + @Override public void rowNumbersVisibilityChanged(boolean visible) { } diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/IGridListener.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/IGridListener.java index a0eb078..db38a45 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/IGridListener.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/listeners/IGridListener.java @@ -41,7 +41,11 @@ public interface IGridListener { void columnAboutToSort(final Column column); void columnSorted(final Column column); - + + void columnPinned(final Column column); + + void columnUnpinned(final Column column); + void rowNumbersVisibilityChanged(final boolean visible); void groupSelectorVisibilityChanged(final boolean visible); diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java index 2165563..116e3de 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java @@ -120,6 +120,8 @@ public interface IModelListener { void columnMoved(final Column column); void columnAboutToSort(final Column column); void columnSorted(final Column column); + void columnPinned(final Column column); + void columnUnpinned(final Column column); void rowNumbersVisibilityChanged(final boolean visible); void groupSelectorVisibilityChanged(final boolean visible); } @@ -1058,6 +1060,18 @@ public void fireColumnSortedEvent(Column column) { } } + public void fireColumnPinnedEvent(Column column) { + for (final IModelListener listener : listeners) { + listener.columnPinned(column); + } + } + + public void fireColumnUnpinnedEvent(Column column) { + for (final IModelListener listener : listeners) { + listener.columnUnpinned(column); + } + } + public void fireRowNumbersVisibilityChanged(final boolean visible) { for (final IModelListener listener : listeners) { listener.rowNumbersVisibilityChanged(visible); @@ -1121,12 +1135,14 @@ public void pinColumn(final Column column) { column.setPinned(true); fireChangeEvent(); + fireColumnPinnedEvent(column); } public void unpinColumn(final Column column) { column.setPinned(false); pinnedColumns.remove(column); fireChangeEvent(); + fireColumnUnpinnedEvent(column); } public boolean isHeaderRow(final Row row) { From 81b9ba39a37dc5ca9bd395ee8e77b78f4cfd63b0 Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Thu, 24 Jan 2019 08:05:20 +0000 Subject: [PATCH 07/10] DWN-26545 Support persistence of pinned columns --- com.notlob.jgrid/pom.xml | 2 +- com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/com.notlob.jgrid/pom.xml b/com.notlob.jgrid/pom.xml index 3d41f48..c5948b4 100644 --- a/com.notlob.jgrid/pom.xml +++ b/com.notlob.jgrid/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.notlob com.notlob.jgrid - 0.0.35-RELEASE + 0.0.37-RELEASE 1.8 diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java index bdae848..bfb8b15 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/Grid.java @@ -406,6 +406,11 @@ public void unpinColumn(final Column column) { gridModel.unpinColumn(column); } + public List getPinnedColumns() { + checkWidget(); + return gridModel.getPinnedColumns(); + } + public void groupBy(final List columns) { checkWidget(); gridModel.groupBy(columns); From 08901cf4f106311d0ec89ecd9a77bc67e3007010 Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Wed, 20 Mar 2024 10:11:24 +0000 Subject: [PATCH 08/10] DWN-51939 Improve performance on grids with large number of columns. --- com.notlob.jgrid/pom.xml | 2 +- .../main/java/com/notlob/jgrid/model/GridModel.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/com.notlob.jgrid/pom.xml b/com.notlob.jgrid/pom.xml index c5948b4..5ba757c 100644 --- a/com.notlob.jgrid/pom.xml +++ b/com.notlob.jgrid/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.notlob com.notlob.jgrid - 0.0.37-RELEASE + 0.0.38-RELEASE 1.8 diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java index 116e3de..81c3a21 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/GridModel.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -38,6 +39,7 @@ public class GridModel { // All column definitions. private final List allColumns; + private final Map allColumnsMap; // Rows which have been filtered out - they are not ordered. private final List> hiddenRows; @@ -135,6 +137,7 @@ public GridModel(final Grid grid, final ResourceManager resourceManager, fina hiddenRows = new ArrayList<>(); columns = new ArrayList<>(); allColumns = new ArrayList<>(); + allColumnsMap = new HashMap<>(); columnHeaderRows = new ArrayList<>(); pinnedColumns = new ArrayList<>(); groupByColumns = new ArrayList<>(); @@ -347,6 +350,7 @@ private void addColumn(final Column column) { column.setGrid(grid); allColumns.add(column); + allColumnsMap.put(column.getColumnId(), column); if (column.getSortDirection() != SortDirection.NONE) { getSortModel().sort(column, false, true, false); @@ -381,6 +385,7 @@ public void clearColumns() { private void removeColumn(final Column column) { sortModel.removeColumn(column); allColumns.remove(column); + allColumnsMap.remove(column.getColumnId()); columns.remove(column); groupByColumns.remove(column); pinnedColumns.remove(column); @@ -458,12 +463,7 @@ public void moveColumn(final Column columnToMove, final Column insertBefore) { } public Column getColumnById(final String columnId) { - for (final Column column : allColumns) { - if (column.getColumnId().equalsIgnoreCase(columnId)) { - return column; - } - } - return null; + return allColumnsMap.get(columnId); } /** From 895acc747be4b82760b742fbea451abe69bb073a Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Wed, 3 Apr 2024 14:00:12 +0100 Subject: [PATCH 09/10] DWN-52026 Further quick filter performance improvements --- com.notlob.jgrid/pom.xml | 2 +- .../notlob/jgrid/model/filtering/Filter.java | 19 ++++++++++++++++++- .../jgrid/model/filtering/FilterModel.java | 13 +++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/com.notlob.jgrid/pom.xml b/com.notlob.jgrid/pom.xml index 5ba757c..5a6db63 100644 --- a/com.notlob.jgrid/pom.xml +++ b/com.notlob.jgrid/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.notlob com.notlob.jgrid - 0.0.38-RELEASE + 0.0.39-RELEASE 1.8 diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/Filter.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/Filter.java index d407a13..52b0017 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/Filter.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/Filter.java @@ -1,5 +1,7 @@ package com.notlob.jgrid.model.filtering; +import java.util.Collection; + /** * Filters are added to the filter model and each row in the grid is evaluated against them all. * @@ -29,9 +31,24 @@ public boolean isShowWholeGroup() { } // - // Return a result with match = true if the filter matches the row's element otherwise null or match = false. + // Return a result with match = true if the filter matches the row's element otherwise match = false. // public abstract boolean matches(final T element); + + /** + * Return a result with match = true if the filter matches any of the row's element otherwise match = false. + * @param element The current element we were on + * @param groupElements The entire group this element was in + * @return + */ + public boolean matchesWholeGroup(final T element, final Collection groupElements) { + for( T groupElement : groupElements ) { + if( matches(groupElement) ) { + return true; + } + } + return false; + } // // What to show the user in the UI when this filter is being applied. The parameter allows widget formatting tokens diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java index dcd7d3f..cbc75ff 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java @@ -110,12 +110,13 @@ public boolean match(final Row row) { // // If anything in the group match then this row should be shown OR if it's a parent row, always show it. // - for (T relative : gridModel.getWholeGroup(row.getElement())) { - if (filter.matches(relative)) { - matches = true; - break; - } - } + matches = filter.matchesWholeGroup(row.getElement(), gridModel.getWholeGroup(row.getElement())); +// for (T relative : gridModel.getWholeGroup(row.getElement())) { +// if (filter.matches(relative)) { +// matches = true; +// break; +// } +// } } else { // From ce2873f122dd8b7ac6173872c3d248d7b1d4f84e Mon Sep 17 00:00:00 2001 From: Matt Biggs Date: Wed, 3 Apr 2024 14:13:50 +0100 Subject: [PATCH 10/10] DWN-52026 Further quick filter performance improvements --- .../java/com/notlob/jgrid/model/filtering/FilterModel.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java index cbc75ff..06a8842 100644 --- a/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java +++ b/com.notlob.jgrid/src/main/java/com/notlob/jgrid/model/filtering/FilterModel.java @@ -111,12 +111,6 @@ public boolean match(final Row row) { // If anything in the group match then this row should be shown OR if it's a parent row, always show it. // matches = filter.matchesWholeGroup(row.getElement(), gridModel.getWholeGroup(row.getElement())); -// for (T relative : gridModel.getWholeGroup(row.getElement())) { -// if (filter.matches(relative)) { -// matches = true; -// break; -// } -// } } else { //