You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by no...@apache.org on 2009/11/19 14:33:07 UTC

svn commit: r882140 - /incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java

Author: noelgrandin
Date: Thu Nov 19 13:33:07 2009
New Revision: 882140

URL: http://svn.apache.org/viewvc?rev=882140&view=rev
Log:
apply changes suggested by Greg's review

Modified:
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=882140&r1=882139&r2=882140&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Thu Nov 19 13:33:07 2009
@@ -65,13 +65,14 @@
     private Color highlightBackgroundColor;
     private boolean showHighlight;
     private boolean variableItemHeight;
-    private int [] variableItemHeightYCache;
-    private int fixedItemHeight;
     private Insets checkboxPadding = new Insets(2, 2, 2, 0);
 
     private int highlightedIndex = -1;
     private int editIndex = -1;
 
+    private int [] itemHeights;
+    private int fixedItemHeight;
+    
     private static final Checkbox CHECKBOX = new Checkbox();
 
     static {
@@ -157,6 +158,7 @@
                 fixedItemHeight = Math.max(CHECKBOX.getHeight() + (checkboxPadding.top
                     + checkboxPadding.bottom), fixedItemHeight);
             }
+            
             preferredHeight = listData.getLength() * fixedItemHeight;
         }
 
@@ -195,6 +197,7 @@
                 fixedItemHeight = Math.max(CHECKBOX.getHeight() + (checkboxPadding.top
                     + checkboxPadding.bottom), fixedItemHeight);
             }
+            
             baseline = itemRenderer.getBaseline(clientWidth, fixedItemHeight);
         }
 
@@ -209,10 +212,7 @@
         ListView.ItemRenderer itemRenderer = listView.getItemRenderer();
 
         if (variableItemHeight) {
-
             int width = getWidth();
-
-            // Paint the list contents
             int itemEnd = listData.getLength() - 1;
 
             int checkboxHeight = 0;
@@ -221,7 +221,7 @@
                     + checkboxPadding.bottom);
             }
 
-            variableItemHeightYCache = new int[listData.getLength() + 1];
+            itemHeights = new int[listData.getLength() + 1];
             int itemY = 0;
 
             for (int itemIndex = 0; itemIndex <= itemEnd; itemIndex++) {
@@ -248,10 +248,11 @@
                     itemHeight = Math.max(itemHeight, checkboxHeight);
                 }
 
-                variableItemHeightYCache[itemIndex] = itemY;
+                itemHeights[itemIndex] = itemY;
                 itemY += itemHeight;
             }
-            variableItemHeightYCache[listData.getLength()] = itemY;
+            
+            itemHeights[listData.getLength()] = itemY;
         } else {
             itemRenderer.render(null, -1, listView, false, false, false, false);
 
@@ -299,7 +300,7 @@
 
         int itemY;
         if (variableItemHeight) {
-            itemY = variableItemHeightYCache[itemStart];
+            itemY = itemHeights[itemStart];
         } else {
             itemY = itemStart * fixedItemHeight;
         }
@@ -312,7 +313,7 @@
             boolean disabled = listView.isItemDisabled(itemIndex);
             int itemHeight;
             if (variableItemHeight) {
-                itemHeight = variableItemHeightYCache[itemIndex + 1] - variableItemHeightYCache[itemIndex];
+                itemHeight = itemHeights[itemIndex + 1] - itemHeights[itemIndex];
             } else {
                 itemHeight = fixedItemHeight;
             }
@@ -380,13 +381,14 @@
 
         int index;
         if (variableItemHeight) {
-            index = Arrays.binarySearch(variableItemHeightYCache, y);
+            index = Arrays.binarySearch(itemHeights, y);
             if (index < 0) {
                 index = -index - 2;
             }
         } else {
             index = (y / fixedItemHeight);
         }
+        
         List<Object> listData = (List<Object>)listView.getListData();
         if (index >= listData.getLength()) {
             index = -1;
@@ -415,20 +417,22 @@
     private int getItemY(int index) {
         int itemY;
         if (variableItemHeight) {
-            itemY = variableItemHeightYCache[index];
+            itemY = itemHeights[index];
         } else {
             itemY = index * fixedItemHeight;
         }
+        
         return itemY;
     }
 
     private int getItemHeight(int index) {
         int itemHeight;
         if (variableItemHeight) {
-            itemHeight = variableItemHeightYCache[index + 1] - variableItemHeightYCache[index];
+            itemHeight = itemHeights[index + 1] - itemHeights[index];
         } else {
             itemHeight = fixedItemHeight;
         }
+        
         return itemHeight;
     }
 
@@ -710,7 +714,6 @@
         invalidateComponent();
     }
 
-
     @Override
     public boolean mouseMove(Component component, int x, int y) {
         boolean consumed = super.mouseMove(component, x, y);
@@ -997,13 +1000,11 @@
     // List view events
     @Override
     public void listDataChanged(ListView listView, List<?> previousListData) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
     @Override
     public void itemRendererChanged(ListView listView, ListView.ItemRenderer previousItemRenderer) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
@@ -1019,7 +1020,6 @@
 
     @Override
     public void checkmarksEnabledChanged(ListView listView) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
@@ -1047,31 +1047,26 @@
     // List view item events
     @Override
     public void itemInserted(ListView listView, int index) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
     @Override
     public void itemsRemoved(ListView listView, int index, int count) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
     @Override
     public void itemUpdated(ListView listView, int index) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
     @Override
     public void itemsCleared(ListView listView) {
-        variableItemHeightYCache = null;
         invalidateComponent();
     }
 
     @Override
     public void itemsSorted(ListView listView) {
-        variableItemHeightYCache = null;
         if (variableItemHeight) {
             invalidateComponent();
         } else {
@@ -1105,8 +1100,7 @@
     public void selectedRangesChanged(ListView listView, Sequence<Span> previousSelectedRanges) {
         List<Object> listData = (List<Object>)listView.getListData();
 
-        // Repaint only the area that changed (intersection of previous
-        // and new selection)
+        // Repaint only the area that changed (intersection of previous and new selection)
 
         int rangeStart = 0;
         int rangeEnd = listData.getLength() - 1;