Descripción: este punto de extensión se utiliza para añadir editores nuevos al entorno de trabajo. Un editor es un componente visual de una página del entorno de trabajo. Se suele utilizar para editar o examinar un documento o un objeto de entrada. Para abrir un editor, el usuario invocará generalmente a una acción "Abrir" en un IFile. Cuando se realiza esta acción, se consulta el registro del entorno de trabajo para determinar un editor apropiado para el tipo de archivo y, a continuación, se crea una instancia nueva del tipo de editor. El resultado real depende del tipo del editor. El entorno de trabajo proporciona soporte para la creación de editores internos, que están estrechamente integrados en el entorno de trabajo, y para editores externos, que se lanzan en una ventana independiente. Existen también diversos niveles de integración entre estos extremos.
En el caso de un editor interno, puede lograrse un grado de integración elevado entre la ventana del entorno de trabajo y el componente editor. El menú y la barra de herramientas del entorno de trabajo están precargados con varias acciones comunes, tales como cortar, copiar y pegar. Se espera que el componente activo, vista o editor, proporcione la implementación para dichas acciones. Un editor interno puede también definir nuevas acciones que aparecen en la ventana del entorno de trabajo. Estas acciones únicamente aparecen cuando el editor está activo.
La integración entre el entorno de trabajo y los editores externos es más frágil. En este caso, el entorno de trabajo puede lanzar un editor, pero luego no tiene ninguna manera de determinar el estado del editor externo ni de colaborar con él de ningún modo, excepto mediante el sistema de archivos.
Códigos XML de configuración:
<!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
>
<extension point="org.eclipse.ui.editors"> <editor id="com.xyz.XMLEditor" name="Editor XML XYZ a medida" icon="./icons/XMLEditor.gif" extensions="xml" class="com.xyz.XMLEditor" contributorClass="com.xyz.XMLEditorContributor" symbolicFontName="org.eclipse.jface.textfont" default="false"> </editor> </extension>
Información sobre las API: si se utiliza el atributo command, se tratará como una línea de mandatos de programa externo que se ejecutará de manera dependiente de la plataforma.
Si se utiliza el atributo launcher, el editor también se tratará como programa externo. En este caso, la clase especificada debe implementar org.eclipse.ui.IEditorLauncher. Se creará una instancia del lanzador y luego se invocará el método open(IFile file) para lanzar el editor.
Si se utiliza el atributo class, el entorno de trabajo supondrá que se trata de un editor interno, y la clase especificada deberá implementar org.eclipse.ui.IEditorPart. Es una práctica común crear una subclase de org.eclipse.ui.EditorPart al definir un tipo de editor nuevo. También es necesario definir un atributo contributorClass. La clase especificada debe implementar org.eclipse.ui.IEditorActionBarContributor, y se utiliza para añadir al menú y a la barra de herramientas del entorno de trabajo acciones nuevas que reflejen las características del tipo de editor.
Dentro del entorno de trabajo, puede estar abierto más de un editor de un tipo determinado. Por ejemplo, puede haber abiertos uno o varios editores Java. Para evitar la creación de acciones e imágenes de acción duplicadas, el concepto de editor se ha dividido en dos. Un IEditorActionBarContributor se encarga de la creación de las acciones. El editor es responsable de la implementación de las acciones. Además, todos los editores abiertos comparten el contribuyente. Como resultado de este diseño, sólo existe un conjunto de acciones para uno o varios editores abiertos.
El contribuyente añadirá al menú y a la barra de herramientas del entorno de trabajo acciones nuevas que reflejen el tipo de editor. Estas acciones son compartidas y, cuando se invocan, actúan sobre el editor activo. El editor activo se pasa al contribuyente invocando a IEditorActionBarContributor.setActiveEditor. Los identificadores de las acciones y grupos principales dentro de la ventana del entorno de trabajo se definen en org.eclipse.ui.IWorkbenchActionConstants. Deben utilizarse como punto de referencia para la adición de acciones nuevas. Los menús de nivel superior se crean utilizando los valores siguientes para el atributo path:
Implementación suministrada: el entorno de trabajo proporciona un editor de texto por omisión. El producto del usuario final puede contener otros editores como parte del paquete compuesto. En tal caso, los editores se registrarán como extensiones utilizando la sintaxis definida anteriormente.
Copyright (c) 2002, 2003 IBM Corporation y otros.
Reservados todos los derechos. Este programa y sus materiales adjuntos están disponibles
bajo los términos de la licencia pública común (Common Public License) v1.0 que acompaña a
esta distribución, y está disponible en
http://www.eclipse.org/legal/cpl-v10.html