Editeurs internes et externes
Identificateur :
org.eclipse.ui.editors
Description :
Ce point
d'extension sert à ajouter des éditeurs au plan de travail. Un éditeur est un composant
visuel dans la page du plan de travail, généralement utilisé pour éditer
ou parcourir un document ou un objet d'entrée. Pour ouvrir un éditeur,
l'utilisateur appelle généralement la commande "Open" (ouvrir) sur un
IFile.
Lorsque cette action est effectuée, le registre du plan de travail est
consulté pour déterminer l'éditeur approprié au type de fichier, puis une
nouvelle instance du type de l'éditeur est créée. Le résultat réel dépend
du type de l'éditeur. Le plan de travail fournit le support pour la
création des éditeurs internes qui sont étroitement intégrés au plan de
travail et les éditeurs externes qui sont lancés dans un cadre de fenêtre
distinct.
Il existe divers niveaux d'intégration entre ces extrêmes.
Dans le cas d'un éditeur interne, une étroite intégration peut être
obtenue entre la fenêtre du plan de travail et la partie éditeur. Le menu
du plan de travail et la barre d'outils sont préchargés avec un certain
nombre d'actions courantes, tel que couper, copier et coller. La partie
active, vue ou éditeur, est supposée fournir l'implémentation de ces
actions. Un éditeur interne peut également définir de nouvelles actions
qui apparaissent dans la fenêtre du plan de travail. Ces actions
apparaissent uniquement lorsque l'éditeur est actif.
L'intégration entre le plan de travail et les éditeurs externes est plus
ténue. Dans ce cas, le plan de travail peut lancer un éditeur, mais
ensuite il n'a aucun moyen pour déterminer l'état de l'éditeur externe ou
collaborer avec lui par un quelconque moyen, excepté via le système de
fichiers.
Marques de configuration :
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - identificateur qualifié complet du point d'extension
cible.
- id - identificateur facultatif de l'instance d'extension.
- name - nom facultatif de l'instance d'extension.
<!ELEMENT editor (contentTypeBinding*)>
<!ATTLIST editor
id CDATA #REQUIRED
name CDATA #REQUIRED
icon CDATA #IMPLIED
extensions CDATA #IMPLIED
class CDATA #IMPLIED
command CDATA #IMPLIED
launcher CDATA #IMPLIED
contributorClass CDATA #IMPLIED
default (true | false) "false"
filenames CDATA #IMPLIED
symbolicFontName CDATA #IMPLIED
matchingStrategy CDATA #IMPLIED>
- id - nom unique qui sera utilisé pour identifier cet éditeur.
- name - nom traduisible qui sera utilisé dans l'interface
utilisateur de cet éditeur.
- icon - nom relatif de l'icône utilisé pour toutes les
ressources correspondant aux extensions spécifiées.
Aucune icône n'est requise si vous spécifiez une commande plutôt qu'une
classe. Dans ce cas, le plan de travail utilisera l'icône fournie par le
système d'exploitation.
- extensions - zone facultative contenant la liste des types de
fichier compris par l'éditeur. Il s'agit d'une chaîne contenant des
extensions de fichier séparées par des virgules. Par exemple, un éditeur
qui comprend les documents en hypertexte, peut s'enregistrer pour "htm,
html".
- class - nom d'une classe implémentant org.eclipse.ui.IEditorPart. Les
attributs class, command et
launcher s'excluent mutuellement. Si cet attribut est défini, alors
contributorClass doit l'être également.
- command - commande à exécuter afin de lancer un
éditeur externe. La commande exécutable doit se trouver dans le chemin système ou dans
le répertoire du plug-in. Les attributs
class, command et launcher
s'excluent mutuellement.
- launcher - nom d'une classe implémentant org.eclipse.ui.IEditorLauncher.
Un lanceur ouvre un éditeur externe. Les attributs
class, command et launcher
s'excluent mutuellement.
- contributorClass - nom d'une classe implémentant org.eclipse.ui.IEditorActionBarContributor. Cet
attribut doit uniquement être défini si celui class
l'est déjà. Cette classe est utilisée pour ajouter de nouvelles actions au menu et à
la barre d'outils du plan de travail qui reflètent les fonctions du type
d'éditeur.
- default - si la valeur est "true", l'éditeur sera utilisé comme éditeur par défaut pour ce type. Ceci est valable uniquement dans un cas où plusieurs éditeurs sont enregistrés pour le même type. Si un éditeur n'est pas celui par défaut pour le type, il peut malgré tout
être lancé à l'aide du sous-menu "Ouvrir avec" pour la ressource
sélectionnée.
Veuillez noter que pour le moment cet attribut est uniquement honoré pour les associations de noms de fichiers et d'extensions. Il ne sera pas honoré pour les associations de types de contenu. Une résolution basée sur le type de contenu interviendra en premier, dans l'ordre d'apparition et n'est pasexplicitement spécifiée.
- filenames - zone facultative contenant la liste des noms de
fichier compris par l'éditeur. Il s'agit d'une chaîne contenant des
noms de fichier séparés par des virgules. Par exemple, un éditeur qui
comprend les documents en hypertexte, peut s'enregistrer pour "ejb.htm,
ejb.html".
- symbolicFontName - nom symbolique d'une police. Ce nom doit
correspondre à l'ID d'une police définie (voir
org.eclipse.ui.fontDefinitions). Si cet attribut est manquant ou non
valide, le nom de la police correspond à la valeur de
"org.eclipse.jface.textfont" dans le magasin de préférences de l'éditeur. En l'absence de magasin de préférences ou si la clé n'est pas définie la
police de texte JFace n'est pas utilisée. L'implémentation de l'éditeur
détermine si ce nom symbolique est utilisé pour définir la police.
- matchingStrategy - nom d'une classe implémentant org.eclipse.ui.IEditorMatchingStrategy. Cet
attribut doit uniquement être défini si celui class
l'est déjà. Cela permet à l'extension d'éditeur de fournir son propre algorithme afin de faire correspondre l'entrée de l'un de ses éditeurs à celle de l'éditeur donné.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Annonce que l'éditeur comprend le type de contenu donné et permet d'éditer les fichiers de ce type.
- contentTypeId - identificateur du type de contenu
Exemples :
L'exemple
ci-dessous illustre la définition de l'extension de l'éditeur
interne :
<extension point=
"org.eclipse.ui.editors"
>
<editor
id=
"com.xyz.XMLEditor"
name=
"Editeur XML XYZ original"
icon=
"./icons/XMLEditor.gif"
extensions=
"xml"
class=
"com.xyz.XMLEditor"
contributorClass=
"com.xyz.XMLEditorContributor"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Informations d'API :
Si
l'attribut command est employé, il sera traité comme ligne de
commande externe exécutée d'une façon indépendante à la
plateforme.
Si l'attribut launcher est utilisé, l'éditeur est également traité en tant
que programme externe. Dans ce cas, la classe spécifiée doit implémenter
org.eclipse.ui.IEditorLauncher.
Le lanceur sera instancié, puis open(IFile file) sera appelé pour lancer l'éditeur.
Si l'attribut class est utilisé, le plan de travail présume qu'il s'agit
d'un éditeur interne et que la classe spécifiée doit implémenter
org.eclipse.ui.IEditorPart.
Il est pratique courante de sous-classer
org.eclipse.ui.EditorPart lors de la définition d'un nouveau type
d'éditeur. Il est également nécessaire de définir un attribut
contributorClass.
La classe spécifiée doit implémenter
org.eclipse.ui.IEditorActionBarContributor et est utilisée
pour ajouter de nouvelles actions au menu et à la barre d'outils du plan
de travail qui reflètent les fonctions du type d'éditeur.
Dans le plan de travail, plusieurs éditeurs d'un type spécifique peuvent
être ouverts. Par exemple, il peut y avoir plusieurs éditeurs Java
ouverts. Pour éviter la création d'actions dupliquées et d'images
d'action, le concept de l'éditeur a été décomposé en deux parties. Un
IEditorActionBarContributor est responsable de la création
des actions. L'éditeur est responsable de l'implémentation des actions. En
outre, l'élément de contribution est partagé par chaque éditeur ouvert. De
cette conception résulte un seul ensemble d'actions pour un ou plusieurs
éditeurs ouverts.
L'élément de contribution ajoute de nouvelles actions au menu et à la
barre d'outils du plan de travail qui reflètent le type d'éditeur. Ces
actions sont partagées et une fois appelées, agissent sur l'éditeur actif. Ce dernier est transmis à l'élément de contribution en appelant
IEditorActionBarContributor.setActiveEditor.
Les identificateurs des actions et des groupes majeurs dans la fenêtre du
plan de travail sont définis dans
org.eclipse.ui.IWorkbenchActionConstants.
Ils doivent être utilisés comme point de référence pour l'ajout de
nouvelles actions. Les menus de niveau supérieur sont créés à l'aide de la
valeur suivante de l'attribut path :
-
additions - représente un groupe situé sur la gauche du menu Fenêtre.
Les actions et les menus ajoutés à ces chemins d'accès ne s'affichent que lorsque l'éditeur associé est actif. Lorsque l'éditeur est fermé, les menus et les actions sont supprimés.
Implémentation fournie :
Le
plan de travail fournit un éditeur de texte par défaut. Le produit de l'utilisateur final peut contenir d'autres éditeurs faisant partie de l'offre de livraison. Dans ce cas, les éditeurs sont enregistrés en tant qu'extensions à l'aide de la syntaxe décrite ci-dessus.
Copyright (c) 2002, 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