From d452ea2fd4a476157e841cce1d232398727c4f18 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 29 Apr 2009 08:55:45 +0000 Subject: small optimization to table (reduce calls to Container.size() method, that is expensive in some containers) svn changeset:7564/svn branch:6.0 --- src/com/itmill/toolkit/ui/Table.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java index 083b393aa8..7ff6d53700 100644 --- a/src/com/itmill/toolkit/ui/Table.java +++ b/src/com/itmill/toolkit/ui/Table.java @@ -1107,12 +1107,18 @@ public class Table extends AbstractSelect implements Action.Container, newIndex = 0; } + /* + * minimize Container.size() calls which may be expensive. For example + * it may cause sql query. + */ + final int size = size(); + /* * The table is not capable of displaying an item in the container as * the first if there are not enough items following the selected item * so the whole table (pagelength) is filled. */ - int maxIndex = size() - pageLength; + int maxIndex = size - pageLength; if (maxIndex < 0) { maxIndex = 0; } @@ -1150,7 +1156,7 @@ public class Table extends AbstractSelect implements Action.Container, // If we did hit the border if (((Container.Ordered) items).isLastId(currentPageFirstItemId)) { - currentPageFirstItemIndex = size() - 1; + currentPageFirstItemIndex = size - 1; } // Go backwards in the middle of the list (respect borders) @@ -1179,7 +1185,7 @@ public class Table extends AbstractSelect implements Action.Container, // If for some reason we do hit border again, override // the user index request if (((Container.Ordered) items).isLastId(currentPageFirstItemId)) { - newIndex = currentPageFirstItemIndex = size() - 1; + newIndex = currentPageFirstItemIndex = size - 1; } } if (needsPageBufferReset) { -- cgit v1.2.3