domingo, 3 de agosto de 2008

Eliminar elementos en panelSeries IceFace ( jsf )

Bueno... como continuación del POST de mi amigo Felipe en referencia a como eliminar elementos de un panelSeries en IceFaces les dejo el fruto de aquella tarde de busqueda en el siempre fiel amigo Google.

Aqui pueden descargar el proyecto, realizado con Netbeans 6.1 , servidor Tomcat... Descarga el Proyecto

Comenzemos por decir que nuestro proyecto esta compuesto por
  • Dos beans (Usuario y PosiblesAmigos, que es una lista de Usuarios).
  • La pagina (welcomeJSF.jsp)
  • Y nuestro faces-config.xml
Primero creamos nuestros beans (que no son mas que dos clases java comunes y corrientes). En el proyecto adjunto estas clases se encuentran en el paquete "beans".

Lo importante del asunto esta en la clase PosiblesAmigos y en el metodo borrar ya que este sera el encargado de eliminar el elemento del panelSeries, y para esto solo basta con eliminarlo de la lista, esto lo logramos capturando el compomente luego el objeto seleccionado con getRowData(), este metodo retorna un Objeto por lo que hacemos un Cast por el objeto deseado, en este caso Usuario. Luego buscamos el objeto en la lista y lo borramos con remove.


public void borrar(ActionEvent evento){
UIComponent panelSeries = evento.getComponent().findComponent("listaPosiblesAmigos");
Usuario usuario = (Usuario) ((UIData) panelSeries).getRowData();
int aBorrar =listaPosiblesAmigos.indexOf(usuario);
listaPosiblesAmigos.remove(aBorrar);
}

Luego en el archivo faces-config.xml creamos los dos porotos ("beans"), con el fin de poderlos usar en nuestra aplicación, para ello agregamos las siguientes lineas.


<managed-bean>
   <managed-bean-name>Usuario</managed-bean-name>
   <managed-bean-class>beans.Usuario</managed-bean-class>
   <managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
   <managed-bean-name>PosiblesAmigos</managed-bean-name>
   <managed-bean-class>beans.PosiblesAmigos</managed-bean-class>
   <managed-bean-scope>request</managed-bean-scope>
</managed-bean>


Esto quiere decir que creamos un bean llamado Usuario (managed-bean-name) de la clase Usuario que se encuentra en el paquete beans (managed-bean-class) y que sera un bean de respuesta (request, managed-bean-scope). Lo mismo con PosiblesUsuarios...

Bueno y luego pasamos a implementar la parte visual de todo, la pagina. Aquello esta implementado en welcomeJFS.jsp

Bueno la idea aqui es mostrar una serie de Posibles Amigos que estan especificados en la clase "PosiblesAmigos". Para ello hacemos uso del beans PosiblesAmigos, podriamos cambiar el nombre del beans modificando en faces-config.xml en el tag .


<ice:form>
  <ice:panelSeries id="listaPosiblesAmigos" value="#{PosiblesAmigos.listaPosiblesAmigos}" var="posibleAmigo" style="float:left">
   ...
   <ice:commandButton value="Delete" type="submit" actionListener="#{PosiblesAmigos.borrar}" />
   ...
  </ice:panelSeries>
</ice:form>



Revizemos:
  • id="listaPosiblesAmigos". Lo usaremos para recuperar el evento al momento de querer eliminar un elemento de esta lista.
  • value="#{PosiblesAmigos.listaPosiblesAmigos}". Hacemos uso del bean PosiblesAmigos y de su atributo listaPosiblesAmigos que es una lista de Usuarios.
  • var="posibleAmigo". Pasaria a ser cada elemento de la lista listaPosiblesAmigos que es un Usuario.
Entonces para ver los datos de cada posible amigo (Usuario) hacemos uso de la variable "posibleAmigo", y para hacer uso de los atributos y metodos del bean PosiblesAmigos seguimos con el mismo nombre de variable ("#{PosiblesAmigos.borrar}" ), no olvidar el detalle del actionListener.

Espero les alla servido y quedado claro, la verdad es que es mi primera entrega y dudo sea perfecta.

Hasta la proxima.

2 comentarios:

Unknown dijo...

Felicidades Roberto, una consulta, necesito un manual de configuracion del ICEFaces con Tomcat, hasta ahora no lo puedo hechar a andar, me puedes ayudar con el tema.

Roberto Castillo Suazo dijo...

Estimado Juan... no me dejaste ningun mail o algo para poder responderte, por lo que te respondo por aqui nomas, espero vuelvas y puedas leerlo, en todo caso no es gran maravilla mi respuesta.

Lo primero seria saber con que IDE estas desarrollando, yo trabajo especificamente con Netbeans (las ultimas versiones) y lo descargo la instalacion que viene con GlassFish y Tomcat, por lo que no es gran maravilla hecharlo a andar. Por ahora en eso te podria ayudar... si deseas mas ayuda contactame!...

Suerte
Bye