Creación del Bean de Respaldo del Detalle y clases necesarias

PEDRO DELGADO YARZA 2014/03/11 13:19

A la hora de crear la capa de persistencia del Detalle debemos seguir la misma infraestructura generada para el Maestro explicada en el apartado Infraestructura de clases Maestro creando una estructura similar adaptada a las nuevas clases que aparecen en los listados del detalle.

Esta infraestructura se incorporará al bean de respaldo del Maestro que será el encargado de gestionar tanto el formulario del maestro como el del detalle. Por lo tanto no es necesario crear un bean específico para el detalle.

Al mismo tiempo debemos crear una clase adicional para gestionar los listados que aparecerán en este nuevo formulario, actuando de igual manera que en el apartado Creación del Bean de Respaldo del Maestro y clases necesarias

El resultado de esa clase en nuestro caso sería el siguiente:

public class LazyComentarioDataModel extends LazyDataModel<Comentario> {
 
	private static final long serialVersionUID = -7128353552033320971L;
 
	private List<Comentario> comentarios;
	private Map<String, Object> parametros;
	private ServicioPersistenciaAnuncios servicioAnuncios;
 
	public LazyComentarioDataModel() {
		comentarios = new ArrayList<Comentario>();
	}
 
	public Map<String, Object> getParametros() {
		return parametros;
	}
 
	public void setParametros(Map<String, Object> parametros) {
		this.parametros = parametros;
	}
 
	@Override
	public Object getRowKey(Comentario comentario) {
		return comentario.getId();
	}
 
	@Override
	public List<Comentario> load(int first, int pageSize, String sortField, SortOrder sortOrder,
								Map<String, String> filters) {
           ResultQuery<Anuncio> resultQuery = getServicioComentarios().obtenerListadoComentarios(parametros, first, pageSize,sortField,
                                                                                                  sortOrder.name()); 
           comentarios= resultQuery.getResultList();
           setRowCount((int) resultQuery.getResultCount());
           return comentarios;
	}
 
	@Override
	public Comentario getRowData(String rowKey) {
		for (Comentario com : comentarios) {
			if (Long.toString(com.getId()).equals(rowKey)) {
				return com;
			}
		}
 
		return null;
	}
 
	private ServicioPersistenciaAnuncios getServicioAnuncios() {
		if (servicioAnuncios == null) {
			this.servicioAnuncios = (ServicioPersistenciaAnuncios) Component.getInstance("servicioPersistenciaAnuncios");
		}
		return this.servicioAnuncios;
	}
 
}

Una vez creada esta clase se asociará al Bean del Maestro que la gestionará de igual manera que hace con el otro listado, solo que esta clase no se inicializará al principio, sino cuando seleccionemos un elemento de la lista del maestro sobre el cual listar sus hijos.

  • fdw2.0/fundeweb2.0/gt/creacion_del_bean_de_respaldo_del_detalle.txt
  • Última modificación: 07/11/2017 10:46
  • (editor externo)