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);
+ }
}
}
}