Editeurs internes et externes

Identificateur : org.eclipse.ui.editors

Description : ce point d'extension est utilisé pour ajouter de nouveaux é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
   >

   <!ELEMENT editor EMPTY>

   <!ATTLIST editor
      id               CDATA #REQUIRED
     name             CDATA #REQUIRED
      icon             CDATA #IMPLIED
      extensions       CDATA #IMPLIED
     class            CDATA #IMPLIED
     command          CDATA #IMPLIED
     contributorClass CDATA #IMPLIED
     default          (true | false) "false"
     filenames        CDATA #IMPLIED
     launcher         CDATA #IMPLIED
     symbolicFontName CDATA #IMPLIED
   >

Exemples : Voici un exemple de définition d'extension d'éditeur interne :

   <extension point="org.eclipse.ui.editors"> 
      <editor 
         id="com.xyz.XMLEditor" 
         name="Fancy XYZ XML editor" 
         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 utilisé, il est traité en tant que ligne de commande de programme externe qui sera exécutée de manière dépendante de 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.

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,2003 IBM Corporation and others. All rights reserved. Ce programme et les produits qui l'accompagnent sont fournis sous licence v1.0 associée à cette distribution et disponibles à l'adresse suivante : http://www.eclipse.org/legal/cpl-v10.html