You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/03/19 20:27:35 UTC

svn commit: r925389 - in /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra: TerraListViewSkin.java TerraTableViewSkin.java

Author: gbrown
Date: Fri Mar 19 19:27:35 2010
New Revision: 925389

URL: http://svn.apache.org/viewvc?rev=925389&view=rev
Log:
Only repaint list view/table view on selection change when the component is valid.

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

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=925389&r1=925388&r2=925389&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Fri Mar 19 19:27:35 2010
@@ -46,8 +46,6 @@ import org.apache.pivot.wtk.skin.Compone
 
 /**
  * List view skin.
- * <p>
- * NOTE This skin assumes a fixed renderer height.
  */
 public class TerraListViewSkin extends ComponentSkin implements ListView.Skin,
     ListViewListener, ListViewItemListener, ListViewItemStateListener,
@@ -1099,15 +1097,19 @@ public class TerraListViewSkin extends C
     @Override
     public void selectedRangeAdded(ListView listView, int rangeStart, int rangeEnd) {
         // Repaint the area containing the added selection
-        repaintComponent(0, getItemY(rangeStart),
-            getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        if (listView.isValid()) {
+            repaintComponent(0, getItemY(rangeStart),
+                getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        }
     }
 
     @Override
     public void selectedRangeRemoved(ListView listView, int rangeStart, int rangeEnd) {
         // Repaint the area containing the removed selection
-        repaintComponent(0, getItemY(rangeStart),
-            getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        if (listView.isValid()) {
+            repaintComponent(0, getItemY(rangeStart),
+                getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        }
     }
 
     @Override
@@ -1116,7 +1118,6 @@ public class TerraListViewSkin extends C
         List<Object> listData = (List<Object>)listView.getListData();
 
         // Repaint only the area that changed (intersection of previous and new selection)
-
         int rangeStart = 0;
         int rangeEnd = listData.getLength() - 1;
         for (int i = 0; i < previousSelectedRanges.getLength(); i++) {
@@ -1132,7 +1133,9 @@ public class TerraListViewSkin extends C
             rangeEnd = Math.max(rangeEnd, span.end);
         }
 
-        repaintComponent(0, getItemY(rangeStart),
-            getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        if (listView.isValid()) {
+            repaintComponent(0, getItemY(rangeStart),
+                getWidth(), getItemY(rangeEnd) + getItemHeight(rangeEnd));
+        }
     }
 }

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=925389&r1=925388&r2=925389&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Fri Mar 19 19:27:35 2010
@@ -48,8 +48,6 @@ import org.apache.pivot.wtk.skin.Compone
 /**
  * Table view skin.
  * <p>
- * NOTE This skin assumes a fixed renderer height.
- * <p>
  * TODO Add disableMouseSelection style to support the case where selection
  * should be enabled but the caller wants to implement the management of it;
  * e.g. changing a message's flag state in an email client.
@@ -1443,15 +1441,19 @@ public class TerraTableViewSkin extends 
     @Override
     public void selectedRangeAdded(TableView tableView, int rangeStart, int rangeEnd) {
         // Repaint the area containing the added selection
-        repaintComponent(0, getRowY(rangeStart),
-            getWidth(), getRowY(rangeEnd + 1) - getRowY(rangeStart));
+        if (tableView.isValid()) {
+            repaintComponent(0, getRowY(rangeStart),
+                getWidth(), getRowY(rangeEnd + 1) - getRowY(rangeStart));
+        }
     }
 
     @Override
     public void selectedRangeRemoved(TableView tableView, int rangeStart, int rangeEnd) {
         // Repaint the area containing the removed selection
-        repaintComponent(0, getRowY(rangeStart),
-            getWidth(), getRowY(rangeStart) - getRowY(rangeEnd));
+        if (tableView.isValid()) {
+            repaintComponent(0, getRowY(rangeStart),
+                getWidth(), getRowY(rangeStart) - getRowY(rangeEnd));
+        }
     }
 
     @Override
@@ -1460,7 +1462,6 @@ public class TerraTableViewSkin extends 
 
         // Repaint only the area that changed (intersection of previous
         // and new selection)
-
         int rangeStart = 0;
         int rangeEnd = tableData.getLength() - 1;
         for (int i = 0; i < previousSelectedRanges.getLength(); i++) {
@@ -1476,7 +1477,9 @@ public class TerraTableViewSkin extends 
             rangeEnd = Math.max(rangeEnd, span.end);
         }
 
-        repaintComponent(0, getRowY(rangeStart),
-            getWidth(), getRowY(rangeEnd) + getRowY(rangeEnd));
+        if (tableView.isValid()) {
+            repaintComponent(0, getRowY(rangeStart),
+                getWidth(), getRowY(rangeEnd) + getRowY(rangeEnd));
+        }
     }
 }