Le point d'extension org.eclipse.ui.bindings
est utilisé pour déclarer des liaisons et des schémas. Les schémas sont des ensembles d'une ou plusieurs liaisons. Une liaison est un mappage entre un certain groupe de conditions, une certaine entrée utilisateur et une commande déclenchée.
Toutes les liaisons nécessitent un certain type de déclencheur, un contexte dans lequel elles sont actives et un schéma dans lequel elles existent. Si vous n'êtes pas certain du contexte à choisir, ne le spécifiez pas. Il prendra comme contexte par défaut "org.eclipse.ui.contexts.window"
. Ce contexte signifie que la liaison s'appliquera dans n'importe quelle fenêtre principale d'Eclipse. Lorsque le contexte devient actif, la liaison devient également active. Les liaisons provenant de contextes enfant remplaceront les liaisons des contextes parent. Pour plus d'informations sur les contextes, reportez-vous au point d'extension org.eclipse.ui.contexts
.
Si une liaison ne définit pas d'identifiant de commande, alors il s'agit d'un marqueur de suppression. Cela signifie que si toutes les conditions sont remplies, il annulera toutes les liaisons ayant le même déclencheur dans le même contexte. Ce mécanisme peut être utilisé, par exemple, pour modifier une liaison sur une plateforme particulière.
Un type de liaison est une liaison key
(c'est-à-dire un raccourci clavier). Par exemple, la liaison de Ctrl+C
à Copy
est considérée comme une liaison key
. Le déclencheur d'une liaison de touches est une séquence de touches.
Un schéma est un groupe de ces liaisons dans un ensemble que l'utilisateur final peut sélectionner. Par exemple, un utilisateur pourrait vouloir utiliser le schéma par défaut, mais il pourrait également utiliser un schéma de style Emacs ou Brief.
<!ELEMENT extension (scheme , key)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT scheme EMPTY>
<!ATTLIST scheme
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
parentId CDATA #IMPLIED>
Un schéma est un regroupement de liaisons que l'utilisateur final peut choisir d'utiliser.
Les schémas peuvent hériter des liaisons d'un schéma parent. Cela a pour but de faciliter le travail des développeurs de plug-in pour créer des ensembles de liaison personnalisés. Une liaison active définie dans un schéma enfant remplacera toujours une liaison active dans un schéma parent, si elles ont le même déclencheur. Cette technique est utilisée pour fournir le schéma Emacs dans le plan de travail.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
Une liaison entre une entrée clavier et le déclenchement d'une commande.
La séquence de touches concernant cette liaison. Cette séquence de touches correspond à la frappe d'une ou plusieurs touches. Les activations de touches sont séparées par des espaces. Elles consistent en une ou plusieurs touches maintenues enfoncées en même temps. Cela doit correspondre à zéro ou plusieurs touches de modifications et une autre touche. Les touches sont séparées par le caractère +
.
Les touches de modification reconnues sont M1
, M2
, M3
, M4
, ALT
, COMMAND
, CTRL
et SHIFT
. Les touches de modification "M" constituent une manière indépendante de la plateforme de représenter les touches et elles sont en général privilégiées. M1
est la touche COMMAND
sous MacOS X et la touche CTRL
sur la plupart des autres plateformes. M2
est la touche SHIFT
. M3
est la touche Option
sous MacOS X et la touche ALT
sur la plupart des autres plateformes. M4
est la touche CTRL
sous MacOS X et n'est pas définie sur les autres plateformes.
La touche actuelle est généralement simplement spécifiée comme un caractère ASCII en majuscules. Par exemple, F
ou ,
sont des exemples de ce type de touches. Cependant, il existe certaines touches spéciales ; les touches n'ayant pas de représentation ASCII imprimable. Voici la liste de ces touches spéciales : ARROW_DOWN
, ARROW_LEFT
, ARROW_RIGHT
, ARROW_UP
, BREAK
, BS
, CAPS_LOCK
, CR
, DEL
, END
, ESC
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, F13
, F14
, F15
, FF
, HOME
, INSERT
, LF
, NUL
, NUM_LOCK
, NUMPAD_0
, NUMPAD_1
, NUMPAD_2
, NUMPAD_3
, NUMPAD_4
, NUMPAD_5
, NUMPAD_6
, NUMPAD_7
, NUMPAD_8
, NUMPAD_9
, NUMPAD_ADD
, NUMPAD_DECIMAL
, NUMPAD_DIVIDE
, NUMPAD_ENTER
, NUMPAD_EQUAL
, NUMPAD_MULTIPLY
, NUMPAD_SUBTRACT
, PAGE_UP
, PAGE_DOWN
, PAUSE
, PRINT_SCREEN
, SCROLL_LOCK
, SPACE
, TAB
et VT
.
Il est également possible d'utiliser certains noms alternatifs pour des touches spéciales courantes. Par exemple, les touches ESC
et ESCAPE
, et CR
, ENTER
et RETURN
sont identiques.
Il est également fortement recommandé de limiter le nombre de séquences de touches. Une ou deux séquences est le maximum dont vous devriez avoir besoin. Utilisez des contextes pour donner différentes significations aux séquences de touche sur différentes parties de votre application. Avant tout, vous ne devrez pas utiliser une séquence de touches contenant plus de quatre frappes de touche.
org.eclipse.ui.contexts
. Sans spécification, la valeur par défaut est org.eclipse.ui.contexts.window
.L'identifiant de la commande qui devrait être exécutée lorsque cette liaison est déclenchée.
Si aucun identifiant de commande n'est spécifié, il s'agit d'un marqueur de suppression. Cela signifie que pour toute liaison dans le même contexte avec la même séquence, la plateforme et l'environnement locale deviendront inactifs lorsque cette liaison devient active. Si la plateforme ou l'environnement local d'une suppression n'est pas spécifié, alors n'importe quelle plateforme ou n'importe quel environnement local conviendra.
SWT.getPlatform()
. Par exemple, les chaînes suivantes sont considérées comme valides : win32
, gtk
, motif
, carbon
et photon
.Locale.toString()
. Par exemple, "en"
ou "en_CA"
sont tous les deux compris.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Un nom et une valeur de paramètre transmis à la commande lorsqu'elle est exécutée. Cela permet à la commande d'être qualifiée d'une certaine manière. Par exemple, une commande "Afficher la vue" pourrait accepter l'ID Vue comme paramètre.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"valeur par défaut"
contextId=
"windows"
/>
<scheme name=
"valeur par défaut"
description=
"raccourcis par défaut pour Eclipse"
id=
"valeur par défaut"
/>
</extension>
Il n'existe pas d'API publique pour la définition des liaisons. Pour apporter plus de stabilité à l'utilisateur, les liaisons ne sont définies que par l'intermédiaire des points d'extension. Si vous êtes dans une application RCP, vous devriez être en mesure de remplacer ce comportement dans WorkbenchAdvisor
.
Pour que les liaisons fonctionnent, vous devez avoir défini une commande. Pour que la liaison fonctionne, la commande doit avoir un gestionnaire actif. Les gestionnaires peuvent être enregistrés par programmation ; veuillez vous reporter au point d'extension org.eclipse.ui.handlers.
Copyright (c) 2005 IBM Corporation and others.
All rights reserved. Ce programme et les produits associés sont
distribués sous licence publique Eclipse v1.0 et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/epl-v10.html