public abstract class Binding extends Object
A binding is a link between user input and the triggering of a particular command. The most common example of a binding is a keyboard shortcut, but there are also mouse and gesture bindings.
Bindings are linked to particular conditions within the application. Some of these conditions change infrequently (e.g., locale, scheme), while some will tend to change quite frequently (e.g., context). This allows the bindings to be tailored to particular situations. For example, a set of bindings may be appropriate only inside a text editor. Or, perhaps, a set of bindings might be appropriate only for a given locale, such as bindings that coexist with the Input Method Editor (IME) on Chinese locales.
It is also possible to remove a particular binding. This is typically done as
part of user configuration (e.g., user changing keyboard shortcuts). However,
it can also be helpful when trying to change a binding on a particular locale
or platform. An "unbinding" is really just a binding with no command
identifier. For it to unbind a particular binding, it must match that binding
in its context identifier and scheme identifier. Subclasses (e.g.,
KeyBinding
) may require other properties to match (e.g.,
keySequence
). If these properties match, then this is an
unbinding. Note: the locale and platform can be different.
For example, imagine you have a key binding that looks like this:
KeyBinding(command, scheme, context, "Ctrl+Shift+F")
On GTK+, the "Ctrl+Shift+F" interferes with some native behaviour. To change the binding, we first unbind the "Ctrl+Shift+F" key sequence by assigning it a null command on the gtk platform. We then create a new binding that maps the command to the "Esc Ctrl+F" key sequence.
KeyBinding("Ctrl+Shift+F",null,scheme,context,null,gtk,null,SYSTEM)
KeyBinding("Esc Ctrl+F",parameterizedCommand,scheme,context,null,gtk,SYSTEM)
Bindings are intended to be immutable objects.
Modifier and Type | Field and Description |
---|---|
protected String |
string
The string representation of this binding.
|
static int |
SYSTEM
The type of binding that is defined by the system (i.e., by the
application developer).
|
static int |
USER
The type of binding that is defined by the user (i.e., by the end user of
the application).
|
Modifier | Constructor and Description |
---|---|
protected |
Binding(ParameterizedCommand command,
String schemeId,
String contextId,
String locale,
String platform,
String windowManager,
int type)
Constructs a new instance of
Binding . |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object object)
Tests whether this binding is equal to another object.
|
String |
getContextId()
Returns the identifier of the context in which this binding applies.
|
String |
getLocale()
Returns the locale in which this binding applies.
|
ParameterizedCommand |
getParameterizedCommand()
Returns the parameterized command to which this binding applies.
|
String |
getPlatform()
Returns the platform on which this binding applies.
|
String |
getSchemeId()
Returns the identifier of the scheme in which this binding applies.
|
abstract TriggerSequence |
getTriggerSequence()
Returns the sequence of trigger for a given binding.
|
int |
getType()
Returns the type for this binding.
|
int |
hashCode()
Computes the hash code for this key binding based on all of its
attributes.
|
String |
toString()
The string representation of this binding -- for debugging purposes only.
|
public static final int SYSTEM
public static final int USER
protected transient String string
protected Binding(ParameterizedCommand command, String schemeId, String contextId, String locale, String platform, String windowManager, int type)
Binding
.command
- The parameterized command to which this binding applies; this
value may be null
if the binding is meant to
"unbind" a previously defined binding.schemeId
- The scheme to which this binding belongs; this value must not
be null
.contextId
- The context to which this binding applies; this value must not
be null
.locale
- The locale to which this binding applies; this value may be
null
if it applies to all locales.platform
- The platform to which this binding applies; this value may be
null
if it applies to all platforms.windowManager
- The window manager to which this binding applies; this value
may be null
if it applies to all window
managers. This value is currently ignored.type
- The type of binding. This should be either SYSTEM
or USER
.public final boolean equals(Object object)
public final ParameterizedCommand getParameterizedCommand()
null
, then this binding is "unbinding" an
existing binding.null
.public final String getContextId()
null
.public final String getLocale()
null
, then this binding applies to all locales. This
string is the same format as returned by
Locale.getDefault().toString()
.null
.public final String getPlatform()
null
, then this binding applies to all platforms. This
string is the same format as returned by SWT.getPlatform()
.null
.public final String getSchemeId()
null
.public abstract TriggerSequence getTriggerSequence()
null
.public final int getType()
SYSTEM
or USER
. In the future,
more types might be added.public final int hashCode()
public String toString()
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.