Autres responsabilités de l'éditeur de texte

L'éditeur exemple Java hérite d'une série de comportements par défaut de AbstractTextEditor.  La structure d'édition gère plusieurs autres responsabilités personnalisables en remplaçant des méthodes dans AbstractTextEditor. Parcourez l'implémentation de cette classe et de ses sous-classes pour découvrir comment le comportement est personnalisé dans la structure.

Voici certaines fonctions utiles pouvant être configurées.

Gestion des préférences

En général, les éditeurs de texte suivent les préférences utilisateur contrôlant la présentation et le comportement de l'éditeur.  Dans la structure du texte, chaque instance d'éditeur possède un magasin de préférences permettant d'accéder aux préférences utilisateur.  Ce magasin de préférences peut être configuré par l'éditeur ; vous pouvez également hériter des magasins déjà utilisés dans la structure.

Pour sa part, l'éditeur exemple Java hérite du magasin de préférences initialisé par TextEditor.  Il s'agit du magasin défini par le plug-in d'éditeur du plan de travail.   

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
Les préférences du plug-in d'éditeur sont modifiables dans les pages Plan de travail > Editeurs et Plan de travail > Editeurs > Editeur de texte.

Si vous ne souhaitez pas utiliser les préférences de texte standard du plan de travail pour l'éditeur, il est possible de définir un magasin de préférences différent.  Pour ce faire, remplacez initializeEditor et définissez votre propre magasin. Si vous utilisez un magasin personnalisé, vous devez également remplacer la méthode handlePreferenceStoreChanged() se lançant chaque fois qu'une préférence est mise à jour.

Liaisons de touches

Les portées de liaisons de touches servent à établir un ordre de consultation pour les liaisons de touches. Les portées conceptuelles réduisent les risquent de conflits de séquences de touches dus à divers plug-ins. Par défaut, le plan de travail fonctionne dans une portée globale. Lorsqu'un éditeur de texte est actif, il doit redéfinir la portée à celle de l'éditeur de texte afin que les liaisons de touches spécifiques à ce dernier soient également actives.

Dans la structure de texte de la plateforme, chaque instance d'éditeur de texte possède une portée de liaison de touches. L'éditeur doit définir la portée au moment de son activation. TextEditor définit donc cette portée et se charge de la rendre active. La portée est affectée à une méthode appelée à partir du constructeur :

protected void initializeKeyBindingScopes() {
	setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" });  
}

l'argument de la méthode est un ensemble d'ID de portées de liaisons de touches en chaîne. Si vous souhaitez que l'éditeur définisse sa propre portée de liaison de touches, vous pouvez remplacer cette méthode dans la classe de l'éditeur ou définir la portée de façon dynamique à l'aide de setKeybindingScopes.

La portée doit également être définie avec l'ID correspondant dans le point d'extension org.eclipse.ui.commands. Voici la définition de la portée de l'éditeur de texte.

<extension
         point="org.eclipse.ui.commands">
      ...
      <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.