#
Accelerator Sets

###### Identifier:

org.eclipse.ui.acceleratorSets

###### Since:

Release 2.0

###### Description:

WARNING: This extension point is DEPRECATED.
Do not use this extension point, it will be removed in future versions of this product. Instead, use the extension point org.eclipse.ui.commands

This extension point is used to register accelerator set extensions. Accelerator sets are just what the name implies, sets of accelerators. An accelerator is an association between one or more sequences of accelerator keys and a workbench action. An accelerator key sequence may be of length one or greater.

An accelerator set is registered with an accelerator configuration (see the Accelerator Configuration extension point) and is applicable for an accelerator scope (see the Accelerator Scope extension point).

###### Configuration Markup:

<!ELEMENT extension (acceleratorSet*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT acceleratorSet (accelerator+)>

<!ATTLIST acceleratorSet

configurationId CDATA #REQUIRED

scopeId CDATA #REQUIRED>

- configurationId - a unique name that identifies the accelerator configuration to which this accelerator set is registered.
- scopeId - a unique name that identifies the accelerator scope for which this accelerator set is applicable.

<!ELEMENT accelerator EMPTY>

<!ATTLIST accelerator

id CDATA #IMPLIED

key CDATA #REQUIRED

locale CDATA #IMPLIED

platform CDATA #IMPLIED>

- id - the unique identifier of the action definition of the action associated with this accelerator. If the id is not specified this accelerator deletes any mappings with the same key. This is used to delete a key binding for a specific Locale.
- key - an attribute representing the sequence(s) of accelerator keys used to perform the action associated with this accelerator. Sequences are separated by '||', and individual keys in a sequence are separated by a space. A key may be modified by the CTRL, ALT, or SHIFT keys. Depending on keyboard layout, some keys ('?' for example) may need the SHIFT to be accessed but the accelerator should be specified without the SHIFT so it will be independent of keyboard layout. E.g. if CTRL+? is specified as an accelerator, the user may have to press CTRL+SHIFT+? depending on the keyboard layout.
- locale - an optional attribute which specifies a locale for which the accelerator is applicable. If this attribute is not specified, the accelerator is applicable for all locales.
- platform - an optional attribute which specifies a platform on which the accelerator is applicable. If this attribute is not specified, the accelerator is applicable on all platforms.

###### Examples:

Following is an example of an accelerator set extension:

       <extension point="org.eclipse.ui.acceleratorSets">
          <acceleratorSet
            configurationId="org.eclipse.ui.exampleAcceleratorConfiguration"
            scopeId="org.eclipse.ui.globalScope">
              <accelerator
                  id="org.eclipse.ui.ExampleActionA"
                  key="CTRL+R CTRL+A">
              </accelerator>
              <accelerator
                  id="org.eclipse.ui.ExampleActionB"
                  key="CTRL+R CTRL+B">
              </accelerator>
              <accelerator
                  id="org.eclipse.ui.ExampleActionC"
                  key="CTRL+R CTRL+C || CTRL+SHIFT+DELETE">
              </accelerator>
          </acceleratorSet>
       </extension>

###### API Information:

More than one accelerator may be specified for the same action in the accelerator set but only one will be used.

If the locale and/or the platform is specified, the accelerator that better matches the current locale and platform will be used. The current locale is determined by the API Locale.getDefault() and the platform by the API SWT.getPlatform(). If the platform and/or the locale is specified and it does not match the current locale and/or platform, the accelerator is discarded. If accelerator A defines only the locale and B defines only the platform, B is used. If accelerator A defines "ja" as its locale and B defines "ja_JP", B is used in case the current locale is "ja_JP".

If two accelerators are defined in accelerators sets in different plugins, the chosen accelerator will depend on the plugins. If plugin A depends on B, the accelerators defined in B is used. If A and B don't depend on each other, they will be alphabetically sorted by the plugin id.

If two accelerators are defined in different scopes, the accelerator defined in the current scope will be used. If an accelerator is not defined in the current scope or one of its parents it is discarded. If an accelerator is defined in a parent and child scope, the one in the child is used.

###### Supplied Implementation:

The workbench provides accelerator sets for the Default and Emacs accelerator configurations.

Copyright (c) 2002, 2004 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html