Hola amigos, en esta ocasion publicaré una interesante forma de manejar campos editables directamente en un tabla.. este post es principalmente para ayudar a un amigo visitante que ha tenido la necesidad de implemetar este metodo! (Saludos Juan)...
Inicialmente les mostraré un video para que vean los resultados del post:
Este post, lo estaré actualizando, con sus respectivas intrucciones, por ahora, les dejo el codigo fuente, para aquellos que deseen explorarlo...
WebObjectList
pass: ecanaveras.blogspot.com
Nota: este post no esta en su version final, pendiente actualizaciones...
Mostrando entradas con la etiqueta TableRowGroup. Mostrar todas las entradas
Mostrando entradas con la etiqueta TableRowGroup. Mostrar todas las entradas
20 septiembre 2010
26 junio 2009
Usando ObjectListDataProvider
En muchos casos tenemos la necesitad de mantener nuestros datos en memoria....
para luego guardar lo que deseamos.
En esta entrada les mostraré un tecnica para realizar esto, usando Netbeans y Glassfish... y la ayuda de una clase muy poderoza ObjectListDataProvider, aqui veran una de los tantos usos que le podemos dar en una aplicacion Web...
Lo primero que haremos será crear un Nuevo Proyecto, en el IDE Netbeans, nos dirigimos a File > New Project... nos aparece la sgte ventana, en Categories escogemos Java Web y en Projects > Web Application damos clic en Next

Luego aparece esta nueva ventana donde nombramos al proyecto en nuestro caso WebObjectList y damos clic en Next

Aparece esta nueva ventana donde escogemos el servidor, en nuestro caso Glassfish y damos clic en Next

Luego escogemos el Frameworks, seleccionamos Visual Web JavaServer Faces y damos clic en Finish
Despues de los pasos anteriores, ceramos la clase que nos permitirá agregar datos al ObjectListDataProvider, En la ventana Projects, seleccionamos nuestra Aplicacion, WebObjectList, creamos un nuevo Java Package (paquete), y lo nombramos myClass...
despues de haber creado el paquete procedemos a crear nuestra clase, sobre myClass damos clic derecho New > Java Class, aparece la sgte ventana, la nombramos dataNames y cliqueamos Finish

agregamos el sgte cdgo:
Luego repetimos el proceso sobre el paquete y esta vez crearemos una extencion de la clase ObjectListDataProvider llamada dataNamesDataProvider, sgte imagen:
agregamos el sgte cdgo:
Ahora crearemos una instancia de la clase que acabamos de crear, nos dirigimos a la ventana Projects, seleccionamos nuestro proyecto, y abrimos Source Packages > webobjectlist > SessionBean1.java, y agregamos en el final el sgte Codigo:
Luego creamos una nueva Visual Web JSF Page, agregamos los componentes necesarios...
2 Texfield 1 button 1 table
En los compenentes que se usarán en el codigo Java, damos clic derecho y escogemos Add Binding Attribute, en este caso los textFields y el TableRowGorup de la tabla
Generamos (Build) nuestro proyecto, este paso es necesario para que JSF Page se actualize y conozca de la existencia del ObjectListDataProvider (namesDataProviver) del SessionBean1
ahora regresamos a nuestro JSP, sobre la tabla damos clic derecho, escogemos Table Layout aparece la sgte ventana, en el dropDown Get Data From, selecionamos namesDataProvider, e inmediatamente aparecen los campos de nuestra clase dataNames, y agregamos una nueva columna con un boton (boton Quitar).
nos queda algo parecido a esto: (lo verde es un gridPanel jejeje)
Ahora agregaremos registros a la tabla, en realidad al ObjectListDataProvider, entramos en la accion del boton "Agregar" haciendo doble clic sobre el mismo, y escribimos el sgte codigo:
Para Quitar resgistros, en la vista Design del JSP nos vamos a la ventana Navigator y navegamos hasta la columna que tiene el boton (Quitar) , damos clic derecho , escogemos Edit Action Event Handler y escribimos el sgte codigo:
Listo con esto ya hemos culminado con la presentacion del ObjectListDataprovider.
si desean el codigo fuente del proyecto aca lo dejo a disposicion!:
WebObjectList.zip
y como siempre les dejo un video del funcionamiento del la Aplicacion desarrollada en esta entrada.
Dejen sus comentarios... cualquier duda me comentan!!
para luego guardar lo que deseamos.
En esta entrada les mostraré un tecnica para realizar esto, usando Netbeans y Glassfish... y la ayuda de una clase muy poderoza ObjectListDataProvider, aqui veran una de los tantos usos que le podemos dar en una aplicacion Web...
Lo primero que haremos será crear un Nuevo Proyecto, en el IDE Netbeans, nos dirigimos a File > New Project... nos aparece la sgte ventana, en Categories escogemos Java Web y en Projects > Web Application damos clic en Next

Luego aparece esta nueva ventana donde nombramos al proyecto en nuestro caso WebObjectList y damos clic en Next

Aparece esta nueva ventana donde escogemos el servidor, en nuestro caso Glassfish y damos clic en Next

Luego escogemos el Frameworks, seleccionamos Visual Web JavaServer Faces y damos clic en Finish
Despues de los pasos anteriores, ceramos la clase que nos permitirá agregar datos al ObjectListDataProvider, En la ventana Projects, seleccionamos nuestra Aplicacion, WebObjectList, creamos un nuevo Java Package (paquete), y lo nombramos myClass...despues de haber creado el paquete procedemos a crear nuestra clase, sobre myClass damos clic derecho New > Java Class, aparece la sgte ventana, la nombramos dataNames y cliqueamos Finish

agregamos el sgte cdgo:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package myClass; /** * * @author ecanaveras */ public class dataNames { public dataNames(String nombre, String apellidos) { this.nombre = nombre; this.apellidos = apellidos; } private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } private String apellidos; public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } }
agregamos el sgte cdgo:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package myClass; import com.sun.data.provider.impl.ObjectListDataProvider; import java.util.ArrayList; import java.util.List; /** * * @author ecanaveras */ public class dataNamesDataProvider extends ObjectListDataProvider { private List<dataNames> dataList = new ArrayList<dataNames>(); //Especificamos que la DataProvider deber ser Tipo dataNames public dataNamesDataProvider() { this.setList(dataList); this.setObjectType(dataNames.class); } //Agrega datos al DataProvider public void addNames(dataNames newData){ dataList.add(newData); } }
private dataNamesDataProvider namesDataProviver = new dataNamesDataProvider(); public dataNamesDataProvider getNamesDataProviver() { return namesDataProviver; } public void setNamesDataProviver(dataNamesDataProvider namesDataProviver) { this.namesDataProviver = namesDataProviver; }
2 Texfield 1 button 1 table
En los compenentes que se usarán en el codigo Java, damos clic derecho y escogemos Add Binding Attribute, en este caso los textFields y el TableRowGorup de la tabla
Generamos (Build) nuestro proyecto, este paso es necesario para que JSF Page se actualize y conozca de la existencia del ObjectListDataProvider (namesDataProviver) del SessionBean1
ahora regresamos a nuestro JSP, sobre la tabla damos clic derecho, escogemos Table Layout aparece la sgte ventana, en el dropDown Get Data From, selecionamos namesDataProvider, e inmediatamente aparecen los campos de nuestra clase dataNames, y agregamos una nueva columna con un boton (boton Quitar).
nos queda algo parecido a esto: (lo verde es un gridPanel jejeje)
Ahora agregaremos registros a la tabla, en realidad al ObjectListDataProvider, entramos en la accion del boton "Agregar" haciendo doble clic sobre el mismo, y escribimos el sgte codigo:
public String btnAgregar_action() { //Validar lo campos String name = txtName.getText() != null ? txtName.getText().toString() : ""; String apellido = txtApellido.getText() != null ? txtApellido.getText().toString() : ""; //Crear nuevos datos dataNames datos = new dataNames(name, apellido); //Agregar registros al DataProvider getSessionBean1().getNamesDataProviver().addNames(datos); getSessionBean1().getNamesDataProviver().commitChanges(); txtName.setText(null); txtApellido.setText(null); System.out.println("Registro add"); return null; }
public String btnQuitar_action() { //Quitar Registros RowKey rk = getTableRowGroup1().getRowKey(); getSessionBean1().getNamesDataProviver().removeObject(rk); getSessionBean1().getNamesDataProviver().commitChanges(); return null; }
si desean el codigo fuente del proyecto aca lo dejo a disposicion!:
WebObjectList.zip
y como siempre les dejo un video del funcionamiento del la Aplicacion desarrollada en esta entrada.
Dejen sus comentarios... cualquier duda me comentan!!
Suscribirse a:
Entradas (Atom)


