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 2009/09/30 18:03:06 UTC

svn commit: r820326 - in /incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk: Keyboard.java skin/terra/TerraListViewSkin.java skin/terra/TerraTableViewSkin.java skin/terra/TerraTreeViewSkin.java

Author: gbrown
Date: Wed Sep 30 16:03:06 2009
New Revision: 820326

URL: http://svn.apache.org/viewvc?rev=820326&view=rev
Log:
Resolve issue PIVOT-309.

Modified:
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Keyboard.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Keyboard.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Keyboard.java?rev=820326&r1=820325&r2=820326&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Keyboard.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/Keyboard.java Wed Sep 30 16:03:06 2009
@@ -114,7 +114,7 @@
                 awtModifiers |= KeyEvent.SHIFT_DOWN_MASK;
             }
 
-            return KeyEvent.getModifiersExText(awtModifiers)
+            return KeyEvent.getModifiersExText(awtModifiers) + KEYSTROKE_MODIFIER_SEPARATOR
                 + KeyEvent.getKeyText(keyCode);
         }
 
@@ -249,6 +249,21 @@
 
     private static int modifiers = 0;
 
+    private static final Modifier MULTI_SELECT_MODIFIER;
+    private static final String KEYSTROKE_MODIFIER_SEPARATOR;
+
+    static {
+        String osName = System.getProperty("os.name").toLowerCase();
+
+        if (osName.startsWith("mac os x")) {
+            MULTI_SELECT_MODIFIER = Modifier.META;
+            KEYSTROKE_MODIFIER_SEPARATOR = "";
+        } else {
+            MULTI_SELECT_MODIFIER = Modifier.CTRL;
+            KEYSTROKE_MODIFIER_SEPARATOR = "-";
+        }
+    }
+
     /**
      * Returns a bitfield representing the keyboard modifiers that are
      * currently pressed.
@@ -298,5 +313,13 @@
 
         return dropAction;
     }
+
+    public static Modifier getMultiSelectModifier() {
+        return MULTI_SELECT_MODIFIER;
+    }
+
+    public static String getKeyStrokeModifierSeparator() {
+        return KEYSTROKE_MODIFIER_SEPARATOR;
+    }
 }
 

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=820326&r1=820325&r2=820326&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Wed Sep 30 16:03:06 2009
@@ -609,6 +609,8 @@
                         listView.setSelectedIndex(itemIndex);
                     }
                 } else {
+                    Keyboard.Modifier multiSelectModifier = Keyboard.getMultiSelectModifier();
+
                     if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
                         && selectMode == ListView.SelectMode.MULTI) {
                         Filter<?> disabledItemFilter = listView.getDisabledItemFilter();
@@ -625,7 +627,7 @@
 
                             listView.setSelectedRanges(selectedRanges);
                         }
-                    } else if (Keyboard.isPressed(Keyboard.Modifier.CTRL)
+                    } else if (Keyboard.isPressed(multiSelectModifier)
                         && selectMode == ListView.SelectMode.MULTI) {
                         // Toggle the item's selection state
                         if (listView.isItemSelected(itemIndex)) {

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=820326&r1=820325&r2=820326&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Wed Sep 30 16:03:06 2009
@@ -955,6 +955,8 @@
                     tableView.setSelectedIndex(rowIndex);
                 }
             } else {
+                Keyboard.Modifier multiSelectModifier = Keyboard.getMultiSelectModifier();
+
                 if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)
                     && selectMode == TableView.SelectMode.MULTI) {
                     Filter<?> disabledRowFilter = tableView.getDisabledRowFilter();
@@ -971,7 +973,7 @@
 
                         tableView.setSelectedRanges(selectedRanges);
                     }
-                } else if (Keyboard.isPressed(Keyboard.Modifier.CTRL)
+                } else if (Keyboard.isPressed(multiSelectModifier)
                     && selectMode == TableView.SelectMode.MULTI) {
                     // Toggle the item's selection state
                     if (tableView.isRowSelected(rowIndex)) {

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java?rev=820326&r1=820325&r2=820326&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraTreeViewSkin.java Wed Sep 30 16:03:06 2009
@@ -1435,7 +1435,8 @@
                                     treeView.setSelectedPath(path);
                                 }
                             } else if (selectMode == TreeView.SelectMode.MULTI) {
-                                if (Keyboard.isPressed(Keyboard.Modifier.CTRL)) {
+                                Keyboard.Modifier multiSelectModifier = Keyboard.getMultiSelectModifier();
+                                if (Keyboard.isPressed(multiSelectModifier)) {
                                     if (nodeInfo.isSelected()) {
                                         treeView.removeSelectedPath(path);
                                     } else {