Liaisons

org.eclipse.ui.bindings

3.1

Le point d'extension org.eclipse.ui.bindingsest 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.



<!ELEMENT key (parameter)>

<!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.



<!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.