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