Archivo

Archive for the ‘ADF / Java’ Category

ADF tips: Diferentes formas de mostrar mensajes de validación

ADF tips

Este post trata sobre las diferentes opciones que tenemos para mostrar mensajes de validación, como cuando tenemos un componente de entrada de datos marcado como requerido o como cuando utilizamos un componente tipo af:validateDoubleRange para manejar la validación.

Podemos tener un formulario simple como éste:

Por defecto, si solo hay un error de validación, el mensaje se mostrará en una especie de bocadillo.

Si por el contrario tenemos más de un mensaje, estos se mostrarán en un popup.

Si queremos cambiar la forma en la que se muestran los mensajes disponemos de 2 componentes:

Leer más…

Categorías:ADF / Java Etiquetas: , , ,

ADF tips: Filtrar los nodos padre e hijos en un af:tree

ADF tips

A partir de la necesidad real de uno de nuestros clientes, sobre filtración de datos en una página con un componente af:tree, voy a mostraros como filtrar los padres y los hijos con un sólo valor utilizando parte del post de Ashish. Esto también se puede aplicar al componente af:treeTable.

La primera cosa que necesitamos es el componente tree y la estructura de datos. En este caso vamos a utilizar las tablas Departments y Employees del schema HR de Oracle.

En nuestra página vamos a arrastrar DepartmentsView desde la paleta de datacontrols y crearemos el componente tree.

Después crearemos un View Criteria en el View Object Departments (padre).

Leer más…

Categorías:ADF / Java Etiquetas: , ,

ADF tips: Cambiar el estilo de un componente por su id

ADF tips

Si queremos cambiar la apariencia de un componente normalmente utilizamos Skinning y los selectores que nos ofrece. Aunque no es una forma usual de aplicar diferentes estilos a componentes, voy a mostraros como aplicarlos utilizando la id del componente.

Si por ejemplo tenemos un botón en una página, y este componente no está rodeado de ningún naming container (como puede ser un PanelCollection o una región), podemos utilizar su id sin hacer ninguna modificación más.

Podéis observar el código de la página, el css y el resultado.

 

1

2

3

 

Si por el contrario el componente está rodeado de un naming container, la id generada en html no será la misma, por ejemplo será ‘pc1:b2’ si lo tenemos dentro de un panelCollection o ‘r1:0:b2’ si el botón está dentro de una región.

Al ejecutar la página podremos inspeccionarla utilizando nuestro navegador preferido.

2-1

4

Leer más…

Categorías:ADF / Java Etiquetas: , , , ,

Publicar y securizar ADF Business Components como servicios REST

En ADF 12.2.1, que fue liberado justo antes de Oracle Open World 2015, se introdujeron muchas nuevas funcionalidades y mejoras, y una de ellas es la de exponer los ADF Business Componentes (ADF BC) como servicios REST.

La primera cosa que debemos hacer es configurar la Release Version de REST. Esto se puede hacer en el fichero adf-config.xml

1

En versiones anteriores podíamos exponer los ADF BC como servicios SOAP (desde la pestaña Web Services en el Application Module) y en esta última versión también podemos elegir REST.

2

Podemos elegir las instancias de las vistas que deseemos y asignarles un Resource Name.

3

Automáticamente se creará un fichero XML donde podremos seleccionar los atributos que queramos exponer, así como si también deseamos exponer métodos personalizados que hayamos creado en la clase de implementación de la vista.

Leer más…

Categorías:ADF / Java Etiquetas: , ,

ADF tips: Cambiar de skin en tiempo de ejecución dependiendo de la URL

ADF tips

Hace unos meses, Andrejus publicó cómo cambiar entre Skyros y AltaUI en ADF 12c. Esta es una forma perfecta para empezar una migración de 11g a 12c y AltaUI. En este post voy a mostraros otra forma de cambiar de skin en tiempo de ejecución dependiendo de la página en la que estemos.

Primero tenemos que crear un bean ‘SkinSelector’ y una propiedad dentro del bean ‘currentSkin’. También tenemos que añadir su método get y set.

1

2

Una vez tenemos creado el bean, y lo hemos registrado en el adfc-config, vamos a asignar dicha propiedad al skin-family del fichero trinidad-config.xml para que podamos setear dicha propiedad dinámicamente.

3

El siguiente paso es crear un Filter. Dentro de la clase java, en el método doFilter vamos a evaluar la URL en la que nos encontramos y vamos a asignar la propiedad ‘currentSkin’ del bean ‘SkinSelector’ dependiendo del valor. También tenemos que instanciar el bean y añadirlo a sessionScope ya que la primera vez que ejecutemos será null.

4

Una vez que tenemos el filtro creado, tenemos que registrarlo en el fichero web.xml.

Leer más…

ADF tips: Mostrar el registro seleccionado en un af:tree

ADF tips

En ocasiones para presentar la estructura de nuestros datos utilizamos un af:tree ya que es una forma simple y elegante de poder mostrar el maestro y el detalle en un mismo componente. En este ADF tip vais a poder ver cómo mostrar el registro seleccionado es un af:tree basado en un view object recursivo.

Supongamos que tenemos esta estructura basada en la tabla empleados del schema hr de Oracle.

1

Lo primero que tenemos que hacer es arrastrar la vista de la paleta de data controls a nuestra página para crear el árbol.

2

 

Una vez creado el árbol, para mostrar el registro seleccionado, añadiremos un formulario basado en la vista de empleados. Aquí tenemos el problema: ¿en qué instancia de la vista basamos el formulario? Si lo hacemos en la instancia padre sólo se mostrará en el formulario el registro padre cuando seleccionemos alguno de los hijos.

3

Leer más…

Crear y consumir servicios web JAX-RPC en JDeveloper 12.1.3

Como podéis ver en JDeveloper 12c Deprecated and Desupported featuresel soporte por defecto de JAX-RPC ha sido eliminado desde la versión 12.1.2 de JDeveloper. Aunque lo han eliminado, todavía hay un gran numero de servicios JAX-RPC que tenemos que consumir y voy a mostraros cómo crear o consumir servicios web JAX-RPC.

Para realizar ambas acciones debemos añadir manualmente las librerías JAX-RPC al proyecto ya que, como podréis ver, por defecto al crear o consumir servicios web tan solo podremos seleccionar JAX-WS.

Crear servicios web JAX-RPC

Como he comentado, por defecto sólo se puede seleccionar JAX-WS.

1

 

Para poder crear un servicio JAX-RPC tenemos que añadir las librerías al proyecto, así que en la opción ‘Libraries and Classpath’ de las propiedades del proyecto haremos clic en ‘Add Library’ y seleccionaremos al librería ‘JAX-RPC 11 Web Services‘.

2

 

Ahora, si intentamos crear el servicio web otra vez, no nos forzará a elegir JAX-WS.

Leer más…