El controller es la clase en Java donde trabajaremos con los facade para interactuar con la base de datos.
Estos deben implementar de la interfaz IController y el alcance debe ser @ViewScoped
@Inject
TipovehiculoFacade tipovehiculoFacade;
Este sera asociado al componente <p:datatable en la pagina
private TipovehiculoDataModel tipovehiculoDataModel;
List<Tipovehiculo> tipovehiculoList;
List<Tipovehiculo> tipovehiculoFiltered;
Tipovehiculo tipovehiculo = new Tipovehiculo();
Tipovehiculo tipovehiculoSelected = new Tipovehiculo();
Definir los métodos get/set
Obtenemos el valor del parámetro idtipovehiculo, el cual es asignado desde los formularios, se utiliza para identificar el entity seleccionado.Ademas instanciamos los list. Invocar al método findAll() para obtener la lista de documentos y se lo pasamos al DataModel
@PostConstruct
public void init() {
try {
tipovehiculoList = new ArrayList<>();
tipovehiculoFiltered = new ArrayList<>();
String idtipovehiculo = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idtipovehiculo");
if (idtipovehiculo != null) {
Optional<Tipovehiculo> optional = tipovehiculoFacade.find("idtipovehiculo", idtipovehiculo);
if (optional.isPresent()) {
tipovehiculo = optional.get();
}
}else{
tipovehiculoList = tipovehiculoFacade.findAll();
tipovehiculoFiltered = tipovehiculoList;
tipovehiculoDataModel = new TipovehiculoDataModel(tipovehiculoList);
}
} catch (Exception e) {
JsfUtil.errorMessage("init() " + e.getLocalizedMessage());
}
}
Limpia el contenido de los atributos en la pagina contenidos en la seccion content
@Override
public void reset() {
RequestContext.getCurrentInstance().reset(":form:content");
prepareNew();
}
Busca si existe el documento por su llave primaria y si no lo encuentra lo guarda en la colección.
Invoca la pagina view e invoca el init del formulario cargando el id.
Actualiza el documento en la colección.
Elimina el documento y regresa a la pagina list
Elimina el documento no realiza salto a otra pagina
Elimina todos los documentos de la colección.
Imprime el documento actual
Imprime todos los documentos
Los demás métodos se usan para las operaciones básicas.
Para crearlo seleccionamos en el paquete controller. File -->New Categories: Java Server Faces File Types: JSF ManagedBean
en el nombre colocamos TipovehiculoController
y el Scope seleccionar view
Codigo completo
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.javscaz.tallerjsd.controller;
import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.avbravoutils.printer.Printer;
import com.avbravo.ejbtallerjsd.datamodel.TipovehiculoDataModel;
import com.avbravo.ejbtallerjsd.ejb.TipovehiculoFacade;
import com.avbravo.ejbtallerjsd.entity.Tipovehiculo;
import com.javscaz.tallerjsd.interfaces.IController;
import com.javscaz.tallerjsd.util.ResourcesFiles;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import org.primefaces.context.RequestContext;
/**
*
* @author avbravo
*/
@Named
@ViewScoped
public class TipovehiculoController implements Serializable, IController {
private static final long serialVersionUID = 1L;
private TipovehiculoDataModel tipovehiculoDataModel;
@Inject
TipovehiculoFacade tipovehiculoFacade;
List<Tipovehiculo> tipovehiculoList;
List<Tipovehiculo> tipovehiculoFiltered;
Tipovehiculo tipovehiculo = new Tipovehiculo();
Tipovehiculo tipovehiculoSelected = new Tipovehiculo();
@Inject
ResourcesFiles rf;
@Inject
Printer printer;
public List<Tipovehiculo> getTipovehiculoList() {
return tipovehiculoList;
}
public void setTipovehiculoList(List<Tipovehiculo> tipovehiculoList) {
this.tipovehiculoList = tipovehiculoList;
}
public List<Tipovehiculo> getTipovehiculoFiltered() {
return tipovehiculoFiltered;
}
public void setTipovehiculoFiltered(List<Tipovehiculo> tipovehiculoFiltered) {
this.tipovehiculoFiltered = tipovehiculoFiltered;
}
public Tipovehiculo getTipovehiculo() {
return tipovehiculo;
}
public void setTipovehiculo(Tipovehiculo tipovehiculo) {
this.tipovehiculo = tipovehiculo;
}
public Tipovehiculo getTipovehiculoSelected() {
return tipovehiculoSelected;
}
public void setTipovehiculoSelected(Tipovehiculo tipovehiculoSelected) {
this.tipovehiculoSelected = tipovehiculoSelected;
}
public TipovehiculoDataModel getTipovehiculoDataModel() {
return tipovehiculoDataModel;
}
public void setTipovehiculoDataModel(TipovehiculoDataModel tipovehiculoDataModel) {
this.tipovehiculoDataModel = tipovehiculoDataModel;
}
/**
* Creates a new instance of TipovehiculoController
*/
@PostConstruct
public void init() {
try {
tipovehiculoList = new ArrayList<>();
tipovehiculoFiltered = new ArrayList<>();
String idtipovehiculo = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idtipovehiculo");
if (idtipovehiculo != null) {
Optional<Tipovehiculo> optional = tipovehiculoFacade.find("idtipovehiculo", idtipovehiculo);
if (optional.isPresent()) {
tipovehiculo = optional.get();
}
}else{
tipovehiculoList = tipovehiculoFacade.findAll();
tipovehiculoFiltered = tipovehiculoList;
tipovehiculoDataModel = new TipovehiculoDataModel(tipovehiculoList);
}
} catch (Exception e) {
JsfUtil.errorMessage("init() " + e.getLocalizedMessage());
}
}
public TipovehiculoController() {
}
@Override
public String prepareNew() {
tipovehiculo = new Tipovehiculo();
return "";
}
@Override
public void reset() {
RequestContext.getCurrentInstance().reset(":form:content");
prepareNew();
}
@Override
public String save() {
try {
Optional<Tipovehiculo> optional = tipovehiculoFacade.findById(tipovehiculo);
if (optional.isPresent()) {
JsfUtil.warningDialog(rf.getMensaje("info.message"), rf.getMensaje("warning.idexist"));
return null;
}
if (tipovehiculoFacade.save(tipovehiculo)) {
JsfUtil.successMessage(rf.getMensaje("info.save"));
} else {
JsfUtil.successMessage("save() " + tipovehiculoFacade.getException().toString());
}
} catch (Exception e) {
JsfUtil.errorMessage("save()" + e.getLocalizedMessage());
}
return "";
}
@Override
public String prepareEdit() {
return "/pages/tipovehiculo/view.xhtml";
}
@Override
public String edit() {
try {
tipovehiculoFacade.update(tipovehiculo);
JsfUtil.successMessage(rf.getMensaje("info.update"));
} catch (Exception e) {
JsfUtil.errorMessage("edit() " +e.getLocalizedMessage());
}
return "";
}
@Override
public String delete() {
try{
if (tipovehiculoFacade.delete("idtipovehiculo", tipovehiculo.getIdtipovehiculo())) {
JsfUtil.successMessage(rf.getMensaje("info.delete"));
tipovehiculo = new Tipovehiculo();
}
} catch (Exception e) {
JsfUtil.errorMessage("delete() " +e.getLocalizedMessage());
}
return "/pages/tipovehiculo/list.xhtml";
}
@Override
public String remove() {
try{
if (tipovehiculoFacade.delete("idtipovehiculo", tipovehiculo.getIdtipovehiculo())) {
JsfUtil.successMessage(rf.getMensaje("info.delete"));
}
} catch (Exception e) {
JsfUtil.errorMessage("remove() " +e.getLocalizedMessage());
}
return "";
}
@Override
public String deleteAll() {
try{
if (tipovehiculoFacade.deleteAll() != 0) {
JsfUtil.successMessage(rf.getMensaje("info.delete"));
}
} catch (Exception e) {
JsfUtil.errorMessage("deleteAll() " +e.getLocalizedMessage());
}
return "";
}
@Override
public String print() {
try {
List<Tipovehiculo> list = new ArrayList<>();
list.add(tipovehiculo);
String ruta = "/resources/reportes/tipovehiculo/tipovehiculo.jasper";
HashMap parameters = new HashMap();
// parameters.put("P_parametro", "valor");
printer.imprimir(list, ruta, parameters);
} catch (Exception ex) {
JsfUtil.errorMessage("imprimir() " + ex.getLocalizedMessage());
}
return null;
}
@Override
public String printAll() {
try {
List<Tipovehiculo> list = new ArrayList<>();
if (tipovehiculoFiltered.isEmpty()) {
list = tipovehiculoList;
} else {
list = tipovehiculoFiltered;
}
String ruta = "/resources/reportes/tipovehiculo/tipovehiculo.jasper";
HashMap parameters = new HashMap();
// parameters.put("P_parametro", "valor");
printer.imprimir(list, ruta, parameters);
} catch (Exception ex) {
JsfUtil.eErrorMessage("imprimir() " + ex.getLocalizedMessage());
}
return null;
}
}