Package org.eclipse.jface.bindings.keys

## Class KeyStroke

- java.lang.Object
- - org.eclipse.jface.bindings.Trigger
  - - org.eclipse.jface.bindings.keys.KeyStroke

All Implemented Interfaces:
  `Comparable`

    public final class KeyStroke
    extends Trigger

A `KeyStroke` is defined as an optional set of modifier keys followed optionally by a natural key. A `KeyStroke` is said to be complete if it contains a natural key. A natural key is any Unicode character (e.g., "backspace", etc.), any character belonging to a natural language (e.g., "A", "1", "[", etc.), or any special control character specific to computers (e.g., "F10", "PageUp", etc.).

All `KeyStroke` objects have a formal string representation available via the `toString()` method. There are a number of methods to get instances of `KeyStroke` objects, including one which can parse this formal string representation.

All `KeyStroke` objects, via the `format()` method, provide a version of their formal string representation translated by platform and locale, suitable for display to a user.

`KeyStroke` objects are immutable. Clients are not permitted to extend this class.

Since:
  3.1

### Field Summary

Fields
`static String` `KEY_DELIMITER` The delimiter between multiple keys in a single key strokes -- expressed in the formal key stroke grammar.
`static String` `KEY_DELIMITERS` The set of delimiters for `Key` objects allowed during parsing of the formal string representation.
`static int` `NO_KEY` The representation for no key.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`int` `compareTo​(Object object)`
`boolean` `equals​(Object object)` Tests whether this object is equal to another object.
`String` `format()` Formats this key stroke into the current default look.
`static KeyStroke` `getInstance​(int naturalKey)` Creates an instance of `KeyStroke` given a natural key.
`static KeyStroke` `getInstance​(int modifierKeys, int naturalKey)` Creates an instance of `KeyStroke` given a set of modifier keys and a natural key.
`static KeyStroke` `getInstance​(String string)` Creates an instance of `KeyStroke` by parsing a given a formal string representation.
`int` `getModifierKeys()` Returns the modifier keys for this key stroke.
`int` `getNaturalKey()` Returns the natural key for this key stroke.
`int` `hashCode()` Computes the hash code for this object.
`boolean` `isComplete()` Returns whether or not this key stroke is complete.
`String` `toString()` Returns the formal string representation for this key stroke.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### KEY_DELIMITER

    public static final String KEY_DELIMITER

The delimiter between multiple keys in a single key strokes -- expressed in the formal key stroke grammar. This is not to be displayed to the user. It is only intended as an internal representation.

See Also:
  Constant Field Values

#### KEY_DELIMITERS

    public static final String KEY_DELIMITERS

The set of delimiters for `Key` objects allowed during parsing of the formal string representation.

See Also:
  Constant Field Values

#### NO_KEY

    public static final int NO_KEY

The representation for no key.

See Also:
  Constant Field Values

### Method Detail

#### getInstance

    public static final KeyStroke getInstance​(int naturalKey)

Creates an instance of `KeyStroke` given a natural key.

Parameters:
  `naturalKey` - the natural key. The format of this integer is defined by whichever widget toolkit you are using; `NO_KEY` always means no natural key.
Returns:
  a key stroke. This key stroke will have no modifier keys. Guaranteed not to be `null`.
See Also:
  `SWTKeySupport`

#### getInstance

    public static final KeyStroke getInstance​(int modifierKeys,
                                              int naturalKey)

Creates an instance of `KeyStroke` given a set of modifier keys and a natural key.

Parameters:
  `modifierKeys` - the modifier keys. The format of this integer is defined by whichever widget toolkit you are using; `NO_KEY` always means no modifier keys.
  `naturalKey` - the natural key. The format of this integer is defined by whichever widget toolkit you are using; `NO_KEY` always means no natural key.
Returns:
  a key stroke. Guaranteed not to be `null`.
See Also:
  `SWTKeySupport`

#### getInstance

    public static final KeyStroke getInstance​(String string)
                                       throws ParseException

Creates an instance of `KeyStroke` by parsing a given a formal string representation.

Parameters:
  `string` - the formal string representation to parse.
Returns:
  a key stroke. Guaranteed not to be `null`.
Throws:
  `ParseException` - if the given formal string representation could not be parsed to a valid key stroke.

#### compareTo

    public final int compareTo​(Object object)

#### equals

    public final boolean equals​(Object object)

Description copied from class: `Trigger`
Tests whether this object is equal to another object. A handle object is only equal to another trigger with the same properties.

Specified by:
  `equals` in class `Trigger`
Parameters:
  `object` - The object with which to compare; may be `null`.
Returns:
  `true` if the objects are equal; `false` otherwise.

#### format

    public final String format()

Formats this key stroke into the current default look.

Returns:
  A string representation for this key stroke using the default look; never `null`.

#### getModifierKeys

    public final int getModifierKeys()

Returns the modifier keys for this key stroke.

Returns:
  the bit mask of modifier keys; `NO_KEY` means that there is no modifier key.

#### getNaturalKey

    public final int getNaturalKey()

Returns the natural key for this key stroke.

Returns:
  The natural key for this key stroke. This value is `NO_KEY` if the key stroke is incomplete (i.e., has no natural key).

#### hashCode

    public final int hashCode()

Description copied from class: `Trigger`
Computes the hash code for this object.

Specified by:
  `hashCode` in class `Trigger`
Returns:
  The hash code for this object.

#### isComplete

    public final boolean isComplete()

Returns whether or not this key stroke is complete. Key strokes are complete iff they have a natural key which is not `NO_KEY`.

Returns:
  `true`, iff the key stroke is complete.

#### toString

    public final String toString()

Returns the formal string representation for this key stroke.

Overrides:
  `toString` in class `Object`
Returns:
  The formal string representation for this key stroke. Guaranteed not to be `null`.