1   /*
2    * Key.java
3    *
4    * Copyright (c) 1998-2005, The University of Sheffield.
5    *
6    * This file is part of GATE (see http://gate.ac.uk/), and is free
7    * software, licenced under the GNU Library General Public License,
8    * Version 2, June1991.
9    *
10   * A copy of this licence is included in the distribution in the file
11   * licence.html, and is also available at http://gate.ac.uk/gate/licence.html.
12   *
13   * Valentin Tablan, October 2000
14   *
15   * $Id: Key.java,v 1.5 2005/01/11 13:51:38 ian Exp $
16   */
17  
18  package guk.im;
19  import java.awt.event.KeyEvent;
20  
21  /**
22   * This calls describes a keyboard key.
23   * A key is defined by one character and modifiers (CTRL or ALT or both).
24   *
25   */
26  public class Key {
27    /**    */
28    public Key(char keyChar, int modifiers){
29      this.keyChar = keyChar;
30      this.modifiers = modifiers;
31    }
32  
33    /**    */
34    public int hashCode(){
35      return (int)keyChar;
36    }
37  
38    /**    */
39    public boolean equals(Object o){
40      if(o instanceof Key){
41        Key other = (Key)o;
42        return keyChar == other.keyChar &&
43               (modifiers & KeyEvent.ALT_MASK) ==
44                  (other.modifiers & KeyEvent.ALT_MASK) &&
45               (modifiers & KeyEvent.CTRL_MASK) ==
46                  (other.modifiers & KeyEvent.CTRL_MASK);
47      }else return false;
48    }
49  
50    /**    */
51    char keyChar;
52    /**    */
53    int modifiers;
54  }//class Key
55