home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / Keymap.java < prev    next >
Text File  |  1998-02-26  |  4KB  |  138 lines

  1. /*
  2.  * @(#)Keymap.java    1.9 98/01/14
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20. package com.sun.java.swing.text;
  21.  
  22. import com.sun.java.swing.Action;
  23. import com.sun.java.swing.KeyStroke;
  24.  
  25. /**
  26.  * A collection of bindings of KeyStrokes to actions.  The
  27.  * bindings are basically name-value pairs that potentially 
  28.  * resolve in a hierarchy.  
  29.  *
  30.  * @author  Timothy Prinzing
  31.  * @version 1.9 01/14/98
  32.  */
  33. public interface Keymap {
  34.  
  35.     /**
  36.      * Fetches the name of the set of key-bindings.
  37.      *
  38.      * @return the name
  39.      */
  40.     public String getName();
  41.  
  42.     /**
  43.      * Fetch the default action to fire if a 
  44.      * key is typed (ie a KEY_TYPED KeyEvent is received)
  45.      * and there is no binding for it.  Typically this
  46.      * would be some action that inserts text so that 
  47.      * the keymap doesn't require an action for each 
  48.      * possible key.
  49.      */
  50.     public Action getDefaultAction();
  51.  
  52.     /**
  53.      * Set the default action to fire if a key is typed.
  54.      */
  55.     public void setDefaultAction(Action a);
  56.  
  57.     /**
  58.      * Fetches the action appropriate for the given symbolic
  59.      * event sequence.  This is used by JTextController to 
  60.      * determine how to interpret key sequences.  If the
  61.      * binding is not resolved locally, an attempt is made
  62.      * to resolve through the parent keymap, if one is set.
  63.      *
  64.      * @param key the key sequence
  65.      * @returns  the action associated with the key
  66.      *  sequence if one is defined, otherwise null
  67.      */
  68.     public Action getAction(KeyStroke key);
  69.  
  70.     /**
  71.      * Fetches all of the keystrokes in this map that
  72.      * are bound to some action.
  73.      *
  74.      * @return the list of keystrokes
  75.      */
  76.     public KeyStroke[] getBoundKeyStrokes();
  77.  
  78.     /**
  79.      * Fetches all of the actions defined in this keymap.
  80.      *
  81.      * @return the list of actions
  82.      */
  83.     public Action[] getBoundActions();
  84.  
  85.     /**
  86.      * Fetches the keystrokes that will result in 
  87.      * the given action.
  88.      *
  89.      * @param a the action
  90.      * @return the list of keystrokes
  91.      */
  92.     public KeyStroke[] getKeyStrokesForAction(Action a);
  93.  
  94.     /**
  95.      * Determines if the given key sequence is locally defined.
  96.      *
  97.      * @param key the key sequence
  98.      * @return true if the key sequence is locally defined else false
  99.      */
  100.     public boolean isLocallyDefined(KeyStroke key);
  101.  
  102.     /**
  103.      * Adds a binding to the keymap.
  104.      *
  105.      * @param key the key sequence
  106.      * @param a the action
  107.      */
  108.     public void addActionForKeyStroke(KeyStroke key, Action a);
  109.  
  110.     /**
  111.      * Removes a binding from the keymap.
  112.      *
  113.      * @param keys the key sequence
  114.      */
  115.     public void removeKeyStrokeBinding(KeyStroke keys);
  116.  
  117.     /** 
  118.      * Removes all bindings from the keymap.
  119.      */
  120.     public void removeBindings();
  121.  
  122.     /**
  123.      * Fetches the parent keymap used to resolve key-bindings.
  124.      *
  125.      * @return the keymap
  126.      */
  127.     public Keymap getResolveParent();
  128.  
  129.     /**
  130.      * Sets the parent keymap, which will be used to 
  131.      * resolve key-bindings.
  132.      *
  133.      * @param parent the parent keymap
  134.      */
  135.     public void setResolveParent(Keymap parent);
  136.  
  137. }
  138.