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/08/27 17:47:52 UTC
svn commit: r990182 - in /pivot/trunk:
demos/src/org/apache/pivot/demos/lists/ wtk/src/org/apache/pivot/wtk/
Author: gbrown
Date: Fri Aug 27 15:47:51 2010
New Revision: 990182
URL: http://svn.apache.org/viewvc?rev=990182&view=rev
Log:
Rename org.apache.pivot.wtk.ListSelection to RangeSelection and make public.
Added:
pivot/trunk/wtk/src/org/apache/pivot/wtk/RangeSelection.java
- copied, changed from r990113, pivot/trunk/wtk/src/org/apache/pivot/wtk/ListSelection.java
Removed:
pivot/trunk/wtk/src/org/apache/pivot/wtk/ListSelection.java
Modified:
pivot/trunk/demos/src/org/apache/pivot/demos/lists/multi_select.bxml
pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
Modified: pivot/trunk/demos/src/org/apache/pivot/demos/lists/multi_select.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/lists/multi_select.bxml?rev=990182&r1=990181&r2=990182&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/lists/multi_select.bxml (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/lists/multi_select.bxml Fri Aug 27 15:47:51 2010
@@ -36,7 +36,7 @@ limitations under the License.
<TablePane.Row height="1*">
<Border styles="{color:10}">
<ScrollPane horizontalScrollBarPolicy="fill">
- <ListView bxml:id="dataListView" selectMode="multi" checkmarksEnabled="true">
+ <ListView bxml:id="dataListView" selectMode="multi">
<listData>
<content:NumericSpinnerData lowerBound="0" upperBound="31" increment="1"/>
</listData>
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=990182&r1=990181&r2=990182&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java Fri Aug 27 15:47:51 2010
@@ -648,7 +648,7 @@ public class ListView extends Component
private ItemRenderer itemRenderer = null;
private ItemEditor itemEditor = null;
- private ListSelection selectedRanges = new ListSelection();
+ private RangeSelection rangeSelection = new RangeSelection();
private SelectMode selectMode = SelectMode.SINGLE;
private boolean checkmarksEnabled = false;
@@ -677,7 +677,7 @@ public class ListView extends Component
@Override
public void itemInserted(List<Object> list, int index) {
// Increment selected ranges
- int updated = selectedRanges.insertIndex(index);
+ int updated = rangeSelection.insertIndex(index);
// Increment checked indexes
int i = ArrayList.binarySearch(checkedIndexes, index);
@@ -705,14 +705,14 @@ public class ListView extends Component
int previousSelectedIndex;
if (selectMode == SelectMode.SINGLE
- && selectedRanges.getLength() > 0) {
- previousSelectedIndex = selectedRanges.get(0).start;
+ && rangeSelection.getLength() > 0) {
+ previousSelectedIndex = rangeSelection.get(0).start;
} else {
previousSelectedIndex = -1;
}
// Decrement selected ranges
- int updated = selectedRanges.removeIndexes(index, count);
+ int updated = rangeSelection.removeIndexes(index, count);
// Remove and decrement checked indexes
int i = ArrayList.binarySearch(checkedIndexes, index);
@@ -755,8 +755,8 @@ public class ListView extends Component
@Override
public void listCleared(List<Object> list) {
- int cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ int cleared = rangeSelection.getLength();
+ rangeSelection.clear();
checkedIndexes.clear();
listViewItemListeners.itemsCleared(ListView.this);
@@ -773,8 +773,8 @@ public class ListView extends Component
@Override
public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) {
if (list.getComparator() != null) {
- int cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ int cleared = rangeSelection.getLength();
+ rangeSelection.clear();
checkedIndexes.clear();
listViewItemListeners.itemsSorted(ListView.this);
@@ -845,8 +845,8 @@ public class ListView extends Component
int cleared;
if (previousListData != null) {
// Clear any existing selection
- cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ cleared = rangeSelection.getLength();
+ rangeSelection.clear();
checkedIndexes.clear();
((List<Object>)previousListData).getListListeners().remove(listDataListener);
@@ -984,7 +984,7 @@ public class ListView extends Component
throw new IllegalStateException("List view is not in single-select mode.");
}
- return (selectedRanges.getLength() == 0) ? -1 : selectedRanges.get(0).start;
+ return (rangeSelection.getLength() == 0) ? -1 : rangeSelection.get(0).start;
}
/**
@@ -1023,7 +1023,7 @@ public class ListView extends Component
* selection state will be reflected in the list, but events will not be fired.
*/
public ImmutableList<Span> getSelectedRanges() {
- return selectedRanges.toList();
+ return rangeSelection.getSelectedRanges();
}
/**
@@ -1069,9 +1069,9 @@ public class ListView extends Component
}
// Update the selection
- Sequence<Span> previousSelectedRanges = this.selectedRanges.toList();
+ Sequence<Span> previousSelectedRanges = this.rangeSelection.getSelectedRanges();
- ListSelection listSelection = new ListSelection();
+ RangeSelection listSelection = new RangeSelection();
for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {
Span range = selectedRanges.get(i);
@@ -1086,7 +1086,7 @@ public class ListView extends Component
listSelection.addRange(range.start, range.end);
}
- this.selectedRanges = listSelection;
+ this.rangeSelection = listSelection;
// Notify listeners
listViewSelectionListeners.selectedRangesChanged(this, previousSelectedRanges);
@@ -1144,7 +1144,7 @@ public class ListView extends Component
* The first selected index, or <tt>-1</tt> if nothing is selected.
*/
public int getFirstSelectedIndex() {
- return (selectedRanges.getLength() > 0) ? selectedRanges.get(0).start : -1;
+ return (rangeSelection.getLength() > 0) ? rangeSelection.get(0).start : -1;
}
/**
@@ -1154,8 +1154,8 @@ public class ListView extends Component
* The last selected index, or <tt>-1</tt> if nothing is selected.
*/
public int getLastSelectedIndex() {
- return (selectedRanges.getLength() > 0) ?
- selectedRanges.get(selectedRanges.getLength() - 1).end : -1;
+ return (rangeSelection.getLength() > 0) ?
+ rangeSelection.get(rangeSelection.getLength() - 1).end : -1;
}
/**
@@ -1194,7 +1194,7 @@ public class ListView extends Component
throw new IndexOutOfBoundsException();
}
- Sequence<Span> addedRanges = selectedRanges.addRange(start, end);
+ Sequence<Span> addedRanges = rangeSelection.addRange(start, end);
int n = addedRanges.getLength();
for (int i = 0; i < n; i++) {
@@ -1262,7 +1262,7 @@ public class ListView extends Component
throw new IndexOutOfBoundsException();
}
- Sequence<Span> removedRanges = selectedRanges.removeRange(start, end);
+ Sequence<Span> removedRanges = rangeSelection.removeRange(start, end);
int n = removedRanges.getLength();
for (int i = 0; i < n; i++) {
@@ -1305,7 +1305,7 @@ public class ListView extends Component
* Clears the selection.
*/
public void clearSelection() {
- if (selectedRanges.getLength() > 0) {
+ if (rangeSelection.getLength() > 0) {
setSelectedRanges(new ArrayList<Span>(0));
}
}
@@ -1324,7 +1324,7 @@ public class ListView extends Component
throw new IndexOutOfBoundsException();
}
- return (selectedRanges.containsIndex(index));
+ return (rangeSelection.containsIndex(index));
}
public Object getSelectedItem() {
@@ -1346,8 +1346,8 @@ public class ListView extends Component
public Sequence<?> getSelectedItems() {
ArrayList<Object> items = new ArrayList<Object>();
- for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {
- Span range = selectedRanges.get(i);
+ for (int i = 0, n = rangeSelection.getLength(); i < n; i++) {
+ Span range = rangeSelection.get(i);
for (int index = range.start; index <= range.end; index++) {
Object item = listData.get(index);
Copied: pivot/trunk/wtk/src/org/apache/pivot/wtk/RangeSelection.java (from r990113, pivot/trunk/wtk/src/org/apache/pivot/wtk/ListSelection.java)
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/RangeSelection.java?p2=pivot/trunk/wtk/src/org/apache/pivot/wtk/RangeSelection.java&p1=pivot/trunk/wtk/src/org/apache/pivot/wtk/ListSelection.java&r1=990113&r2=990182&rev=990182&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListSelection.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/RangeSelection.java Fri Aug 27 15:47:51 2010
@@ -25,33 +25,28 @@ import org.apache.pivot.collections.immu
/**
* Class for managing a set of indexed range selections.
*/
-class ListSelection {
+public class RangeSelection {
+ // The coalesced selected ranges
private ArrayList<Span> selectedRanges = new ArrayList<Span>();
- /**
- * Comparator that determines the index of the first intersecting range.
- */
- public static final Comparator<Span> START_COMPARATOR = new Comparator<Span>() {
+ // Comparator that determines the index of the first intersecting range.
+ private static final Comparator<Span> START_COMPARATOR = new Comparator<Span>() {
@Override
public int compare(Span range1, Span range2) {
return (range1.end - range2.start);
}
};
- /**
- * Comparator that determines the index of the last intersecting range.
- */
- public static final Comparator<Span> END_COMPARATOR = new Comparator<Span>() {
+ // Comparator that determines the index of the last intersecting range.
+ private static final Comparator<Span> END_COMPARATOR = new Comparator<Span>() {
@Override
public int compare(Span range1, Span range2) {
return (range1.start - range2.end);
}
};
- /**
- * Comparator that determines if two ranges intersect.
- */
- public static final Comparator<Span> INTERSECTION_COMPARATOR = new Comparator<Span>() {
+ // Comparator that determines if two ranges intersect.
+ private static final Comparator<Span> INTERSECTION_COMPARATOR = new Comparator<Span>() {
@Override
public int compare(Span range1, Span range2) {
return (range1.start > range2.end) ? 1 : (range2.start > range1.end) ? -1 : 0;
@@ -243,6 +238,9 @@ class ListSelection {
return removedRanges;
}
+ /**
+ * Clears the selection.
+ */
public void clear() {
selectedRanges.clear();
}
@@ -266,7 +264,7 @@ class ListSelection {
/**
* Returns an immutable wrapper around the selected ranges.
*/
- public ImmutableList<Span> toList() {
+ public ImmutableList<Span> getSelectedRanges() {
return new ImmutableList<Span>(selectedRanges);
}
@@ -386,6 +384,15 @@ class ListSelection {
return updated;
}
+ /**
+ * Ensures that the start value is less than or equal to the end value.
+ *
+ * @param start
+ * @param end
+ *
+ * @return
+ * A span containing the normalized range.
+ */
public static Span normalize(int start, int end) {
return new Span(Math.min(start, end), Math.max(start, end));
}
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=990182&r1=990181&r2=990182&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java Fri Aug 27 15:47:51 2010
@@ -1342,7 +1342,7 @@ public class TableView extends Component
private RowEditor rowEditor = null;
- private ListSelection selectedRanges = new ListSelection();
+ private RangeSelection rangeSelection = new RangeSelection();
private SelectMode selectMode = SelectMode.SINGLE;
private HashMap<String, SortDirection> sortMap = new HashMap<String, SortDirection>();
@@ -1367,7 +1367,7 @@ public class TableView extends Component
@Override
public void itemInserted(List<Object> list, int index) {
// Increment selected ranges
- int updated = selectedRanges.insertIndex(index);
+ int updated = rangeSelection.insertIndex(index);
// Notify listeners that items were inserted
tableViewRowListeners.rowInserted(TableView.this, index);
@@ -1383,14 +1383,14 @@ public class TableView extends Component
int previousSelectedIndex;
if (selectMode == SelectMode.SINGLE
- && selectedRanges.getLength() > 0) {
- previousSelectedIndex = selectedRanges.get(0).start;
+ && rangeSelection.getLength() > 0) {
+ previousSelectedIndex = rangeSelection.get(0).start;
} else {
previousSelectedIndex = -1;
}
// Decrement selected ranges
- int updated = selectedRanges.removeIndexes(index, count);
+ int updated = rangeSelection.removeIndexes(index, count);
// Notify listeners that items were removed
tableViewRowListeners.rowsRemoved(TableView.this, index, count);
@@ -1412,8 +1412,8 @@ public class TableView extends Component
@Override
public void listCleared(List<Object> list) {
- int cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ int cleared = rangeSelection.getLength();
+ rangeSelection.clear();
tableViewRowListeners.rowsCleared(TableView.this);
@@ -1429,8 +1429,8 @@ public class TableView extends Component
@Override
public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) {
if (list.getComparator() != null) {
- int cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ int cleared = rangeSelection.getLength();
+ rangeSelection.clear();
tableViewRowListeners.rowsSorted(TableView.this);
if (cleared > 0) {
@@ -1525,8 +1525,8 @@ public class TableView extends Component
int cleared;
if (previousTableData != null) {
// Clear any existing selection
- cleared = selectedRanges.getLength();
- selectedRanges.clear();
+ cleared = rangeSelection.getLength();
+ rangeSelection.clear();
((List<Object>)previousTableData).getListListeners().remove(tableDataListener);
} else {
@@ -1640,7 +1640,7 @@ public class TableView extends Component
throw new IllegalStateException("Table view is not in single-select mode.");
}
- return (selectedRanges.getLength() == 0) ? -1 : selectedRanges.get(0).start;
+ return (rangeSelection.getLength() == 0) ? -1 : rangeSelection.get(0).start;
}
/**
@@ -1679,7 +1679,7 @@ public class TableView extends Component
* selection state will be reflected in the list, but events will not be fired.
*/
public ImmutableList<Span> getSelectedRanges() {
- return selectedRanges.toList();
+ return rangeSelection.getSelectedRanges();
}
/**
@@ -1725,9 +1725,9 @@ public class TableView extends Component
}
// Update the selection
- Sequence<Span> previousSelectedRanges = this.selectedRanges.toList();
+ Sequence<Span> previousSelectedRanges = this.rangeSelection.getSelectedRanges();
- ListSelection listSelection = new ListSelection();
+ RangeSelection listSelection = new RangeSelection();
for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {
Span range = selectedRanges.get(i);
@@ -1742,7 +1742,7 @@ public class TableView extends Component
listSelection.addRange(range.start, range.end);
}
- this.selectedRanges = listSelection;
+ this.rangeSelection = listSelection;
// Notify listeners
tableViewSelectionListeners.selectedRangesChanged(this, previousSelectedRanges);
@@ -1800,7 +1800,7 @@ public class TableView extends Component
* The first selected index, or <tt>-1</tt> if nothing is selected.
*/
public int getFirstSelectedIndex() {
- return (selectedRanges.getLength() > 0) ? selectedRanges.get(0).start : -1;
+ return (rangeSelection.getLength() > 0) ? rangeSelection.get(0).start : -1;
}
/**
@@ -1810,8 +1810,8 @@ public class TableView extends Component
* The last selected index, or <tt>-1</tt> if nothing is selected.
*/
public int getLastSelectedIndex() {
- return (selectedRanges.getLength() > 0) ?
- selectedRanges.get(selectedRanges.getLength() - 1).end : -1;
+ return (rangeSelection.getLength() > 0) ?
+ rangeSelection.get(rangeSelection.getLength() - 1).end : -1;
}
/**
@@ -1850,7 +1850,7 @@ public class TableView extends Component
throw new IndexOutOfBoundsException();
}
- Sequence<Span> addedRanges = selectedRanges.addRange(start, end);
+ Sequence<Span> addedRanges = rangeSelection.addRange(start, end);
int n = addedRanges.getLength();
for (int i = 0; i < n; i++) {
@@ -1918,7 +1918,7 @@ public class TableView extends Component
throw new IndexOutOfBoundsException();
}
- Sequence<Span> removedRanges = selectedRanges.removeRange(start, end);
+ Sequence<Span> removedRanges = rangeSelection.removeRange(start, end);
int n = removedRanges.getLength();
for (int i = 0; i < n; i++) {
@@ -1961,7 +1961,7 @@ public class TableView extends Component
* Clears the selection.
*/
public void clearSelection() {
- if (selectedRanges.getLength() > 0) {
+ if (rangeSelection.getLength() > 0) {
setSelectedRanges(new ArrayList<Span>(0));
}
}
@@ -1980,7 +1980,7 @@ public class TableView extends Component
throw new IndexOutOfBoundsException();
}
- return (selectedRanges.containsIndex(index));
+ return (rangeSelection.containsIndex(index));
}
public Object getSelectedRow() {
@@ -2002,8 +2002,8 @@ public class TableView extends Component
public Sequence<?> getSelectedRows() {
ArrayList<Object> rows = new ArrayList<Object>();
- for (int i = 0, n = selectedRanges.getLength(); i < n; i++) {
- Span range = selectedRanges.get(i);
+ for (int i = 0, n = rangeSelection.getLength(); i < n; i++) {
+ Span range = rangeSelection.get(i);
for (int index = range.start; index <= range.end; index++) {
Object row = tableData.get(index);