Extendiendo Oracle Composer

Oracle Composer es un mecanismo de personalización y configuración en tiempo real de los distintos componentes ADF de nuestra aplicación o portal.

En la entrada os traigo cómo añadir nuevos paneles a la barra de herramientas de Oracle Composer. Además, también os comento cómo extender el panel de propiedades asociado a componentes y manejar los eventos de Oracle Composer.

Oracle Composer con un Panel propio adherido a la barra de herramientas
Para añadir nuevos paneles hay que seguir los siguientes pasos:

  • Crear un Task Flow que será el responsable de realizar las operaciones pertinentes de nuestro nuevo panel.
    Task Flow de cambio de Logo
  • Crear el archivo de configuración de extensiones de Oracle Composer, pe_ext.xml, en la carpeta META-INF de nuestro proyecto (este archivo no se crea por defecto con WebCenter ni ADF Applications).
    Archivo pe_ext.xml con un panel nuevo
  • El archivo pe_ext.xml contiene los siguientes elementos:
    • <panels><panel></panel>...</panel>: Contiene la definición de los nuevos paneles así como su "mapeo" a los Task Flow que ejecuta.(Incluido en el ejemplo decargable).
      Nuevo panel a la barra de herramientas

    • <property-panels><property-panel></property-panel>...</property-panels>: Oracle Composer permite añadir/eliminar propiedades que trae consigo los componentes y Task Flow ADF al editarlos con Oracle Composer. Para ser más especifico, cuando se edita una página con Oracle Composer, cada componente que forma parte de ella posee un icono, normalmente "llave inglesa" que da acceso a la configuración de sus propiedades. En estas propiedades se pueden configurar tanto estilos, como parámetros de entrada del mismo. Extendiendo Oracle Composer se puede eliminar o limitar ciertas propiedades de los componentes o Task Flow que queramos a la vez que también se puede añadir nuevas pestañas a la ventana de configuración con configuraciones Custom. (No incluido en el ejemplo decargable).
      Propiedades del componente "Recuadro"/Box
    • <event-handlers>...</event-handlers>: Los manejadores de eventos sirven para sobrescribir los eventos disparados por Oracle Composer. Se puede introducir código propio tanto en eventos de salvado, cancelación e incluso cerrado de Oracle Composer.
  • En el archivo de configuración, adf-config.xml debe añadirse la configuración referente a <pe:page-editor-config> para registrar los paneles que deben mostrarse en Oracle Composer. Notar que por defecto el atributo show-default-addons de <addon-panels> está a false por lo que si no lo establecemos a true tendrá que definirse manualmente cada panel de Composer (incluidos los denominados "por defecto").
    adf-config sin declarar show-default-addons
    adf-config con los default-addons por defecto
Por último comentar que hay ciertos paneles de Oracle Composer que no están habilitados por defecto:
  • Customization Manager: Es un panel que permite la gestión de la personalización de la página (datos del repositorio MDS) en caliente sin tener que importar/exportar con comandos WSLT.
    Enlace a la documentación

    <addon-panel name="oracle.adf.pageeditor.addonpanels.customization-manager" rendered="#{securityContext.userInAppRole['Administrator']}"/>
  • Resource String Editor. Sirve para contribuir literales en caliente. Lo realiza en el Bundle registrado de Composer. Enlace a la documentación.
Os dejo un ejemplo a descargar que contiene lo siguiente:
  • Una aplicación ADF exportable a ADF JAR library en caso de querer usarla en una aplicación de WebCenter Portal.
  • La aplicación ADF contiene un Task Flow para cambiar, a través de Oracle Composer, el Logo de una imagen de la página en función a unos valores establecidos en Managed Beans que gestiona. la URL de la imagen puede ser relativa o absoluta.
  • Recomiendo observar los ficheros pe_ext.xml, adf-config.xml y la página home.jspx para observar la lógica que sigue la extensión de Oracle Composer. Además, la clase Java SaveHandler que gestiona el evento de guardado de Composer.
Desarrollado en: JDeveloper 11.1.1.4

Referencia a la documentación oficial: Extending Runtime Capabilities Using Oracle Composer.

Comments

Popular posts from this blog

OJET: Inter-Module communication in TypeScript Template

OJET: Build and Deploy in an Application Server

OJET: Select All options using only Checkboxset