Uso de RichFaces tabPanel con JavaScript

7 Abril 2009 por Otto Theo Sin comentarios »

En esta ocasión trataré sobre el uso del componente tabPanel de RichFaces usándolo con funciones JavaScript para dos casos en particular:

  • Hacer el cambio de tabs.
  • Verificar si un tab está activo.

El tabPanel presenta 3 maneras para realizar el cambio de un tab a otro mediante el atributo switchType:

  • client (se carga la información de todos los tabs).
  • ajax (se carga la información mediante ajax, cada vez que se entra al tab).
  • server (se carga la información cada vez que se entra al tab, actualizando toda la página).

» Leer más: Uso de RichFaces tabPanel con JavaScript

Maven en detalle – Parte 1

31 Marzo 2009 por Giancarlo Corzo 2 comentarios »

Comenzamos la saga Maven compuesta por una serie de artículos en donde detallaremos como instalar, construir, desplegar un pequeño proyecto piloto.

En artículos anteriores hemos hablado sobre las ventajas de Maven y como es que éste encaja dentro la de estructura de integración continua en el desarrollo de proyectos por lo que pasaremos directamente a los detalles.

» Leer más: Maven en detalle – Parte 1

rich:element una forma de obtener componentes jsf sin preocuparse por los id

4 Marzo 2009 por Giancarlo Corzo 1 comentario »

Cuando trabajamos con JSF tenemos que tener cuidado con los ids que asignamos a cada componente, dado que estos deben ser únicos.

JSF y otras librerías, para prevenir problemas en este sentido, siguen las siguientes reglas:

  1. Cuando no se asigna un id de manera explícita a un elemento se le genera un client id único.
  2. A todos los client ids (autogenerados o fijos) le antepone los client ids de los componentes padres, por ejemplo un inputText que se encuentre dentro de un form tendría un client id de la siguiente forma: nombreForm:nombreInputText.
  3. Componentes como a4j:repeat van incluso más alla,  generando client ids  con esta estructura nombreForm:nombreRepeat:indice:componente.

Antes de la última versión de rich faces (http://www.jboss.org/jbossrichfaces/downloads/) teníamos el problema de tener que estar pendientes de los client id, por ejemplo para obtener un elemento teníamos que escribir algo como esto:

document.getElementById(“formName:elementName”)

Sin embargo rich proporciona ahora 4 métodos muy interesantes para obtener referencias a los componentes desde javascript:

  • rich:clientId(‘id’) retorna el client id compuesto del componente JSF
  • rich:element(‘id’) es una contracción de document.getElementById(#{rich:clientId(‘id’)})
  • rich:component(‘id’) es una contracción de #{rich:clientId(‘id’)}.component
  • rich:findComponent(‘id’) devuelve una instancia de UIComponent tomando el id como parámetro.

Veamos un ejemplo:

<script>
function getLinkAndDoClick() {
#{rich:element(‘linkid’)} .onclick();
}
</script>

<h:form>
<a4j:commandLink id=”linkid” value=”Haz click aqui” action=”#{somebean.someAction()}”/>
</h:form>

De esta manera se puede obtener referencias a los componentes JSF sin tener que estar preocupándose cómo sus client id son generados.

Performance: Uso de @Create

13 Febrero 2009 por Giancarlo Corzo Sin comentarios »

En este post me gustaría hacer una pequeña contribución al post “Performance: ¿Por qué usar @Factory en vez de getters?” de Seam City sobre el uso de @Factory para la obtención de listas.
» Leer más: Performance: Uso de @Create

Carga dinámica de combos usando JSF y richfaces

28 Enero 2009 por Giancarlo Corzo 1 comentario »

La carga dinámica de un combo basado en la selección de un combo previo es un problema relativamente clásico y que ha sido abordado de distintas maneras a lo largo del tiempo.

En este post queremos mostrarles como es que nosotros abordamos el tema usando componentes JSF y de Richfaces para resolver el problema.

» Leer más: Carga dinámica de combos usando JSF y richfaces