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 21:07:52 UTC

svn commit: r1039545 - in /pivot/trunk: wtk-terra/src/org/apache/pivot/wtk/skin/terra/ wtk/src/org/apache/pivot/wtk/

Author: gbrown
Date: Fri Nov 26 20:07:52 2010
New Revision: 1039545

URL: http://svn.apache.org/viewvc?rev=1039545&view=rev
Log:
Resolve PIVOT-569 for TreeView; minor updates to other data-driven components.

Modified:
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeViewSelectionListener.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=1039545&r1=1039544&r2=1039545&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 20:07:52 2010
@@ -2330,4 +2330,9 @@ public class TerraTreeViewSkin extends C
             }
         }
     }
+
+    @Override
+    public void selectedNodeChanged(TreeView treeView, Object previousSelectedNode) {
+        // No-op
+    }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/ListButton.java Fri Nov 26 20:07:52 2010
@@ -238,8 +238,7 @@ public class ListButton extends Button {
                 listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex);
 
                 if (selectedIndex == -1) {
-                    listButtonSelectionListeners.selectedItemChanged(ListButton.this,
-                        items.get(previousSelectedIndex - index));
+                    listButtonSelectionListeners.selectedItemChanged(ListButton.this, null);
                 }
             }
         }
@@ -394,7 +393,7 @@ public class ListButton extends Button {
 
             if (selectedIndex != previousSelectedIndex) {
                 listButtonSelectionListeners.selectedIndexChanged(this, selectedIndex);
-                listButtonSelectionListeners.selectedItemChanged(this, getSelectedItem());
+                listButtonSelectionListeners.selectedItemChanged(this, null);
             }
         }
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java Fri Nov 26 20:07:52 2010
@@ -513,8 +513,7 @@ public class ListView extends Component 
 
                 if (selectMode == SelectMode.SINGLE
                     && getSelectedIndex() != previousSelectedIndex) {
-                    listViewSelectionListeners.selectedItemChanged(ListView.this,
-                        items.get(previousSelectedIndex - index));
+                    listViewSelectionListeners.selectedItemChanged(ListView.this, null);
                 }
             }
         }
@@ -635,7 +634,7 @@ public class ListView extends Component 
                 listViewSelectionListeners.selectedRangesChanged(this, getSelectedRanges());
 
                 if (selectMode == SelectMode.SINGLE) {
-                    listViewSelectionListeners.selectedItemChanged(this, getSelectedItem());
+                    listViewSelectionListeners.selectedItemChanged(this, null);
                 }
             }
         }
@@ -818,29 +817,9 @@ public class ListView extends Component 
             throw new IllegalArgumentException("Selection is not enabled.");
         }
 
-        Object previousSelectedItem;
-        if (selectMode == SelectMode.SINGLE) {
-            int n = selectedRanges.getLength();
-
-            if (n > 1) {
-                throw new IllegalArgumentException("Selection length is greater than 1.");
-            }
-
-            if (n > 0) {
-                Span selectedRange = selectedRanges.get(0);
-
-                if (selectedRange.getLength() > 1) {
-                    throw new IllegalArgumentException("Selected range length is greater than 1.");
-                }
-            }
-
-            previousSelectedItem = getSelectedItem();
-        } else {
-            previousSelectedItem = null;
-        }
-
         // Update the selection
         Sequence<Span> previousSelectedRanges = this.rangeSelection.getSelectedRanges();
+        Object previousSelectedItem = (selectMode == SelectMode.SINGLE) ? getSelectedItem() : null;
 
         RangeSelection listSelection = new RangeSelection();
         for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java Fri Nov 26 20:07:52 2010
@@ -305,8 +305,7 @@ public class Spinner extends Container {
                 spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
 
                 if (selectedIndex == -1) {
-                    spinnerSelectionListeners.selectedItemChanged(Spinner.this,
-                        items.get(previousSelectedIndex - index));
+                    spinnerSelectionListeners.selectedItemChanged(Spinner.this, null);
                 }
             }
         }
@@ -412,7 +411,7 @@ public class Spinner extends Container {
 
             if (selectedIndex != previousSelectedIndex) {
                 spinnerSelectionListeners.selectedIndexChanged(Spinner.this, selectedIndex);
-                spinnerSelectionListeners.selectedItemChanged(this, getSelectedItem());
+                spinnerSelectionListeners.selectedItemChanged(this, null);
             }
         }
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/SuggestionPopup.java Fri Nov 26 20:07:52 2010
@@ -188,8 +188,7 @@ public class SuggestionPopup extends Win
                 suggestionPopupSelectionListeners.selectedIndexChanged(SuggestionPopup.this, selectedIndex);
 
                 if (selectedIndex == -1) {
-                    suggestionPopupSelectionListeners.selectedSuggestionChanged(SuggestionPopup.this,
-                        items.get(previousSelectedIndex - index));
+                    suggestionPopupSelectionListeners.selectedSuggestionChanged(SuggestionPopup.this, null);
                 }
             }
         }
@@ -291,7 +290,7 @@ public class SuggestionPopup extends Win
 
             if (selectedIndex != previousSelectedIndex) {
                 suggestionPopupSelectionListeners.selectedIndexChanged(this, selectedIndex);
-                suggestionPopupSelectionListeners.selectedSuggestionChanged(this, getSelectedSuggestion());
+                suggestionPopupSelectionListeners.selectedSuggestionChanged(this, null);
             }
         }
     }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java Fri Nov 26 20:07:52 2010
@@ -1140,8 +1140,7 @@ public class TableView extends Component
 
                 if (selectMode == SelectMode.SINGLE
                     && getSelectedIndex() != previousSelectedIndex) {
-                    tableViewSelectionListeners.selectedRowChanged(TableView.this,
-                        items.get(previousSelectedIndex - index));
+                    tableViewSelectionListeners.selectedRowChanged(TableView.this, null);
                 }
             }
         }
@@ -1284,7 +1283,7 @@ public class TableView extends Component
                 tableViewSelectionListeners.selectedRangesChanged(this, getSelectedRanges());
 
                 if (selectMode == SelectMode.SINGLE) {
-                    tableViewSelectionListeners.selectedRowChanged(this, getSelectedRow());
+                    tableViewSelectionListeners.selectedRowChanged(this, null);
                 }
             }
         }
@@ -1444,29 +1443,9 @@ public class TableView extends Component
             throw new IllegalArgumentException("Selection is not enabled.");
         }
 
-        Object previousSelectedRow;
-        if (selectMode == SelectMode.SINGLE) {
-            int n = selectedRanges.getLength();
-
-            if (n > 1) {
-                throw new IllegalArgumentException("Selection length is greater than 1.");
-            }
-
-            if (n > 0) {
-                Span selectedRange = selectedRanges.get(0);
-
-                if (selectedRange.getLength() > 1) {
-                    throw new IllegalArgumentException("Selected range length is greater than 1.");
-                }
-            }
-
-            previousSelectedRow = getSelectedRow();
-        } else {
-            previousSelectedRow = null;
-        }
-
         // Update the selection
         Sequence<Span> previousSelectedRanges = this.rangeSelection.getSelectedRanges();
+        Object previousSelectedRow = (selectMode == SelectMode.SINGLE) ? getSelectedRow() : null;
 
         RangeSelection listSelection = new RangeSelection();
         for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java Fri Nov 26 20:07:52 2010
@@ -386,6 +386,13 @@ public class TreeView extends Component 
                 listener.selectedPathsChanged(treeView, previousSelectedPaths);
             }
         }
+
+        @Override
+        public void selectedNodeChanged(TreeView treeView, Object previousSelectedNode) {
+            for (TreeViewSelectionListener listener : this) {
+                listener.selectedNodeChanged(treeView, previousSelectedNode);
+            }
+        }
     }
 
     /**
@@ -517,6 +524,14 @@ public class TreeView extends Component 
         public void itemsRemoved(List<Object> list, int index, Sequence<Object> items) {
             Path path = getPath();
 
+            Path previousSelectedPath;
+            if (selectMode == SelectMode.SINGLE
+                && selectedPaths.getLength() > 0) {
+                previousSelectedPath = selectedPaths.get(0);
+            } else {
+                previousSelectedPath = null;
+            }
+
             // Remove child handlers
             int count = items.getLength();
             Sequence<BranchHandler> removed = remove(index, count);
@@ -540,6 +555,11 @@ public class TreeView extends Component 
 
             if (updated > 0) {
                 treeViewSelectionListeners.selectedPathsChanged(TreeView.this, getSelectedPaths());
+
+                if (selectMode == SelectMode.SINGLE
+                    && !getSelectedPath().equals(previousSelectedPath)) {
+                    treeViewSelectionListeners.selectedNodeChanged(TreeView.this, null);
+                }
             }
         }
 
@@ -591,6 +611,10 @@ public class TreeView extends Component 
 
             if (cleared > 0) {
                 treeViewSelectionListeners.selectedPathsChanged(TreeView.this, getSelectedPaths());
+
+                if (selectMode == SelectMode.SINGLE) {
+                    treeViewSelectionListeners.selectedNodeChanged(TreeView.this, null);
+                }
             }
         }
 
@@ -623,6 +647,10 @@ public class TreeView extends Component 
 
                 if (cleared > 0) {
                     treeViewSelectionListeners.selectedPathsChanged(TreeView.this, getSelectedPaths());
+
+                    if (selectMode == SelectMode.SINGLE) {
+                        treeViewSelectionListeners.selectedNodeChanged(TreeView.this, null);
+                    }
                 }
             }
         }
@@ -962,6 +990,10 @@ public class TreeView extends Component 
 
             if (cleared > 0) {
                 treeViewSelectionListeners.selectedPathsChanged(TreeView.this, getSelectedPaths());
+
+                if (selectMode == SelectMode.SINGLE) {
+                    treeViewSelectionListeners.selectedNodeChanged(TreeView.this, null);
+                }
             }
         }
     }
@@ -1104,6 +1136,7 @@ public class TreeView extends Component 
         }
 
         Sequence<Path> previousSelectedPaths = this.selectedPaths;
+        Object previousSelectedNode = (selectMode == SelectMode.SINGLE) ? getSelectedNode() : null;
 
         // TODO Only add and monitor non-duplicates
 
@@ -1122,6 +1155,10 @@ public class TreeView extends Component 
 
             // Notify listeners
             treeViewSelectionListeners.selectedPathsChanged(this, previousSelectedPaths);
+
+            if (selectMode == SelectMode.SINGLE) {
+                treeViewSelectionListeners.selectedNodeChanged(TreeView.this, previousSelectedNode);
+            }
         }
 
         return getSelectedPaths();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeViewSelectionListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeViewSelectionListener.java?rev=1039545&r1=1039544&r2=1039545&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeViewSelectionListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeViewSelectionListener.java Fri Nov 26 20:07:52 2010
@@ -38,6 +38,10 @@ public interface TreeViewSelectionListen
         @Override
         public void selectedPathsChanged(TreeView treeView, Sequence<Path> previousSelectedPaths) {
         }
+
+        @Override
+        public void selectedNodeChanged(TreeView treeView, Object previousSelectedNode) {
+        }
     }
 
     /**
@@ -63,4 +67,12 @@ public interface TreeViewSelectionListen
      * @param previousSelectedPaths
      */
     public void selectedPathsChanged(TreeView treeView, Sequence<Path> previousSelectedPaths);
+
+    /**
+     * Called when a tree view's selected node has changed.
+     *
+     * @param treeView
+     * @param previousSelectedItem
+     */
+    public void selectedNodeChanged(TreeView treeView, Object previousSelectedNode);
 }