Fixes bug 25517

2005-12-21  Lillian Angel  <[EMAIL PROTECTED]>

        PR classpath/25517
        * javax/swing/plaf/basic/BasicLookAndFeel.java
        (initComponentDefaults): Added focus map for 
        FormattedTextField. Mauve test updated for this.
        * javax/swing/plaf/basic/BasicTextUI.java
        (createKeyMap): Fixed to get key bindings from the input map. 
        There is not .keyBindings default in BasicL&F (same with the 
        JDK).
        (installKeyBoardActions): Removed unneeded code.

Index: javax/swing/plaf/basic/BasicLookAndFeel.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java,v
retrieving revision 1.76
diff -u -r1.76 BasicLookAndFeel.java
--- javax/swing/plaf/basic/BasicLookAndFeel.java	22 Dec 2005 14:38:45 -0000	1.76
+++ javax/swing/plaf/basic/BasicLookAndFeel.java	22 Dec 2005 15:31:33 -0000
@@ -540,6 +540,46 @@
       "FormattedTextField.font",
       new FontUIResource("SansSerif", Font.PLAIN, 12),
       "FormattedTextField.foreground", new ColorUIResource(Color.black),
+      "FormattedTextField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+        KeyStroke.getKeyStroke("KP_UP"), "increment",
+        KeyStroke.getKeyStroke("END"), "caret-end-line",
+        KeyStroke.getKeyStroke("shift ctrl  O"), "toggle-componentOrientation",
+        KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+        KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+        KeyStroke.getKeyStroke("KP_DOWN"), "decrement",
+        KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+        KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+        KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+        KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+        KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+        KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+        KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+        KeyStroke.getKeyStroke("UP"), "increment",
+        KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
+        KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+        KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+        KeyStroke.getKeyStroke("ESCAPE"), "reset-field-edit",
+        KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+        KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
+        KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
+        KeyStroke.getKeyStroke("DOWN"), "decrement",
+        KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
+        KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
+        KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
+        KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+        KeyStroke.getKeyStroke("ctrl A"), "select-all",
+        KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+        KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+        KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
+        KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+        KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
+        KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+        KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+        KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
+        KeyStroke.getKeyStroke("DELETE"), "delete-next",
+        KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
+        KeyStroke.getKeyStroke("shift LEFT"), "selection-backward"
+      }),
       "FormattedTextField.inactiveBackground", new ColorUIResource(light),
       "FormattedTextField.inactiveForeground", new ColorUIResource(Color.gray),
       "FormattedTextField.selectionBackground",
Index: javax/swing/plaf/basic/BasicTextUI.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTextUI.java,v
retrieving revision 1.60
diff -u -r1.60 BasicTextUI.java
--- javax/swing/plaf/basic/BasicTextUI.java	21 Dec 2005 21:04:56 -0000	1.60
+++ javax/swing/plaf/basic/BasicTextUI.java	22 Dec 2005 15:31:34 -0000
@@ -622,14 +622,20 @@
   protected Keymap createKeymap()
   {
     String prefix = getPropertyPrefix();
-    JTextComponent.KeyBinding[] bindings = 
-      (JTextComponent.KeyBinding[]) UIManager.get(prefix + ".keyBindings");
+    InputMapUIResource m = (InputMapUIResource) UIManager.get(prefix + ".focusInputMap");
+    KeyStroke[] keys = m.keys(); 
+    int len = keys.length;
+    JTextComponent.KeyBinding[] bindings = new JTextComponent.KeyBinding[len];
+    for (int i = 0; i < len; i++)
+      {
+        KeyStroke curr = keys[i];
+        bindings[i] = new JTextComponent.KeyBinding(curr, (String) m.get(curr));
+      }
+    
     if (bindings == null)
       {
         bindings = new JTextComponent.KeyBinding[0];
-        // FIXME: Putting something into the defaults map is certainly wrong.
-        // Must be fixed somehow.
-        UIManager.put(prefix + ".keyBindings", bindings);
+        UIManager.put(prefix + ".focusInputMap", bindings);
       }
 
     Keymap km = JTextComponent.addKeymap(getKeymapName(), 
@@ -643,7 +649,6 @@
    */
   protected void installKeyboardActions()
   {
     Keymap km = JTextComponent.getKeymap(getKeymapName());
     if (km == null)
       km = createKeymap();
@@ -653,10 +658,8 @@
     SwingUtilities.replaceUIInputMap(textComponent, JComponent.WHEN_FOCUSED,
                                      getInputMap(JComponent.WHEN_FOCUSED));
     SwingUtilities.replaceUIActionMap(textComponent, createActionMap());
-
-    InputMap focusInputMap = (InputMap) UIManager.get(getPropertyPrefix() + ".focusInputMap");
-    ActionMap parentActionMap = new ActionMapUIResource();
     
+    ActionMap parentActionMap = new ActionMapUIResource();
     Action[] actions = textComponent.getActions();
     for (int j = 0; j < actions.length; j++)
       {
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to