1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
/* * @(#)Keymap.java 1.19 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.swing.text; import javax.swing.Action; import javax.swing.KeyStroke; /** * A collection of bindings of KeyStrokes to actions. The * bindings are basically name-value pairs that potentially * resolve in a hierarchy. * * @author Timothy Prinzing * @version 1.19 11/17/05 */ public interface Keymap { /** * Fetches the name of the set of key-bindings. * * @return the name */ public String getName(); /** * Fetches the default action to fire if a * key is typed (i.e. a KEY_TYPED KeyEvent is received) * and there is no binding for it. Typically this * would be some action that inserts text so that * the keymap doesn't require an action for each * possible key. * * @return the default action */ public Action getDefaultAction(); /** * Set the default action to fire if a key is typed. * * @param a the action */ public void setDefaultAction(Action a); /** * Fetches the action appropriate for the given symbolic * event sequence. This is used by JTextController to * determine how to interpret key sequences. If the * binding is not resolved locally, an attempt is made * to resolve through the parent keymap, if one is set. * * @param key the key sequence * @return the action associated with the key * sequence if one is defined, otherwise <code>null</code> */ public Action getAction(KeyStroke key); /** * Fetches all of the keystrokes in this map that * are bound to some action. * * @return the list of keystrokes */ public KeyStroke[] getBoundKeyStrokes(); /** * Fetches all of the actions defined in this keymap. * * @return the list of actions */ public Action[] getBoundActions(); /** * Fetches the keystrokes that will result in * the given action. * * @param a the action * @return the list of keystrokes */ public KeyStroke[] getKeyStrokesForAction(Action a); /** * Determines if the given key sequence is locally defined. * * @param key the key sequence * @return true if the key sequence is locally defined else false */ public boolean isLocallyDefined(KeyStroke key); /** * Adds a binding to the keymap. * * @param key the key sequence * @param a the action */ public void addActionForKeyStroke(KeyStroke key, Action a); /** * Removes a binding from the keymap. * * @param keys the key sequence */ public void removeKeyStrokeBinding(KeyStroke keys); /** * Removes all bindings from the keymap. */ public void removeBindings(); /** * Fetches the parent keymap used to resolve key-bindings. * * @return the keymap */ public Keymap getResolveParent(); /** * Sets the parent keymap, which will be used to * resolve key-bindings. * * @param parent the parent keymap */ public void setResolveParent(Keymap parent); }