Crearemos los controller para manejar los entitys: Rol y Usuario
Creamos el paquete controller
Crearemos dos Controller
No es necesario crear los métodos para guardar, eliminar, actualizar estos estan definidos e integrados entre jmoordb + jmoordbjsf.
Definir los atributos
private static final long serialVersionUID = 1L;
private Boolean writable = false;
//DataModel
private RolDataModel rolDataModel;
Integer page = 1;
Integer rowPage = 25;
List<Integer> pages = new ArrayList<>();
//Entity
Rol rol = new Rol();
Rol rolSelected;
Rol rolSearch = new Rol();
//List
List<Rol> rolList = new ArrayList<>();
//Repository
@Inject
RolRepository rolRepository;
//Services
@Inject
AutoincrementableServices autoincrementableServices;
@Inject
ErrorInfoServices errorServices;
@Inject
RolServices rolServices;
@Inject
JmoordbResourcesFiles rf;
@Inject
Printer printer;
Definir el método getPages()
public List<Integer> getPages() {
return rolRepository.listOfPage(rowPage);
}
Si necesita hacer operaciones antes o después de guardar puede usar
public Boolean beforeStart() {
return true;
}
public Boolean afterStart(Boolean started) {
return started;
}
public Boolean beforeSave() {
try {
//micodigo
return true;
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return false;
}
public Boolean afterSave(Boolean saved) {
try {
//micodigo
if(saved){
//Se guardo
}else{
// No se guardo
}
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return saved;
}
public Boolean beforeEdit() {
try {
//micodigo
return true;
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return false;
}
public Boolean afterEdit(Boolean edited) {
return true;
}
public Boolean beforeDelete() {
try {
//mi codigo
return true;
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
return false;
}
public Boolean afterDelete(Boolean deleted) {
return true;
}
public Boolean beforePrepareGoList() {
return true;
}
public Boolean afterPrepareGoList(Boolean golist) {
return golist;
}
public Boolean beforePrepareGoNew() {
return true;
} // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="Boolean afterPrepareGoNew(Boolean gonew)">
public Boolean afterPrepareGoNew(Boolean gonew) {
return gonew;
} // </editor-fold>
public Boolean beforePrepareNew() {
return true;
}
public Boolean beforeClear() {
return true;
}
En el init solo necesitamos definir la configuración del controller por
El parametro action: Se usa para indicar el modulo con que estemos trabajando por ejemplo
modulo solicitud docente usa el entity solicitud
modulo solicitud administrativo usa entity solicitud
ejemplo
@PostConstruct
public void init() {
try {
/*
configurar el ambiente del controller
*/
HashMap parameters = new HashMap();
Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
// parameters.put("P_EMPRESA", jmoordb_user.getEmpresa().getDescripcion());
JmoordbControllerEnvironment jmc = new JmoordbControllerEnvironment.Builder()
.withController(this)
.withRepository(rolRepository)
.withEntity(rol)
.withService(rolServices)
.withNameFieldOfPage("page")
.withNameFieldOfRowPage("rowPage")
.withTypeKey("primary")
.withSearchLowerCase(false)
.withPathReportDetail("/resources/reportes/rol/details.jasper")
.withPathReportAll("/resources/reportes/rol/all.jasper")
.withparameters(parameters)
.withResetInSave(true)
.withAction("rol")
.build();
start();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
Método move() que ejecutara la paginacion y nos permite realizar las búsquedas y desplazarnos entre las paginas.
@Override
public void move(Integer page) {
try {
this.page = page;
rolDataModel = new RolDataModel(rolList);
Document doc;
switch ((String) JmoordbContext.get("searchrol")) {
case "_init":
rolList = rolRepository.findPagination(page, rowPage);
break;
case "_autocomplete":
break;
case "idrol":
if (JmoordbContext.get("_fieldsearchrol") != null) {
rolSearch.setIdrol(JmoordbContext.get("_fieldsearchrol").toString());
doc = new Document("idrol",rolSearch.getIdrol());
rolList = rolRepository.findPagination(doc, page, rowPage, new Document("idrol", -1));
} else {
rolList = rolRepository.findPagination(page, rowPage);
}
break;
default:
rolList = rolRepository.findPagination(page, rowPage);
break;
}
rolDataModel = new RolDataModel(rolList);
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>