This is an automated email from the ASF dual-hosted git repository.

ebakke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit 81c25719953416a62de7ac1e94e0ade18396a390
Author: Eirik Bakke <eba...@ultorg.com>
AuthorDate: Sat Mar 25 17:50:10 2023 -0400

    Replace calls to KeyEvent.getKeyText with Actions.keyStrokeToString where 
safe/appropriate.
    
    The Actions.keyStrokeToString method shows more user-friendly keyboard 
shortcut strings on MacOS, and in some other cases. This commit replaces calls 
to KeyEvent.getKeyText with Actions.keyStrokeToString in various places around 
the NetBeans codebase, for cases where I'm reasonably sure that the resulting 
string is used only for UI display purposes.
    
    The options.keymap module has not been touched, as this module probably 
makes assumptions about the format of the generated shortcut strings, e.g. for 
persistence of keymap configuration. Displaying better shortcut strings on 
MacOS in the Keymap options pane is better left as a separate project.
    
    For this commit, all occurrences of the following strings were reviewed, 
via "git grep":
    * KeyEvent.getKeyText
    * KeyEvent.getKeyModifiersText
    * InputEvent.getModifiersExText
---
 .../org/netbeans/jellytools/actions/Action.java    |  6 ++---
 .../bookmarks/ui/GotoLineOrBookmarkPanel.java      |  5 ++--
 .../src/org/netbeans/editor/MultiKeymap.java       |  3 ++-
 .../editor/lib2/actions/EditorActionUtilities.java | 31 +++-------------------
 .../java/editor/overridden/ComputeAnnotations.java |  4 +--
 .../modules/java/navigation/ToolTipManagerEx.java  |  6 ++++-
 .../o.n.core/src/org/netbeans/core/NbKeymap.java   | 13 ++-------
 .../modules/profiler/api/ActionsSupport.java       | 20 ++++----------
 8 files changed, 24 insertions(+), 64 deletions(-)

diff --git 
a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/Action.java 
b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/Action.java
index da3b74d6e7..8aa364c31c 100644
--- 
a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/Action.java
+++ 
b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/Action.java
@@ -23,7 +23,6 @@ import java.awt.Container;
 import java.awt.EventQueue;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
 import javax.swing.KeyStroke;
 import javax.swing.tree.TreePath;
 
@@ -44,6 +43,7 @@ import 
org.netbeans.jemmy.operators.Operator.ComponentVisualizer;
 import org.netbeans.jemmy.operators.Operator.DefaultStringComparator;
 import org.netbeans.jemmy.operators.Operator.StringComparator;
 import org.netbeans.jemmy.util.EmptyVisualizer;
+import org.openide.awt.Actions;
 import org.openide.cookies.InstanceCookie;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileUtil;
@@ -1281,8 +1281,8 @@ public class Action {
          */
         @Override
         public String toString() {
-            String s = KeyEvent.getKeyModifiersText(getKeyModifiers());
-            return s + (s.length() > 0 ? "+" : "") + 
KeyEvent.getKeyText(getKeyCode());
+            return Actions.keyStrokeToString(
+                    KeyStroke.getKeyStroke(getKeyCode(), getKeyModifiers()));
         }
     }
 }
diff --git 
a/ide/editor.bookmarks/src/org/netbeans/modules/editor/bookmarks/ui/GotoLineOrBookmarkPanel.java
 
b/ide/editor.bookmarks/src/org/netbeans/modules/editor/bookmarks/ui/GotoLineOrBookmarkPanel.java
index fbbb4abea5..e6f6c9834a 100644
--- 
a/ide/editor.bookmarks/src/org/netbeans/modules/editor/bookmarks/ui/GotoLineOrBookmarkPanel.java
+++ 
b/ide/editor.bookmarks/src/org/netbeans/modules/editor/bookmarks/ui/GotoLineOrBookmarkPanel.java
@@ -68,6 +68,7 @@ import org.netbeans.modules.editor.bookmarks.BookmarkInfo;
 import org.netbeans.modules.editor.bookmarks.BookmarkManager;
 import org.netbeans.modules.editor.bookmarks.BookmarkUtils;
 import org.openide.actions.GotoAction;
+import org.openide.awt.Actions;
 import org.openide.util.NbBundle;
 import org.openide.util.actions.SystemAction;
 
@@ -193,10 +194,8 @@ public class GotoLineOrBookmarkPanel extends JPanel 
implements ActionListener, F
                 JPanel southPanel = new JPanel();
                 southPanel.setLayout(new GridBagLayout());
                 JLabel keyChooserLabel = new JLabel();
-                String ksText = 
KeyEvent.getKeyModifiersText(ks.getModifiers()) + "+" + // NOI18N
-                        KeyEvent.getKeyText(ks.getKeyCode());
                 
keyChooserLabel.setText(NbBundle.getMessage(GotoLineOrBookmarkPanel.class,
-                        "CTL_gotoDialogBookmarkKeyChooserLabel", ksText));
+                        "CTL_gotoDialogBookmarkKeyChooserLabel", 
Actions.keyStrokeToString(ks)));
                 InputMap inputMap = 
rootPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
                 inputMap.put(ks, "openKeyChooser");
                 rootPane.getActionMap().put("openKeyChooser", new 
AbstractAction() {
diff --git a/ide/editor.lib/src/org/netbeans/editor/MultiKeymap.java 
b/ide/editor.lib/src/org/netbeans/editor/MultiKeymap.java
index 41cd390f9e..46ddc0c109 100644
--- a/ide/editor.lib/src/org/netbeans/editor/MultiKeymap.java
+++ b/ide/editor.lib/src/org/netbeans/editor/MultiKeymap.java
@@ -35,6 +35,7 @@ import javax.swing.text.DefaultEditorKit;
 import javax.swing.KeyStroke;
 import javax.swing.Action;
 import javax.swing.AbstractAction;
+import org.openide.awt.Actions;
 import org.openide.awt.StatusDisplayer;
 import org.openide.util.Lookup;
 
@@ -134,7 +135,7 @@ public class MultiKeymap implements Keymap {
             
             StringBuffer text = new StringBuffer();
             for (Iterator it = globalContextList.iterator(); it.hasNext();) {
-                text.append(getKeyText((KeyStroke)it.next())).append(' ');
+                text.append(Actions.keyStrokeToString((KeyStroke) 
it.next())).append(' ');
             }
             StatusDisplayer.getDefault().setStatusText(text.toString());       
 
         }
diff --git 
a/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/actions/EditorActionUtilities.java
 
b/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/actions/EditorActionUtilities.java
index ff142413d7..5976bf38e0 100644
--- 
a/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/actions/EditorActionUtilities.java
+++ 
b/ide/editor.lib2/src/org/netbeans/modules/editor/lib2/actions/EditorActionUtilities.java
@@ -47,6 +47,7 @@ import org.netbeans.api.editor.mimelookup.MimePath;
 import org.netbeans.api.editor.settings.KeyBindingSettings;
 import org.netbeans.api.editor.settings.MultiKeyBinding;
 import org.netbeans.spi.editor.AbstractEditorAction;
+import org.openide.awt.Actions;
 import org.openide.filesystems.FileObject;
 import org.openide.util.ImageUtilities;
 import org.openide.util.Lookup;
@@ -184,7 +185,7 @@ public final class EditorActionUtilities {
      * @return mnemonic of the keystroke.
      */
     public static String getKeyMnemonic(KeyStroke key) {
-        return appendKeyMnemonic(new StringBuilder(20), key).toString();
+        return Actions.keyStrokeToString(key);
     }
 
     public static String getKeyMnemonic(List<KeyStroke> keys) {
@@ -193,37 +194,11 @@ public final class EditorActionUtilities {
             if (sb.length() > 0) {
                 sb.append(' '); //NOI18N
             }
-            appendKeyMnemonic(sb, key);
+            sb.append(Actions.keyStrokeToString(key));
         }
         return sb.toString();
     }
 
-    public static String appendKeyMnemonic(StringBuilder sb, KeyStroke key) {
-        String sk = org.openide.util.Utilities.keyToString(key);
-        int mods = key.getModifiers();
-        if ((mods & KeyEvent.CTRL_MASK) != 0) {
-            sb.append("Ctrl+"); // NOI18N
-        }
-        if ((mods & KeyEvent.ALT_MASK) != 0) {
-            sb.append("Alt+"); // NOI18N
-        }
-        if ((mods & KeyEvent.SHIFT_MASK) != 0) {
-            sb.append("Shift+"); // NOI18N
-        }
-        if ((mods & KeyEvent.META_MASK) != 0) {
-            sb.append("Meta+"); // NOI18N
-        }
-
-        int i = sk.indexOf('-'); //NOI18N
-        if (i != -1) {
-            sk = sk.substring(i + 1);
-        }
-        sb.append(sk);
-
-        return sb.toString();
-    }
-
-
     public static SearchableEditorKit getGlobalActionsKit() {
         synchronized (EditorActionUtilities.class) {
             if (globalActionsKit == null) {
diff --git 
a/java/java.editor/src/org/netbeans/modules/java/editor/overridden/ComputeAnnotations.java
 
b/java/java.editor/src/org/netbeans/modules/java/editor/overridden/ComputeAnnotations.java
index 9c66e8029b..73b0d730df 100644
--- 
a/java/java.editor/src/org/netbeans/modules/java/editor/overridden/ComputeAnnotations.java
+++ 
b/java/java.editor/src/org/netbeans/modules/java/editor/overridden/ComputeAnnotations.java
@@ -20,7 +20,6 @@ package org.netbeans.modules.java.editor.overridden;
 
 import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.MethodTree;
-import java.awt.event.KeyEvent;
 import com.sun.source.tree.Tree;
 import java.util.Collection;
 import java.util.Collections;
@@ -49,6 +48,7 @@ import org.netbeans.api.java.source.JavaSource.Phase;
 import org.netbeans.modules.parsing.api.Snapshot;
 import org.netbeans.modules.parsing.spi.*;
 import org.netbeans.modules.parsing.spi.Parser.Result;
+import org.openide.awt.Actions;
 import org.openide.text.NbDocument;
 import org.openide.util.NbBundle;
 
@@ -245,7 +245,7 @@ public class ComputeAnnotations extends 
JavaParserResultTask<Result> {
         for (MultiKeyBinding mkb : kbs.getKeyBindings()) {
             if (actionName.equals(mkb.getActionName())) {
                 KeyStroke ks = mkb.getKeyStrokeCount() > 0 ? 
mkb.getKeyStroke(0) : null;
-                return ks != null ? 
KeyEvent.getKeyModifiersText(ks.getModifiers()) + '+' + 
KeyEvent.getKeyText(ks.getKeyCode()) : null;
+                return ks != null ? Actions.keyStrokeToString(ks) : null;
             }
         }
         return null;
diff --git 
a/java/java.navigation/src/org/netbeans/modules/java/navigation/ToolTipManagerEx.java
 
b/java/java.navigation/src/org/netbeans/modules/java/navigation/ToolTipManagerEx.java
index 8d250a2a57..6126a38b74 100644
--- 
a/java/java.navigation/src/org/netbeans/modules/java/navigation/ToolTipManagerEx.java
+++ 
b/java/java.navigation/src/org/netbeans/modules/java/navigation/ToolTipManagerEx.java
@@ -35,6 +35,7 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
+import javax.swing.KeyStroke;
 import javax.swing.Popup;
 import javax.swing.PopupFactory;
 import javax.swing.SwingUtilities;
@@ -44,6 +45,7 @@ import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.editor.mimelookup.MimeLookup;
 import org.netbeans.api.editor.mimelookup.MimePath;
 import org.netbeans.api.editor.settings.SimpleValueNames;
+import org.openide.awt.Actions;
 import org.openide.nodes.Node;
 import org.openide.util.NbBundle;
 import org.openide.util.RequestProcessor;
@@ -760,8 +762,10 @@ final class ToolTipManagerEx extends MouseAdapter 
implements MouseMotionListener
             JScrollPane scroll = new JScrollPane( content );
             scroll.setHorizontalScrollBarPolicy( 
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
             add( scroll, new 
GridBagConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new
 Insets(0,0,0,0),0,0) );
+            String shownKeyStroke = 
Actions.keyStrokeToString(KeyStroke.getKeyStroke(
+                KeyEvent.VK_F1, Utilities.isMac() ? KeyEvent.VK_META : 
KeyEvent.CTRL_DOWN_MASK));
             shortcut = new JLabel( NbBundle.getMessage( 
ToolTipManagerEx.class, "HINT_EnlargeJavaDocToolip", //NOI18N
-                    Utilities.isMac() ? 
KeyEvent.getKeyText(KeyEvent.VK_META)+"+F1" : "Ctrl+F1" ) ); //NOI18N //NOI18N
+                    shownKeyStroke ) );
             shortcut.setHorizontalAlignment( JLabel.CENTER );
             shortcut.setBorder( BorderFactory.createLineBorder(Color.black) );
             add( shortcut, new 
GridBagConstraints(0,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new
 Insets(0,0,0,0),0,0) );
diff --git a/platform/o.n.core/src/org/netbeans/core/NbKeymap.java 
b/platform/o.n.core/src/org/netbeans/core/NbKeymap.java
index 98d74770a0..388cda8f0f 100644
--- a/platform/o.n.core/src/org/netbeans/core/NbKeymap.java
+++ b/platform/o.n.core/src/org/netbeans/core/NbKeymap.java
@@ -39,6 +39,7 @@ import javax.swing.Action;
 import javax.swing.KeyStroke;
 import javax.swing.text.Keymap;
 import org.openide.awt.AcceleratorBinding;
+import org.openide.awt.Actions;
 import org.openide.awt.StatusDisplayer;
 import org.openide.cookies.InstanceCookie;
 import org.openide.filesystems.FileAttributeEvent;
@@ -281,20 +282,10 @@ public final class NbKeymap implements Keymap, 
Comparator<KeyStroke> {
 
         StringBuilder text = new StringBuilder();
         for (KeyStroke ks: context) {
-            text.append(getKeyText(ks)).append(' ');
+            text.append(Actions.keyStrokeToString(ks)).append(' ');
         }
         StatusDisplayer.getDefault().setStatusText(text.toString());        
     }
-    
-    private static String getKeyText (KeyStroke keyStroke) {
-        if (keyStroke == null) return "";
-        String modifText = KeyEvent.getKeyModifiersText 
-            (keyStroke.getModifiers ());
-        if ("".equals (modifText))       
-            return KeyEvent.getKeyText (keyStroke.getKeyCode ());
-        return modifText + "+" +                                // NOI18N
-            KeyEvent.getKeyText (keyStroke.getKeyCode ()); 
-    }
            
     private static final Logger LOG = 
Logger.getLogger(NbKeymap.class.getName());
     
diff --git 
a/profiler/profiler.api/src/org/netbeans/modules/profiler/api/ActionsSupport.java
 
b/profiler/profiler.api/src/org/netbeans/modules/profiler/api/ActionsSupport.java
index 5c7f792dc0..164eb51126 100644
--- 
a/profiler/profiler.api/src/org/netbeans/modules/profiler/api/ActionsSupport.java
+++ 
b/profiler/profiler.api/src/org/netbeans/modules/profiler/api/ActionsSupport.java
@@ -23,8 +23,8 @@ import javax.swing.Action;
 import javax.swing.ActionMap;
 import javax.swing.InputMap;
 import javax.swing.KeyStroke;
-import javax.swing.UIManager;
 import org.netbeans.modules.profiler.spi.ActionsSupportProvider;
+import org.openide.awt.Actions;
 import org.openide.util.Lookup;
 
 /**
@@ -35,22 +35,12 @@ import org.openide.util.Lookup;
 public final class ActionsSupport {
     
     public static final KeyStroke NO_KEYSTROKE = 
KeyStroke.getKeyStroke(KeyEvent.VK_UNDEFINED, 0);
-    
-    private static String ACC_DELIMITER;
+
     public static String keyAcceleratorString(KeyStroke keyStroke) {
-        if (keyStroke == null || NO_KEYSTROKE.equals(keyStroke)) return null;
-        
-        String keyText = KeyEvent.getKeyText(keyStroke.getKeyCode());
-        
-        int modifiers = keyStroke.getModifiers();
-        if (modifiers == 0) return keyText;
-        
-        if (ACC_DELIMITER == null) {
-            ACC_DELIMITER = 
UIManager.getString("MenuItem.acceleratorDelimiter"); // NOI18N
-            if (ACC_DELIMITER == null) ACC_DELIMITER = "+"; // NOI18N // Note: 
NetBeans default, Swing uses '-' by default
+        if (keyStroke == null || NO_KEYSTROKE.equals(keyStroke)) {
+            return null;
         }
-        
-        return KeyEvent.getKeyModifiersText(modifiers) + ACC_DELIMITER + 
keyText;
+        return Actions.keyStrokeToString(keyStroke);
     }
     
     public static KeyStroke registerAction(String actionKey, Action action, 
ActionMap actionMap, InputMap inputMap) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to