La página Extensiones permite examinar y editar extensiones de conectores. Las extensiones son el mecanismo central para contribuir aportando un comportamiento a la plataforma. A menos que el conector sea una biblioteca de API Java simple puesta a disposición de otros conectores, la contribución del comportamiento nuevo se aporta en forma de extensión.
Los conectores contribuyen a los puntos de extensión definidos por aquellos conectores que necesitan. La sintaxis de una extensión debe coincidir con la definición del punto de extensión para que pueda procesarse correctamente. El PDE calcula la lista total de puntos de extensión elegibles visitando todos los conectores visibles (tanto del área de trabajo como los externos).
El asistente de extensiones genérico proporcionado por el PDE tan solo explorará los puntos de extensión. Si se proporciona el esquema de una extensión (vea el tema Esquema de los puntos de extensión), el asistente extraerá del esquema la gramática y los metadatos del punto de extensión.
Además del asistente genérico, están disponibles diversas plantillas de extensión. Son las mismas plantillas que las que sirven para generar el contenido inicial del proyecto de conector. Su presencia aquí le permite organizar por etapas la creación de la extensión. Puede crear un conector que tenga una vista simple y luego, más adelante, añadirle un editor o un asistente.
Para ilustrar el funcionamiento de la página Extensiones, añadiremos la acción 'Hello, PDE world' al conector. Haremos una contribución al punto de extensión org.eclipse.ui.actionSets. En este ejemplo se presupone que está familiarizado con los puntos de extensión.
Empezaremos por pulsar el botón Añadir... para seleccionar el asistente de extensión:
El asistente Extensión basada en esquema es el asistente por omisión, porque maneja las extensiones de manera genérica. Explorará los conectores y ofrecerá todos los puntos de extensión que encuentre, con o sin esquemas. Los que tengan esquemas permitirán que el PDE ofrezca una ayuda mejor. Si falta el esquema de un punto de extensión, el PDE le permitirá añadir elementos y atributos a la extensión, pero no podrá verificar si son válidos para el punto de extensión seleccionado.
Cuando pulsa Siguiente, aparecerá una lista de puntos de extensión. Seleccione org.eclipse.ui.actionSets y pulse Finalizar.
El asistente añadirá la extensión nueva a la lista de extensiones. Puesto que esta extensión tiene un esquema asociado a ella, podemos editar con más detalle la definición de la extensión. Seleccionamos la extensión que acabamos de añadir y elegimos Nuevo->actionSet en el menú emergente. Este elemento XML se ha definido como el único elemento válido que puede mostrarse en la definición de la extensión.
El PDE creará valores por omisión para todos los atributos necesarios. Podemos cambiar el nombre por omisión del conjunto de acciones para que pase a ser "Conjunto de acciones de ejemplo"; para ello, seleccionamos el elemento y cambiamos la propiedad label en la vista Propiedades. El nombre nuevo se mostrará en la lista de extensiones.
Ahora tenemos que definir un menú y una acción para el conjunto de acciones. Si seleccionamos el conjunto de acciones y activamos el menú emergente en la sección "Hijos de elemento de extensión", el menú "Nuevo" ofrecerá dos opciones: menu y action. Estas opciones se basan en la información del esquema para la extensión de conjuntos de acciones. Primero crearemos el menú.
Podemos crear la acción de forma parecida:
El último elemento que hay que establecer es la clase Java de la acción. La definición de punto de extensión especifica que una acción debe implementar la interfaz IWorkbenchWindowActionDelegate. El PDE puede ofrecer ayuda porque extrae esta información del esquema:
Antes de que pulse Finalizar, el diálogo debe parecerse a este:
Al finalizar, se generará la clase nueva basada en la interfaz necesaria (con la implementación de un apéndice por cada método abstracto). Además, el nombre de la clase nueva será el valor de la propiedad class. El asistente también abrirá por omisión la clase Java nueva para editarla. Podrá localizar el método "run" y añadir la sentencia siguiente:
System.out.println("Hello, PDE world!");
Guarde el código fuente nuevo y cierre el editor Java. Luego, vuelva a la página Extensiones del editor de manifiestos y realice una operación de guardar.
Continuaremos con este ejemplo en el tema Ejecutar el conector.