Controller

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

  • Definimos

@Named
@ViewScoped
  • Inyectar el Facade

   @Inject
   TipovehiculoFacade tipovehiculoFacade;
  • Definir datamodel

Este sera asociado al componente <p:datatable en la pagina

   private TipovehiculoDataModel tipovehiculoDataModel;
  • Definir los List

    List<Tipovehiculo> tipovehiculoList;
    List<Tipovehiculo> tipovehiculoFiltered;
  • Definir los objetos

    Tipovehiculo tipovehiculo = new Tipovehiculo();
    Tipovehiculo tipovehiculoSelected = new Tipovehiculo();
  • Definir los métodos get/set

  • Método init

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());
        }

    }
  • Método reset

Limpia el contenido de los atributos en la pagina contenidos en la seccion content

  @Override
    public void reset() {

        RequestContext.getCurrentInstance().reset(":form:content");
        prepareNew();
    }
  • Método save()

Busca si existe el documento por su llave primaria y si no lo encuentra lo guarda en la colección.

  • Método prepareEdit()

Invoca la pagina view e invoca el init del formulario cargando el id.

  • Método edit()

Actualiza el documento en la colección.

  • Método delete()

Elimina el documento y regresa a la pagina list

  • Método remove()

Elimina el documento no realiza salto a otra pagina

  • Método deleteAll()

Elimina todos los documentos de la colección.

  • Método print()

Imprime el documento actual

  • Método printAll()

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;
    }

}

Last updated