Editeurs internes et externes

org.eclipse.ui.editors

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.

<!ELEMENT extension (editor*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


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


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



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>

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 :

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.

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.