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