FacultadController.java
Muestra un formulario donde se busca por atributo que no es la llave primaria.
Nota:
Tenga presente que los set/get se omitieron para no hacer muy largo el código en el libro.
Por favor incluya los métodos set/get de los elementos que se esta usando.
/*
* 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.avbravo.transporte.controller;
// <editor-fold defaultstate="collapsed" desc="imports">
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.jmoordbutils.printer.Printer;
import com.avbravo.commonejb.datamodel.FacultadDataModel;
import com.avbravo.commonejb.entity.Facultad;
import com.avbravo.commonejb.repository.FacultadRepository;
import com.avbravo.commonejb.producer.RevisionHistoryCommonejbRepository;
import com.avbravo.commonejb.producer.AutoincrementableCommonejbServices;
import com.avbravo.commonejb.services.FacultadServices;
import com.avbravo.commonejb.producer.LookupCommonejbServices;
import com.avbravo.jmoordb.interfaces.IController;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordb.services.UserInfoServices;
import com.avbravo.transporte.util.ResourcesFiles;
import com.avbravo.transporte.util.LookupServices;
import com.avbravo.transporteejb.producer.ErrorInfoTransporteejbServices;
import java.util.ArrayList;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.faces.context.FacesContext;
import org.bson.Document;
import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;
// </editor-fold>
/**
*
* @authoravbravo
*/
@Named
@ViewScoped
public class FacultadController implements Serializable, IController {
// <editor-fold defaultstate="collapsed" desc="fields">
private static final long serialVersionUID = 1L;
// @Inject
//private transient ExternalContext externalContext;
private Boolean writable = false;
//DataModel
private FacultadDataModel facultadDataModel;
private String _old = "";
Integer page = 1;
Integer rowPage = 25;
List<Integer> pages = new ArrayList<>();
//
//Entity
Facultad facultad;
Facultad facultadSelected;
//List
List<Facultad> facultadList = new ArrayList<>();
List<Facultad> facultadFiltered = new ArrayList<>();
//Repository
@Inject
FacultadRepository facultadRepository;
@Inject
RevisionHistoryCommonejbRepository revisionHistoryCommonejbRepository;
//Services
//Atributos para busquedas
@Inject
AutoincrementableCommonejbServices autoincrementableCommonejbServices;
@Inject
ErrorInfoTransporteejbServices errorServices;
@Inject
RevisionHistoryServices revisionHistoryServices;
@Inject
UserInfoServices userInfoServices;
@Inject
FacultadServices facultadServices;
@Inject
ResourcesFiles rf;
@Inject
Printer printer;
@Inject
LoginController loginController;
@Inject
LookupServices lookupServices;
//List of Relations
//Repository of Relations
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="getter/setter">
public List<Integer> getPages() {
return facultadRepository.listOfPage(rowPage);
}
//AGREGUE AQUI LOS SET/GET
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="constructor">
public FacultadController() {
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="preRenderView()">
@Override
public String preRenderView(String action) {
//acciones al llamar el formulario despues del init
return "";
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="init">
@PostConstruct
public void init() {
try {
String action = loginController.get("facultad");
String id = loginController.get("idfacultad");
String pageSession = loginController.get("pagefacultad");
//Search
if (loginController.get("searchfacultad") == null || loginController.get("searchfacultad").equals("")) {
loginController.put("searchfacultad", "_init");
}
writable = false;
facultadList = new ArrayList<>();
facultadFiltered = new ArrayList<>();
facultad = new Facultad();
facultadSelected = new Facultad();
facultadDataModel = new FacultadDataModel(facultadList);
if (pageSession != null) {
page = Integer.parseInt(pageSession);
}
Integer c = facultadRepository.sizeOfPage(rowPage);
page = page > c ? c : page;
if (action != null) {
switch (action) {
case "gonew":
facultad = new Facultad();
facultadSelected = facultad;
writable = false;
break;
case "view":
if (id != null) {
Optional<Facultad> optional = facultadRepository.find("idfacultad", Integer.parseInt(id));
if (optional.isPresent()) {
facultad = optional.get();
facultadSelected = optional.get();
_old = facultad.getDescripcion();
writable = true;
}
}
break;
case "golist":
move();
break;
}
} else {
move();
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="reset">
@Override
public void reset() {
RequestContext.getCurrentInstance().reset(":form:content");
prepare("new", facultad);
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare(String action, Object... item)">
public String prepare(String action, Facultad item) {
String url = "";
try {
loginController.put("pagefacultad", page.toString());
loginController.put("facultad", action);
switch (action) {
case "new":
facultad = new Facultad();
facultadSelected = new Facultad();
writable = false;
break;
case "view":
facultadSelected = item;
facultad = facultadSelected;
loginController.put("idfacultad", facultad.getIdfacultad().toString());
url = "/pages/facultad/view.xhtml";
break;
case "golist":
url = "/pages/facultad/list.xhtml";
break;
case "gonew":
url = "/pages/facultad/new.xhtml";
break;
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return url;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="showAll">
@Override
public String showAll() {
try {
facultadList = new ArrayList<>();
facultadFiltered = new ArrayList<>();
facultadList = facultadRepository.findAll();
facultadFiltered = facultadList;
facultadDataModel = new FacultadDataModel(facultadList);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="isNew">
@Override
public String isNew() {
try {
writable = true;
if (JsfUtil.isVacio(facultad.getDescripcion())) {
writable = false;
return "";
}
facultad.setDescripcion(facultad.getDescripcion().toUpperCase());
List<Facultad> list = facultadRepository.findBy("descripcion", facultad.getDescripcion());
if (!list.isEmpty()) {
writable = false;
JsfUtil.warningMessage(rf.getAppMessage("warning.idexist"));
return "";
} else {
String idsecond = facultad.getDescripcion();
facultad = new Facultad();
facultad.setDescripcion(idsecond);
facultadSelected = new Facultad();
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="save">
@Override
public String save() {
try {
facultad.setDescripcion(facultad.getDescripcion().toUpperCase());
List<Facultad> list = facultadRepository.findBy("descripcion", facultad.getDescripcion());
if (!list.isEmpty()) {
writable = false;
JsfUtil.warningMessage(rf.getAppMessage("warning.idexist"));
return "";
}
Integer identity = autoincrementableCommonejbServices.getContador("facultad");
facultad.setIdfacultad(identity);
facultad.setUserInfo(userInfoServices.generateListUserinfo(loginController.getUsername(), "create"));
if (facultadRepository.save(facultad)) {
revisionHistoryCommonejbRepository.save(revisionHistoryServices.getRevisionHistory(facultad.getIdfacultad().toString(), loginController.getUsername(),
"create", "facultad", facultadRepository.toDocument(facultad).toString()));
JsfUtil.successMessage(rf.getAppMessage("info.save"));
reset();
} else {
JsfUtil.successMessage("save() " + facultadRepository.getException().toString());
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="edit">
@Override
public String edit() {
try {
if (!facultad.getDescripcion().equals(_old)) {
List<Facultad> list = facultadRepository.findBy("descripcion", facultad.getDescripcion());
if (!list.isEmpty()) {
writable = false;
JsfUtil.warningMessage(rf.getAppMessage("warning.noeditableproduceduplicado"));
return "";
}
}
facultad.getUserInfo().add(userInfoServices.generateUserinfo(loginController.getUsername(), "update"));
revisionHistoryCommonejbRepository.save(revisionHistoryServices.getRevisionHistory(facultad.getIdfacultad().toString(), loginController.getUsername(),
"update", "facultad", facultadRepository.toDocument(facultad).toString()));
facultadRepository.update(facultad);
JsfUtil.successMessage(rf.getAppMessage("info.update"));
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="delete(Object item, Boolean deleteonviewpage)">
@Override
public String delete(Object item, Boolean deleteonviewpage) {
String path = "";
try {
facultad = (Facultad) item;
if (!facultadServices.isDeleted(facultad)) {
JsfUtil.warningDialog("Delete", rf.getAppMessage("waring.integridadreferencialnopermitida"));
return "";
}
facultadSelected = facultad;
if (facultadRepository.delete("idfacultad", facultad.getIdfacultad())) {
revisionHistoryCommonejbRepository.save(revisionHistoryServices.getRevisionHistory(facultad.getIdfacultad().toString(), loginController.getUsername(), "delete", "facultad", facultadRepository.toDocument(facultad).toString()));
JsfUtil.successMessage(rf.getAppMessage("info.delete"));
if (!deleteonviewpage) {
facultadList.remove(facultad);
facultadFiltered = facultadList;
facultadDataModel = new FacultadDataModel(facultadList);
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("pagefacultad", page.toString());
} else {
facultad = new Facultad();
facultadSelected = new Facultad();
writable = false;
}
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
// path = deleteonviewpage ? "/pages/facultad/list.xhtml" : "";
path = "";
return path;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="deleteAll">
@Override
public String deleteAll() {
if (facultadRepository.deleteAll() != 0) {
JsfUtil.successMessage(rf.getAppMessage("info.delete"));
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="print">
@Override
public String print() {
try {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("pagefacultad", page.toString());
List<Facultad> list = new ArrayList<>();
list.add(facultad);
String ruta = "/resources/reportes/facultad/details.jasper";
HashMap parameters = new HashMap();
// parameters.put("P_EMPRESA", loginController.getUsuario().getEmpresa().getDescripcion());
printer.imprimir(list, ruta, parameters);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printAll">
@Override
public String printAll() {
try {
List<Facultad> list = new ArrayList<>();
list = facultadRepository.findAll(new Document("idfacultad", 1));
String ruta = "/resources/reportes/facultad/all.jasper";
HashMap parameters = new HashMap();
// parameters.put("P_EMPRESA", loginController.getUsuario().getEmpresa().getDescripcion());
printer.imprimir(list, ruta, parameters);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return null;
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="handleSelect">
public void handleSelect(SelectEvent event) {
try {
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="handleAutocompleteOfListXhtml(SelectEvent event)">
public void handleAutocompleteOfListXhtml(SelectEvent event) {
try {
facultadList.removeAll(facultadList);
facultadList.add(facultadSelected);
facultadFiltered = facultadList;
facultadDataModel = new FacultadDataModel(facultadList);
loginController.put("searchfacultad", "idfacultad");
lookupServices.setIdfacultad(facultadSelected.getIdfacultad());
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="last">
@Override
public String last() {
try {
page = facultadRepository.sizeOfPage(rowPage);
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="first">
@Override
public String first() {
try {
page = 1;
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="next">
@Override
public String next() {
try {
if (page < (facultadRepository.sizeOfPage(rowPage))) {
page++;
}
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="back">
@Override
public String back() {
try {
if (page > 1) {
page--;
}
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="skip(Integer page)">
@Override
public String skip(Integer page) {
try {
this.page = page;
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="move">
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchfacultad")) {
case "_init":
case "_autocomplete":
facultadList = facultadRepository.findPagination(page, rowPage);
break;
case "idfacultad":
if (lookupServices.getIdfacultad() != null) {
doc = new Document("idfacultad", lookupServices.getIdfacultad());
facultadList = facultadRepository.findBy(doc);
} else {
facultadList = facultadRepository.findPagination(page, rowPage);
}
break;
case "descripcion":
facultadList = facultadRepository.findRegexInTextPagination("descripcion", lookupServices.getDescripcion(), true, page, rowPage, new Document("descripcion", -1));
break;
default:
facultadList = facultadRepository.findPagination(page, rowPage);
break;
}
facultadFiltered = facultadList;
facultadDataModel = new FacultadDataModel(facultadList);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="facultad()">
@Override
public String clear() {
try {
loginController.put("searchfacultad", "_init");
page = 1;
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="searchBy(String string)">
@Override
public String searchBy(String string) {
try {
loginController.put("searchfacultad", string);
writable = true;
move();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
}
return "";
}// </editor-fold>
}
Last updated
Was this helpful?