]> source.dussan.org Git - vaadin-framework.git/commitdiff
small optimization to table (reduce calls to Container.size() method, that is expensi...
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 29 Apr 2009 08:55:45 +0000 (08:55 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 29 Apr 2009 08:55:45 +0000 (08:55 +0000)
svn changeset:7564/svn branch:6.0

src/com/itmill/toolkit/ui/Table.java

index 083b393aa80003523c573392ac8b30381800c285..7ff6d537003a16babcfded0815a9163587185900 100644 (file)
@@ -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) {