Portée

Une portée est utilisée pour définir le contexte adapté aux touches.  Le plan de travail définit deux portées :

La portée détermine quand une combinaison de touches (de la configuration de touches active) est active.  Cette portée est déclarée dans la marque de la combinaison de touches :

...
<keyBinding
       string="Ctrl+S"
       scope="org.eclipse.ui.globalScope"
       command="org.eclipse.ui.file.save"

configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
</keyBinding>
...
<keyBinding
       string="Ctrl+X Ctrl+S"
       scope="org.eclipse.ui.globalScope"
       command="org.eclipse.ui.file.save"

configuration="org.eclipse.ui.emacsAcceleratorConfiguration">
</keyBinding>

Comment la portée en cours est-elle établie ?  Par défaut, le plan de travail opère en portée globale.  Lorsqu'un éditeur de texte s'active, il est chargé de réinitialiser la portée à sa propre portée.   Tout ceci est géré par le code du plan de travail et de l'éditeur de texte.  La plupart des plug-in n'ont à déterminer la portée appropriée à leur combinaisons de touches qu'au moment de leur définition.  

Définition de nouvelles portées

Lorsqu'un plug-in définit une combinaison de touches, il l'assigne généralement à une portée existante.   Toutefois, si votre plug-in définit un nouveau style d'éditeur, vous pouvez également introduire une nouvelle portée pour les combinaisons de touches.  Par exemple, un éditeur multipage peut posséder plusieurs portées pour chaque page de l'éditeur.  

Lorsque vous définissez votre propre portée, votre plug-in doit s'assurer que les portées sont définies dans IKeyBindingService comme adapté à votre éditeur. Ce sujet va au-delà du thème de cette documentation. Reportez-vous à IKeyBindingService et ses réalisateurs pour en savoir plus.  

Les plug-in définissent (bien entendu) leurs portées dans le point d'extension org.eclipse.ui.commands.   Les marques du plan de travail des portées globale et éditeur de texte apparaissent en fin de définition de l'extension :

<extension
         point="org.eclipse.ui.commands">
      ...
      <scope
            name="%scope.global.name"
            description="%scope.global.description"
            id="org.eclipse.ui.globalScope">
      </scope>
      <scope
            name="%scope.text.name"
            parent="org.eclipse.ui.globalScope"
            description="%scope.text.description"
            id="org.eclipse.ui.textEditorScope">
      </scope>
   </extension>

Copyright IBM Corporation and others 2000, 2003.