Controller
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
Descripion
action
modulo de usuario
usuario
modulo rol
rol
modulo solicitud docente usa el entity solicitud
solicituddocente
modulo solicitud administrativo usa entity solicitud
solicitudadministrativo
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>
Last updated
Was this helpful?