Codigo Completo
PaisController.java
/*
* 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.practica.controller;
import com.avbravo.jmoordb.configuration.JmoordbContext;
import com.avbravo.jmoordb.mongodb.history.repository.RevisionHistoryRepository;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Pais;
import com.avbravo.practicaejb.repository.PaisRepository;
import com.avbravo.practicaejb.services.PaisServices;
import java.io.Serializable;
import java.util.ArrayList;
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 lombok.Getter;
import lombok.Setter;
import org.bson.Document;
import org.primefaces.event.SelectEvent;
/**
*
* @author avbravo
*/
@Named
@ViewScoped
@Getter
@Setter
public class PaisController implements Serializable {
private static final long serialVersionUID = 1L;
Pais pais = new Pais();
private Boolean writable = false;
//--paginacion
Integer page = 1;
Integer rowPage = 25;
List<Integer> pages = new ArrayList<>();
Pais paisSelected = new Pais();
Pais paisSearch = new Pais();
@Inject
PaisRepository paisRepository;
@Inject
RevisionHistoryRepository repositoryRevisionHistory;
@Inject
RevisionHistoryServices revisionHistoryServices;
@Inject
PaisServices paisServices;
List<Pais> paisList = new ArrayList<>();
public List<Integer> getPages() {
return paisRepository.listOfPage(rowPage);
}
@PostConstruct
public void init() {
try {
writable = true;
repositoryRevisionHistory.setDatabase("practica_history");
//obtener la pagina de la sesion
String pageSession ="1";
if(JmoordbContext.get("pagepais")== null ||JmoordbContext.get("pagepais").equals("") ){
}else {
System.out.println("GET()---> "+JmoordbContext.get("pagepais"));
page = (Integer) JmoordbContext.get("pagepais");
}
Integer c = paisRepository.sizeOfPage(rowPage);
page = page > c ? c : page;
//El action del entity
String action = "_init";
if (JmoordbContext.get("pais") != null) {
action = (String) JmoordbContext.get("pais");
}
//validar el action
if (action != null) {
switch (action) {
case "gonew":
pais = new Pais();
paisSelected = pais;
writable = false;
break;
case "view":
if (JmoordbContext.get("_fieldsearchpais") != null) {
pais = (Pais) JmoordbContext.get("_fieldsearchpais");
}
break;
case "golist":
move(page);
break;
case "_init":
move(page);
break;
}
} else {
move(page);
}
} catch (Exception e) {
JsfUtil.errorDialog("init()", e.getLocalizedMessage());
System.out.println("---->(Error): "+e.getLocalizedMessage());
}
}
public String save() {
try {
pais.setIdpais(pais.getIdpais().toLowerCase());
Optional<Pais> optional = paisRepository.findById(pais);
if (optional.isPresent()) {
JsfUtil.warningMessage("Existe una pais con esa idpais");
return null;
}
pais = paisRepository.addUserInfoForSaveMethod(pais, "myusername", "create");
// pais.setUserInfo(paisRepository.generateListUserinfo("myusername", "create"));
if (paisRepository.save(pais, false)) {
JsfUtil.successMessage("Guardado");
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(pais.getIdpais(),
"myusername",
"create", "pais", paisRepository.toDocument(pais).toString()));
pais = new Pais();
} else {
JsfUtil.errorDialog("no se guardo()", paisRepository.getException().toString());
}
} catch (Exception e) {
JsfUtil.errorDialog("save()", e.getLocalizedMessage());
}
return "";
}
public String delete(Object item, Boolean deleteonviewpage) {
String path = "";
try {
pais = (Pais) item;
if (paisRepository.delete("idpais", pais.getIdpais())) {
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(pais.getIdpais(),
"myusername",
"delete", "pais", paisRepository.toDocument(pais).toString()));
JsfUtil.successMessage("Se elimino la pais");
writable = false;
if (!deleteonviewpage) {
paisList.remove(pais);
} else {
pais = new Pais();
}
}
} catch (Exception e) {
JsfUtil.errorDialog("delete()", e.getLocalizedMessage());
}
return "";
}// </editor-fold>
public String edit() {
try {
repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(pais.getIdpais(),
"myusername",
"update", "pais", paisRepository.toDocument(pais).toString()));
pais = paisRepository.addUserInfoForEditMethod(pais, "myusername", "update");
paisRepository.update(pais);
JsfUtil.successMessage("Se actualizo el documento");
} catch (Exception e) {
JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
}
return "";
}// </editor-fold>
// public String prepare(String action, Pais pais) {
// try {
// JmoordbContext.put("searchpais", pais);
// JmoordbContext.put("searchpais", action);
//
// } catch (Exception e) {
// JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
// }
// return "view";
//
// }
public void handleAutocompleteOfListXhtml(SelectEvent event) {
try {
paisList.removeAll(paisList);
paisList.add(paisSearch);
JmoordbContext.put("_fieldsearchpais", paisSearch.getIdpais());
JmoordbContext.put("searchpais", "idpais");
} catch (Exception e) {
JsfUtil.errorDialog("handleAutocompleteOfListXhtml()", e.getLocalizedMessage());
}
}
public String showAll() {
paisList = paisRepository.findAll();
return "";
}
public void move(Integer page) {
try {
String search = "_init";
if (JmoordbContext.get("searchpais") != null) {
search = (String) JmoordbContext.get("searchpais");
}
Document doc;
switch (search) {
case "_init":
case "_autocomplete":
paisList = paisRepository.findPagination(page, rowPage);
break;
case "idpais":
if (JmoordbContext.get("_fieldsearchpais") != null) {
String idpais = (String) JmoordbContext.get("_fieldsearchpais");
doc = new Document("idpais", idpais);
paisList = paisRepository.findPagination(doc, page, rowPage, new Document("idpais", -1));
} else {
paisList = paisRepository.findPagination(page, rowPage);
}
break;
default:
paisList = paisRepository.findPagination(page, rowPage);
break;
}
// paisDataModel = new PaisDataModel(paisList);
} catch (Exception e) {
JsfUtil.errorDialog("move()", e.getLocalizedMessage());
}
}
public String searchBy(String field, Object value) {
try {
JmoordbContext.put("searchpais", field);
JmoordbContext.put("_fieldsearchpais", value);
} catch (Exception e) {
JsfUtil.errorDialog("searchBy", e.getLocalizedMessage());
}
return "";
}
//invoca al formulario list
public String prepareGoList() {
JmoordbContext.put("pais", "golist");
return "/pages/pais/list.xhtml";
}
//invoca el formulario new
public String prepareGoNew() {
JmoordbContext.put("pais", "gonew");
return "/pages/pais/new.xhtml";
}
// se invoca en la misma pagina
public String prepareNew() {
try {
pais = new Pais();
paisSelected = new Pais();
writable = false;
} catch (Exception e) {
JsfUtil.errorDialog("prepareNew() ", e.getLocalizedMessage());
}
return "";
}
public String prepareView(Pais item) {
try {
paisSelected = item;
pais = paisSelected;
JmoordbContext.put("pagepais",page);
JmoordbContext.put("pais", "view");
JmoordbContext.put("_fieldsearchpais", pais);
} catch (Exception e) {
JsfUtil.errorDialog("prepareView() ", e.getLocalizedMessage());
}
return "/pages/pais/view.xhtml";
}
public String next() {
try {
if (page < (paisRepository.sizeOfPage(rowPage))) {
page++;
}
move(page);
} catch (Exception e) {
JsfUtil.errorDialog("next() ", e.getLocalizedMessage());
}
return "";
}
public String last() {
try {
page = paisRepository.sizeOfPage(rowPage);
move(rowPage);
} catch (Exception e) {
JsfUtil.errorDialog("last()", e.getLocalizedMessage());
}
return "";
}
public String first() {
try {
page = 1;
move(page);
} catch (Exception e) {
JsfUtil.errorDialog("first() ", e.getLocalizedMessage());
}
return "";
}
public String back() {
try {
if (page > 1) {
page--;
}
move(page);
} catch (Exception e) {
JsfUtil.errorDialog("back()", e.getLocalizedMessage());
}
return "";
}
public String skip(Integer page) {
try {
this.page = page;
move(page);
} catch (Exception e) {
JsfUtil.errorDialog("skip", e.getLocalizedMessage());
}
return "";
}
public String printAll(){
return "";
}
public String clear() {
try {
JmoordbContext.put("searchpais","_init");
page = 1;
move(page);
} catch (Exception e) {
JsfUtil.errorDialog("clear()", e.getLocalizedMessage());
}
return "";
}
}
Last updated
Was this helpful?