Author: smartini
Date: Sun May 22 20:45:21 2011
New Revision: 1126227

URL: http://svn.apache.org/viewvc?rev=1126227&view=rev
Log:
PIVOT-744

Modified:
    
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java

Modified: 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=1126227&r1=1126226&r2=1126227&view=diff
==============================================================================
--- 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
 (original)
+++ 
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
 Sun May 22 20:45:21 2011
@@ -1004,6 +1004,7 @@ public class TerraListViewSkin extends C
             case Keyboard.KeyCode.UP: {
                 if (selectMode != ListView.SelectMode.NONE) {
                     int index = listView.getFirstSelectedIndex();
+                    int count = listView.getListData().getLength();
 
                     do {
                         index--;
@@ -1017,6 +1018,14 @@ public class TerraListViewSkin extends C
                         } else {
                             listView.setSelectedIndex(index);
                         }
+                    } else if (!Keyboard.isPressed(Keyboard.Modifier.SHIFT) && 
listView.getSelectMode() == ListView.SelectMode.MULTI && count == 
listView.getSelectedItems().getLength()) {
+                        index = listView.getLastSelectedIndex();
+                        do {
+                            index--;
+                        } while (index >= 0 &&
+                                listView.isItemDisabled(index));
+
+                        listView.setSelectedIndex(Math.max(0, index));
                     }
 
                     consumed = true;
@@ -1042,6 +1051,14 @@ public class TerraListViewSkin extends C
                         } else {
                             listView.setSelectedIndex(index);
                         }
+                    } else if (!Keyboard.isPressed(Keyboard.Modifier.SHIFT) && 
listView.getSelectMode() == ListView.SelectMode.MULTI && count == 
listView.getSelectedItems().getLength()) {
+                        index = 0;
+                        do {
+                            index++;
+                        } while (index < count &&
+                                listView.isItemDisabled(index));
+
+                        listView.setSelectedIndex(Math.min(count - 1, index));
                     }
 
                     consumed = true;


Reply via email to