2.1
Le point d'extension org.eclipse.ui.commands
sert
à déclarer des commandes et des catégories de commandes avec les
éléments command
et category
. Une commande est une représentation abstraite d'un certain comportement sémantique mais il ne s'agit pas d'une implémentation réelle. Cela permet à différents développeurs d'ajouter un comportement spécifique pour des domaines propres. Par exemple, il peut y avoir une commande "paste" avec une implémentation dans un éditeur et une implémentation différente dans un widget de l'explorateur. Ces implémentations sont appelées gestionnaires. Les commandes peuvent également s'afficher sous forme de pointeurs de fonction déclaratifs ou de gestionnaires de signaux.
<!ELEMENT extension (category* , command* , commandParameterType* , keyBinding* , keyConfiguration* , context* , scope* , activeKeyConfiguration?)>
<!ATTLIST extension
id CDATA #IMPLIED
name CDATA #IMPLIED
point CDATA #REQUIRED>
<!ELEMENT command (defaultHandler? , state* , commandParameter*)>
<!ATTLIST command
category CDATA #IMPLIED
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
categoryId CDATA #IMPLIED
defaultHandler CDATA #IMPLIED
returnTypeId CDATA #IMPLIED
helpContextId CDATA #IMPLIED>
Cet élément est employé pour définir des commandes. Une commande correspond
à une demande de l'utilisateur pouvant être traitée par une action et
dont la syntaxe doit être unique comparée à celle des autres commandes. Ne
définissez pas une commande s'il en existe déjà une ayant le même
objectif. Si le même attribut id
contient plusieurs de ces
éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des
plug-ins) est pris en compte. Pour comprendre comment les actions sont liées
aux commandes, reportez-vous aux points d'extension
org.eclipse.ui.actionSets et
org.eclipse.ui.editorActions.
categoryId
à la place.ID unique de la catégorie de cette commande. Si cette commande ne précise pas de catégorie, elle apparaît dans toutes les interfaces utilisateur, avec les autres commandes classées en catégories.
Depuis : 3.0
Gestionnaire par défaut de cette commande (voir le point d'extension org.eclipse.ui.bindings). Si aucun autre gestionnaire n'est actif, ce gestionnaire sera actif. Ce gestionnaire entrera en conflit avec d'autres définitions de gestionnaire ne spécifiant aucune condition activeWhen
. Si vous créez un IExecutableExtension
, vous pouvez utiliser l'élément defaultHandler
à la place.
Depuis : 3.1
ID d'un élément commandParameterType
indiquant le type de valeur renvoyée par cette commande. La spécification d'un élément returnTypeId
permet aux clients exécutant la commande d'associer la valeur renvoyée à un type Java et de convertir la valeur sous la forme d'une chaîne susceptible d'être stockée et/ou transmise à une autre commande qui accepte les paramètres du même type.
Depuis : 3.2
Identificateur du contexte d'aide associé à cette commande en général. Les gestionnaires peuvent remplacer cet identificateur de contexte pour fournir une aide plus spécifique à leurs comportements.
Depuis : 3.2
<!ELEMENT category EMPTY>
<!ATTLIST category
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED>
Dans l'interface utilisateur, les commandes sont souvent organisées
par catégories afin de les rendre plus accessibles. Cet élément permet
de définir ces catégories. Une commande ne peut appartenir qu'à une
catégorie. Si le même attribut id
contient plusieurs de ces
éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des
plug-ins) est pris en compte.
<!ELEMENT commandParameter (values?)>
<!ATTLIST commandParameter
id CDATA #REQUIRED
name CDATA #REQUIRED
values CDATA #IMPLIED
typeId CDATA #IMPLIED
optional (true | false) "true">
Définit un paramètre qu'une commande doit comprendre. Un paramètre est un moyen de fournir plus d'informations à un gestionnaire lors de l'exécution. Par exemple, une commande "afficher la vue" pourrait prendre une vue comme paramètre. Les gestionnaires doivent être capables de comprendre ces paramètres et doivent donc être traités comme des API.
Depuis : 3.1
org.eclipse.core.commands.IParameterValues
. Si la classe n'est pas spécifiée, vous devez spécifier l'élément values
le plus explicite. Veuillez vous reporter à org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT commandParameterType EMPTY>
<!ATTLIST commandParameterType
id CDATA #REQUIRED
type CDATA #IMPLIED
converter CDATA #IMPLIED>
Définit le type d'objet d'un élément commandParameter et peut indiquer une sous-classe org.eclipse.core.commands.AbstractParameterValueConverter
afin de convertir des valeurs de paramètre de chaîne en objets.
Depuis : 3.2
java.lang.Object
sera utilisé en tant que type de paramètre.org.eclipse.core.commands.AbstractParameterValueConverter
. Le convertisseur doit générer et utiliser des objets du type indiqué dans l'attribut type
. Si cette classe n'est pas indiquée, cette fonction permettant de convertir des valeurs de chaîne en objet ne sera pas disponible pour ce type de paramètre (getValueConverter()
dans la classe ParameterType
renverra la valeur null
).<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
La version la plus explicite de l'attribut values
sur le commandParameter
.
Depuis : 3.1
org.eclipse.core.commands.IParameterValues
. Si la classe n'est pas spécifiée, vous devez spécifier l'élément values
le plus explicite. Veuillez vous reporter à org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Une valeur possible du paramètre.
Depuis : 3.1
IExecutableExtension
.IExecutableExtension
.<!ELEMENT defaultHandler (parameter)>
<!ATTLIST defaultHandler
class CDATA #REQUIRED>
Gestionnaire par défaut pour cette commande. Si aucun autre gestionnaire n'est actif, ce gestionnaire sera actif. Ce gestionnaire entrera en conflit avec d'autres définitions de gestionnaire ne spécifiant aucune condition activeWhen
. Si vous ne créez pas un IExecutableExtension
, vous pouvez utiliser ledefaultHandler
à la place.
Depuis : 3.1
org.eclipse.core.commands.IHandler
.<!ATTLIST state
class CDATA #IMPLIED
id CDATA #REQUIRED>
Informations d'état partagées entre les gestionnaires et éventuellement conservées entre les sessions. Il s'agit généralement de l'état d'une case à cocher ou de l'intitulé d'un gestionnaire. L'état est simplement une classe chargée dans le but de vérifier l'état. Consultez les Informations d'API pour plus de détails.
Depuis : 3.2
org.eclipse.core.commands.State
. Veuillez consulter les Informations d'API.
Identificateur unique de cet état. Il est utilisé pour conserver l'état entre les sessions (si l'état est une instance de org.eclipse.jface.commands.PersistentState
). Certains identificateurs communs (voir org.eclipse.jface.menus.IMenuStateIds
) sont lisibles lorsque la commande est affichée dans les menus ou les barres d'outils. L'identificateur doit seulement être unique dans la commande définissant l'état.
<!ATTLIST class
class CDATA #REQUIRED>
Classe pouvant être chargée pour stocker l'état de cette commande. Cet élément est utilisé lorsque vous transmettez plusieurs paramètres à une extension org.eclipse.core.runtime.IExecutableExtension
.
Depuis : 3.2
org.eclipse.core.commands.State
. Veuillez consulter les Informations d'API.<!ELEMENT keyConfiguration EMPTY>
<!ATTLIST keyConfiguration
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Cet élément est employé pour définir des configurations de touches. Si le même attribut id
contient plusieurs de ces
éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des
plug-ins) est pris en compte. Veuillez utiliser le point d'extension "org.eclipse.ui.bindings" à la place.
<!ELEMENT context EMPTY>
<!ATTLIST context
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Cet élément est employé pour définir des contextes. Si le même attribut id
contient plusieurs de ces
éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des
plug-ins) est pris en compte. Veuillez utiliser le point d'extension org.eclipse.ui.contexts à la place.
<!ELEMENT scope EMPTY>
<!ATTLIST scope
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED>
Cet élément est employé pour définir des portées. Si le même attribut id
contient plusieurs de ces
éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des
plug-ins) est pris en compte.
@déconseillé, utilisez le point d'extension "org.eclipse.ui.contexts"
à la place.
<!ELEMENT activeKeyConfiguration EMPTY>
<!ATTLIST activeKeyConfiguration
value CDATA #IMPLIED
keyConfigurationId CDATA #IMPLIED>
Cet élément sert à définir la configuration de touche active initiale pour Eclipse. En présence de plusieurs éléments, seul le dernier déclaré (dans l'ordre de lecture du registre des plug-ins) est pris en compte.
Cet élément a été remplacé par une préférence. Si votre application doit changer la configuration par défaut des touches, spécifiez alors ce qui suit dans votre fichier plugin_customization.ini
: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id
.
id
) de l'élément keyConfiguration qui doit initialement être actif.id
) de l'élément keyConfiguration qui doit initialement être actif.<!ELEMENT keyBinding EMPTY>
<!ATTLIST keyBinding
configuration CDATA #IMPLIED
command CDATA #IMPLIED
locale CDATA #IMPLIED
platform CDATA #IMPLIED
contextId CDATA #IMPLIED
string CDATA #IMPLIED
scope CDATA #IMPLIED
keyConfigurationId CDATA #IMPLIED
commandId CDATA #IMPLIED
keySequence CDATA #IMPLIED>
Cet élément permet d'assigner des séquences de touches à des
commandes. Veuillez utiliser l'élément key
dans le point d'extension "org.eclipse.ui.bindings" à la place.
java.util.Locale
.platform
sont celles renvoyées par
org.eclipse.swt.SWT.getPlatform()
.schemeId
sur l'élément key
dans le point d'extension "org.eclipse.ui.bindings".Séquence de touches à affecter à la commande. Les séquences de touches se composent d'une ou plusieurs activations de touche, correspondant à l'activation d'une touche du clavier éventuellement associée à l'une des touches suivantes : Ctrl, Alt, Maj ou Commande. Les activations de touche sont séparées par un espace et les touches associées par le caractère '+'.
Les touches de modification peuvent également être exprimées indépendamment de la plateforme. Sous MacOS X, par exemple, "Command" est la plupart du temps utilisé à la place de "Ctrl". Ainsi, "M1" remplacera soit "Ctrl" ou "Command", selon le cas. De même, "M2" est "Shift"; "M3" est "Alt"; et "M4" est "Ctrl" (MacOS X). Si plus de plateformes sont ajoutées, alors vous pourrez compter sur ces alias correspondant à des valeurs par défaut de la plateforme.
La syntaxe pour cette chaîne est définie dans org.eclipse.ui.internal.keys
. La chaîne fait la distinction entre les majuscules et les minuscules -- même si du point de vue du styles les lettres capitales sont à privilégier. Si la touche est une lettre, ajoutez simplement la lettre. Si la touche est une touche spéciale (c'est-à-dire non-ASCII), utilisez alors l'une des touches suivantes : ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, CAPS_LOCK, END, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT, 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, ou SCROLL_LOCK. Si la touche est une touche ASCII non imprimable, utilisez alors l'une des touches suivantes : BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB, ou VT. Notez que CR est la touche d'entrée/retour sur la plupart des claviers.
Le fichier plugin.xml
du plug-in org.eclipse.ui
utilise de façon extensive le point d'extension
org.eclipse.ui.commands
.
Les gestionnaires peuvent être enregistrés au moyen de commandes utilisant org.eclipse.ui.handlers.IHandlerService
. Ce service peut être extrait de différents composants du plan de travail (par exemple, le plan de travail, la fenêtre du plan de travail, le site du composant, etc.) en appelant la méthode getService(IHandlerService.class)
.
En règle générale, il est préférable de déclarer toutes les commandes de manière statistique (dans plugin.xml
). De cette manière, les utilisateurs peuvent associer des liaisons de touches aux commandes. En revanche, il est possible de déclarer les commandes au moment de l'exécution. Pour ce faire, extrayez le service org.eclipse.ui.commands.ICommandService
à partir d'un composant du plan de travail, appelez getCommand(yourCommandID)
puis appelez Command.define(...)
.
Il existe quelques implémentations d'états de gestionnaire par défaut qui peuvent être utiles aux utilisateurs de ce point d'extension :
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. Ce programme et les produits associés sont
distribués sous licence v1.0 et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/epl-v10.html