You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by no...@apache.org on 2010/08/16 16:03:02 UTC

svn commit: r985934 - /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java

Author: noelgrandin
Date: Mon Aug 16 14:03:01 2010
New Revision: 985934

URL: http://svn.apache.org/viewvc?rev=985934&view=rev
Log:
PIVOT-287 Inconsistency between TableView, ListView, and TreeView as to when to consume arrow key events
Make all of the views consume UP and DOWN
Also fix multi-select using keyboard in TreeView

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

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=985934&r1=985933&r2=985934&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Mon Aug 16 14:03:01 2010
@@ -1281,48 +1281,53 @@ public class TerraTableViewSkin extends 
         boolean consumed = super.keyPressed(component, keyCode, keyLocation);
 
         TableView tableView = (TableView)getComponent();
+        TableView.SelectMode selectMode = tableView.getSelectMode();
 
         switch (keyCode) {
             case Keyboard.KeyCode.UP: {
-                int index = tableView.getFirstSelectedIndex();
-
-                do {
-                    index--;
-                } while (index >= 0
-                    && tableView.isRowDisabled(index));
-
-                if (index >= 0) {
-                    if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
-                        && tableView.getSelectMode() == TableView.SelectMode.MULTI) {
-                        tableView.addSelectedIndex(index);
-                    } else {
-                        tableView.setSelectedIndex(index);
+                if (selectMode != TableView.SelectMode.NONE) {
+                    int index = tableView.getFirstSelectedIndex();
+    
+                    do {
+                        index--;
+                    } while (index >= 0
+                        && tableView.isRowDisabled(index));
+    
+                    if (index >= 0) {
+                        if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
+                            && tableView.getSelectMode() == TableView.SelectMode.MULTI) {
+                            tableView.addSelectedIndex(index);
+                        } else {
+                            tableView.setSelectedIndex(index);
+                        }
                     }
+    
+                    consumed = true;
                 }
-
-                consumed = true;
                 break;
             }
 
             case Keyboard.KeyCode.DOWN: {
-                int index = tableView.getLastSelectedIndex();
-                int count = tableView.getTableData().getLength();
-
-                do {
-                    index++;
-                } while (index < count
-                    && tableView.isRowDisabled(index));
-
-                if (index < count) {
-                    if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
-                        && tableView.getSelectMode() == TableView.SelectMode.MULTI) {
-                        tableView.addSelectedIndex(index);
-                    } else {
-                        tableView.setSelectedIndex(index);
+                if (selectMode != TableView.SelectMode.NONE) {
+                    int index = tableView.getLastSelectedIndex();
+                    int count = tableView.getTableData().getLength();
+    
+                    do {
+                        index++;
+                    } while (index < count
+                        && tableView.isRowDisabled(index));
+    
+                    if (index < count) {
+                        if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
+                            && tableView.getSelectMode() == TableView.SelectMode.MULTI) {
+                            tableView.addSelectedIndex(index);
+                        } else {
+                            tableView.setSelectedIndex(index);
+                        }
                     }
+    
+                    consumed = true;
                 }
-
-                consumed = true;
                 break;
             }
         }