Aquest document explica com fer un manteniment simple d’una entitat de base de dades, es a dir, una pàgina de llista i una de detall on es puguin fer les accions més habituals.
Nota: Aquest manteniment d’exemple es farà sobre la entitat document, copiant el manteniment de Zona del Fam que és un dels més simples.
Nota: Per entendre la estructura de les classes veure el document FWK_Estructura_Classes
FAM: FamZona (implements DibaEntity)
Exemple: TedibaDocument (implements DibaEntity)
Aquest manteniment es basarà en una entitat (classe java associada a una taula). Si aquesta entitat no està creada, veure el document FWK_Mapeig_BBDD per generar el model de dades en java.
FAM: ZonaSearchFilter (extends BaseSearchFilter)
Exemple: DocumentSearchFilter (extends BaseSearchFilter)
Crear una classe (còpia de ZonaSearchFilter) que especifiqui els camps que es poden filtrar.
Adaptació de la classe:
FAM: ZonaDAO (extends DefaultGenericListDao<FamZona, ZonaSearchFilter>)
Exemple: DocumentDAO (extends
DefaultGenericListDao<TedibaDocument, DocumentSearchFilter>)
Crear una classe (còpia de ZonaDAO) que sigui la encarregada de treballar amb la base de dades.
Adaptació de la classe:
FAM: ZonaService (extends DefaultGenericListService<FamZona, ZonaSearchFilter>)
Exemple: DocumentService (extends
DefaultGenericListService<TedibaDocument, DocumentSearchFilter>)
Crear una classe (còpia de ZonaService) que sigui la encarregada de tenir les accions en serveis, com ara operacions amb base de dades dintre de transaccions.
Adaptació de la classe:
FAM: ZonaListModule (extends AbstractGenericListBB< ZonaSearchFilter, FamZona>)
Exemple: DocumentListModule (extends
AbstractGenericListBB <DocumentSearchFilter, TedibaDocument>)
Crear una classe (còpia de ZonaListModule) que tindrà les funcionalitats relatives a llistes de manera que es pugui aprofitar en diferents llocs (Beans de manteniments, popups, autocompletar...).
Adaptació de la classe:
FAM: ZonaBB (extends AbstractGenericBB< ZonaSearchFilter, FamZona>)
Exemple: DocumentBB (extends
AbstractGenericBB <DocumentSearchFilter, TedibaDocument>)
Crear una classe (còpia de ZonaBB) que es farà servir per connectar amb les jsp.
Adaptació de la classe:
Cal afegir la definició del bb al faces-config-bb per que es pugui veure des de les jsp.
<managed-bean>
<managed-bean-name>zonaBB</managed-bean-name>
<managed-bean-class>cat.diba.jee.fam.view.bb.ZonaBB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
FAM: pZonaLlista.jspx
Exemple: pDocumentLlista.jspx
Pendent de especificar per dummies
FAM: pZonaDetall.jspx
Exemple: pDocumentDetall.jspx
Pendent de especificar per dummies
Afegir un punt d’entrada, per exemple al menú com al FamZona
<navigation-case>
<from-action>#{zonaBB.enter}</from-action>
<from-outcome>MENU</from-outcome>
<to-view-id>/jsp/pZonaLlista.jspx</to-view-id>
</navigation-case>
Definir la navegació entre la llista i el detall
<!-- ZONA -->
<navigation-rule>
<from-view-id>/jsp/pZonaLlista.jspx</from-view-id>
<navigation-case>
<from-outcome>DETALL</from-outcome>
<to-view-id>/jsp/pZonaDetall.jspx</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/jsp/pZonaDetall.jspx</from-view-id>
<navigation-case>
<from-outcome>LLISTA</from-outcome>
<to-view-id>/jsp/pZonaLlista.jspx</to-view-id>
</navigation-case>
</navigation-rule>
Pensar com afegir funcionalitats (referenciar a altres documents)
Enllaços:
[1] https://comunitatdstsc.diba.cat/wiki/FWK2012_-_Descarregar_projecte_existent
[2] https://comunitatdstsc.diba.cat/wiki/FAM_-_Crear_nou_projecte_tipus_FAM