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?