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/11/26 20:34:27 UTC

svn commit: r1039529 - /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java

Author: gbrown
Date: Fri Nov 26 19:34:27 2010
New Revision: 1039529

URL: http://svn.apache.org/viewvc?rev=1039529&view=rev
Log:
Fix NPE in TerraTreeViewSkin.

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

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java?rev=1039529&r1=1039528&r2=1039529&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java Fri Nov 26 19:34:27 2010
@@ -2302,29 +2302,32 @@ public class TerraTreeViewSkin extends C
 
     @Override
     public void selectedPathsChanged(TreeView treeView, Sequence<Path> previousSelectedPaths) {
-        // Ensure that the selection is visible
-        if (treeView.isValid()) {
-            scrollSelectionToVisible();
-        } else {
-            validateSelection = true;
-        }
-
-        // Un-select the previous selected paths
-        for (int i = 0, n = previousSelectedPaths.getLength(); i < n; i++) {
-            NodeInfo previousSelectedNode = getNodeInfoAt(previousSelectedPaths.get(i));
-
-            previousSelectedNode.setSelected(false);
-            repaintNode(previousSelectedNode);
-        }
-
-        Sequence<Path> selectedPaths = treeView.getSelectedPaths();
-
-        // Select the current selected paths
-        for (int i = 0, n = selectedPaths.getLength(); i < n; i++) {
-            NodeInfo selectedNode = getNodeInfoAt(selectedPaths.get(i));
-
-            selectedNode.setSelected(true);
-            repaintNode(selectedNode);
+        if (previousSelectedPaths != null
+            && previousSelectedPaths != treeView.getSelectedPaths()) {
+            // Ensure that the selection is visible
+            if (treeView.isValid()) {
+                scrollSelectionToVisible();
+            } else {
+                validateSelection = true;
+            }
+
+            // Un-select the previous selected paths
+            for (int i = 0, n = previousSelectedPaths.getLength(); i < n; i++) {
+                NodeInfo previousSelectedNode = getNodeInfoAt(previousSelectedPaths.get(i));
+
+                previousSelectedNode.setSelected(false);
+                repaintNode(previousSelectedNode);
+            }
+
+            Sequence<Path> selectedPaths = treeView.getSelectedPaths();
+
+            // Select the current selected paths
+            for (int i = 0, n = selectedPaths.getLength(); i < n; i++) {
+                NodeInfo selectedNode = getNodeInfoAt(selectedPaths.get(i));
+
+                selectedNode.setSelected(true);
+                repaintNode(selectedNode);
+            }
         }
     }
 }