Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1801 → Rev 1802

/trunk/src/org/tela_botanica/client/i18n/Constantes.properties
207,6 → 207,12
titreMembre = Membres du personnel
nbrePersonnelCollection = Personnel des collections
 
# Structure : collections
structureInfoCollection = Collections liées
structureIndicationCollection = les 10 premières
structureIndicationLienCollection = Voir toutes les collections liées à la structure dans l'interface de consultation
structureLienCollection = Lien vers la fiche
 
# Structure : conservation
structureInfoConservation = Conservation
titreLocal = Local
/trunk/src/org/tela_botanica/client/i18n/Constantes.java
194,6 → 194,12
String tpsTravail();
String specialite();
String boolContact();
// Structure : collection
String structureInfoCollection();
String structureIndicationCollection();
String structureIndicationLienCollection();
String structureLienCollection();
 
// Structure : conservation
String structureInfoConservation();
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java
5,9 → 5,13
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.configuration.Configuration;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.collection.CollectionAStructure;
import org.tela_botanica.client.modeles.collection.CollectionAStructureListe;
import org.tela_botanica.client.modeles.structure.Structure;
import org.tela_botanica.client.modeles.structure.StructureAPersonne;
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe;
14,9 → 18,9
import org.tela_botanica.client.modeles.structure.StructureConservation;
import org.tela_botanica.client.modeles.structure.StructureValorisation;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.vues.DetailVue;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.util.Params;
27,7 → 31,6
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
 
public class StructureDetailVue extends DetailVue implements Rafraichissable {
 
41,6 → 44,9
private String valorisationTpl = null;
private String typeTraitementConservationTpl = null;
private String rechercheValorisationTpl = null;
private String collectionTpl = null;
private String ligneCollectionTpl = null;
private String tableauCollectionTpl = null;
private Structure structure = null;
private boolean structureChargementOk = false;
48,6 → 54,8
private boolean personnelChargementOk = false;
private StructureValorisation valorisation = null;
private StructureConservation conservation = null;
private CollectionAStructureListe collection = null;
private boolean collectionChargementOk = false;
private ContentPanel panneauPrincipal = null;
private Html entete = null;
54,6 → 62,7
private TabPanel onglets = null;
private TabItem identificationOnglet = null;
private TabItem personnelOnglet = null;
private TabItem collectionOnglet = null;
private TabItem conservationOnglet = null;
private TabItem valorisationOnglet = null;
89,6 → 98,11
personnelOnglet.setScrollMode(Scroll.AUTO);
onglets.add(personnelOnglet);
collectionOnglet = new TabItem(i18nC.structureInfoCollection());
collectionOnglet.setLayout(new AnchorLayout());
collectionOnglet.setScrollMode(Scroll.AUTO);
onglets.add(collectionOnglet);
conservationOnglet = new TabItem(i18nC.structureInfoConservation());
conservationOnglet.setLayout(new AnchorLayout());
conservationOnglet.setScrollMode(Scroll.AUTO);
129,6 → 143,9
if (valorisation != null) {
afficherValorisation();
}
if (collection != null) {
afficherCollection();
}
}
layout();
}
431,6 → 448,58
return cHtml;
}
private void afficherCollection() {
Params collectionParams = new Params();
collectionParams.set("i18n_titre_collection", i18nC.structureInfoCollection());
collectionParams.set("i18n_indication_collection", i18nC.structureIndicationCollection());
collectionParams.set("i18n_indication_lien_collection", i18nC.structureIndicationLienCollection());
collectionParams.set("css_indication_titre_petit", ComposantClass.INDICATION_TITRE_PETIT);
String guidTpl = ((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("consultationCollectionsLieesStructures");
String guid = guidTpl.replace("{str_id}", structure.getId());
collectionParams.set("guid_structure", guid);
String tableauCollectionHtml = "";
if (collection.size() > 0) {
tableauCollectionHtml = construireTableauCollection();
}
collectionParams.set("tableau_collection", tableauCollectionHtml);
afficherOnglet(collectionTpl, collectionParams, collectionOnglet);
}
private String construireTableauCollection() {
Params contenuParams = new Params();
String lignesCollection = "";
contenuParams.set("i18n_nom_collection", i18nC.nomCollection());
contenuParams.set("i18n_id_collection", i18nC.id());
contenuParams.set("i18n_lien_collection", i18nC.structureLienCollection());
contenuParams.set("css_largeur_colonne_id", ComposantClass.LARGEUR_COLONNE_ID);
String guidTpl = ((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("consultationCollections");
Iterator<String> it = collection.keySet().iterator();
while (it.hasNext()) {
CollectionAStructure collectionCourante = collection.get(it.next());
Params ligneParams = new Params();
String guidCollection = guidTpl.replace("{col_id}", collectionCourante.getIdCollection());
ligneParams.set("guid_structure", guidCollection);
ligneParams.set("id_collection", collectionCourante.getIdCollection());
ligneParams.set("nom_collection", collectionCourante.getNom());
ligneParams.set("lien_collection", guidCollection);
lignesCollection += Format.substitute(ligneCollectionTpl, ligneParams);
}
contenuParams.set("lignes", lignesCollection);
String cHtml = Format.substitute(tableauCollectionTpl, contenuParams);
return cHtml;
}
private void initialiserTousLesTpl() {
initialiserEnteteTpl();
initialiserIdentificationTpl();
442,6 → 511,9
initialiserTypeTraitementConservationTpl();
initialiserValorisationTpl();
initialiserRechercheValorisationTpl();
initialiserCollectionTpl();
initialiserTableauCollectionTpl();
initialiserLigneCollectionTpl();
}
private void initialiserEnteteTpl() {
554,7 → 626,7
" <span class='{css_label}'>{i18n_conservation_en_commun} :</span> {conservation_en_commun} {collection_autre}<br />"+
" <span class='{css_label}'>{i18n_acces_controle} :</span> {acces_controle}<br />"+
" </div>"+
" <hr class='{css_clear}'/>"+
" <hr class='{css_clear}'Window/>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_operation}</h2>"+
" <span class='{css_label}'>{i18n_restauration} :</span> {restauration} {restauration_operation}<br />"+
614,8 → 686,43
"<span class='{css_indentation} {css_label}'>{i18n_recherche_type} :</span> {recherche_type}<br />";
}
private void initialiserCollectionTpl() {
collectionTpl =
"<div class='{css_corps}'>"+
" <h2>{i18n_titre_collection} (<span class='{css_label} {css_indication_titre_petit}'>{i18n_indication_collection}</span>)</h2>"+
" {tableau_collection}"+
" <p> "+
" <a href=\"{guid_structure}\" class=\"{css_indication_titre_petit}\" target=\"_blank\">{i18n_indication_lien_collection}</a>"+
" </p>"+
"</div>";
}
private void initialiserTableauCollectionTpl() {
tableauCollectionTpl =
"<table>"+
" <thead>"+
" <tr>" +
" <th class=\"{css_largeur_colonne_id}\">{i18n_id_collection}</th>" +
" <th>{i18n_nom_collection}</th>" +
" <th>{i18n_lien_collection}</th>" +
" </tr>"+
" </thead>"+
" <tbody>"+
" {lignes}"+
" </tbody>"+
"</table>";
}
private void initialiserLigneCollectionTpl() {
ligneCollectionTpl =
"<tr>"+
" <td>{id_collection}</td>"+
" <td>{nom_collection}</td>"+
" <td><a href=\"{lien_collection}\" target=\"_blank\">{lien_collection}</a></td>"+
"</tr>";
}
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Structure) {
structure = (Structure) nouvellesDonnees;
structureChargementOk = true;
627,6 → 734,9
if (info.getType().equals("liste_structure_a_personne")) {
allouerPersonnelAStructure((StructureAPersonneListe) info.getDonnee(0));
personnelChargementOk = true;
} else if (info.getType().equals("liste_collection_a_structure")) {
allouerCollectionAStructure((CollectionAStructureListe) info.getDonnee(0));
collectionChargementOk = true;
} else if (info.getType().equals("ontologie_chargee")) {
ontologieChargementOk = true;
}
638,6 → 748,10
}
}
private void allouerCollectionAStructure(CollectionAStructureListe donnee) {
collection = donnee;
}
 
protected void allouerPersonnelAStructure(StructureAPersonneListe personnel) {
structure.setPersonnel(personnel);
}
/trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java
50,12 → 50,12
Information info = (Information) nouvellesDonnees;
if (info.getType().equals("liste_structure_a_personne")) {
panneauInstitutionDetail.rafraichir(nouvellesDonnees);
} else if(info.getType().equals("structure_ajoutee")) {
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
} else if (info.getType().equals("liste_collection_a_structure")) {
panneauInstitutionDetail.rafraichir(nouvellesDonnees);
} else {
if(info.getType().equals("structure_ajoutee")) {
mediateur.clicMenu(MenuApplicationId.STRUCTURE);
} else {
panneauInstitutionListe.rafraichir(nouvellesDonnees);
}
panneauInstitutionListe.rafraichir(nouvellesDonnees);
}
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
/trunk/src/org/tela_botanica/client/Modele.java
16,6 → 16,7
import org.tela_botanica.client.modeles.collection.CollectionAPersonneAsyncDao;
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
import org.tela_botanica.client.modeles.collection.CollectionAPublicationAsyncDao;
import org.tela_botanica.client.modeles.collection.CollectionAStructureAsyncDao;
import org.tela_botanica.client.modeles.collection.CollectionAsyncDao;
import org.tela_botanica.client.modeles.commentaire.Commentaire;
import org.tela_botanica.client.modeles.commentaire.CommentaireAsyncDao;
210,6 → 211,12
cDao.supprimer(identifiantsCollectionSepareParVirgule);
}
public void selectionnerCollectionAStructure(Rafraichissable vueARafraichir, String structureId, int start, int nbElements,
Integer seqId) {
CollectionAStructureAsyncDao cDao = new CollectionAStructureAsyncDao(vueARafraichir);
cDao.selectionner(structureId, start, nbElements, seqId);
}
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation COLLECTION A PERSONNE
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAStructureAsyncDao.java
New file
0,0 → 1,78
package org.tela_botanica.client.modeles.collection;
 
import java.util.HashMap;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.http.JsonRestRequestBuilder;
import org.tela_botanica.client.http.JsonRestRequestCallback;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.synchronisation.Reponse;
import org.tela_botanica.client.util.UtilDAO;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
 
public class CollectionAStructureAsyncDao {
private static final String SERVICE_NOM = "CoelCollection";
public static final String PAR_STRUCTURE = "ParIdStructure";
 
private Rafraichissable vueARafraichir = null;
 
public CollectionAStructureAsyncDao(Rafraichissable vueARafraichirCourrante) {
if (Mediateur.DEBUG) System.out.println("|| CollectionAStructureAsyncDao > vueARafraichir = "+vueARafraichirCourrante.getClass().toString());
vueARafraichir = vueARafraichirCourrante;
}
public void selectionner(final String structureId, final int start, final int nbElements, final Integer seqId) {
String[] parametres = {structureId};
HashMap<String, String> restrictions = new HashMap<String, String>();
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
/** DEFINITION DU TUPLE DE DEPART **/
restrictions.put("start", String.valueOf(start*nbElements));
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM+'/'+PAR_STRUCTURE, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
 
Information info = new Information("liste_collection_a_structure");
 
if (responseValue != null) {
final JSONArray reponse = responseValue.isArray();
// Si la réponse est un tableau, alors c'est une liste de collections qui a été retournée
if (responseValue.isArray() != null) {
// Transformation du tableau JSON réponse en CollectionAStructureListe
CollectionAStructureListe collections = new CollectionAStructureListe(reponse);
info.setDonnee(0, collections);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAStructureAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAStructureAsyncDao > Liste non paginée, retour au sequenceur");
vueARafraichir.rafraichir(info);
}
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
} else if (responseValue.isArray() != null) {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
}
}
}
});
}
}
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAStructure.java
New file
0,0 → 1,35
package org.tela_botanica.client.modeles.collection;
 
import org.tela_botanica.client.modeles.aDonnee;
 
import com.google.gwt.json.client.JSONObject;
 
public class CollectionAStructure extends aDonnee {
private static final long serialVersionUID = -8891776931124681678L;
public static final String PREFIXE = "cc";
public static String[] champsObligatoires = {"cc_id_collection","cc_nom"};
 
public CollectionAStructure(JSONObject collectionAStructure){
initialiserModele(collectionAStructure);
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
 
@Override
protected String[] getChampsObligatoires() {
return champsObligatoires;
}
 
public String getNom() {
return renvoyerValeurCorrecte("nom");
}
public String getIdCollection() {
return renvoyerValeurCorrecte("id_collection");
}
}
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAStructureListe.java
New file
0,0 → 1,33
package org.tela_botanica.client.modeles.collection;
 
import org.tela_botanica.client.modeles.aDonneeListe;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.user.client.Window;
 
public class CollectionAStructureListe extends aDonneeListe<CollectionAStructure> {
 
private static final long serialVersionUID = -660181428725095350L;
public CollectionAStructureListe() {
super();
}
public CollectionAStructureListe(int taille) {
super(taille);
}
public CollectionAStructureListe(JSONArray collectionAStructureListe) {
super(collectionAStructureListe.size()) ;
final int taillemax = collectionAStructureListe.size();
for (int i = 0; i < taillemax; i++) {
JSONObject collectionAStructureCourante = collectionAStructureListe.get(i).isObject() ;
if (collectionAStructureCourante != null) {
CollectionAStructure collectionAStructure = new CollectionAStructure(collectionAStructureCourante);
this.put(collectionAStructure.getIdCollection(), collectionAStructure);
}
}
}
}
/trunk/src/org/tela_botanica/client/Mediateur.java
550,6 → 550,7
panneauCentre.getContenu().rafraichir(structure);
if (structure != null && structure.getPersonnel() == null) {
selectionnerStructureAPersonne(panneauCentre.getContenu(), structure.getId(), StructureAPersonne.ROLE_EQUIPE, null);
selectionnerCollectionAStructure(panneauCentre.getContenu(), structure.getId());
}
}
 
672,6 → 673,19
modele.selectionnerStructureAvecPaginationProgressive(vueARafraichir, structureId, nom, formatRetour, start, nbElements, seqId, searchCity);
}
 
private void selectionnerCollectionAStructure(Rafraichissable vueARafraichir, String structureId) {
if (Mediateur.DEBUG) {
System.out.println("MEDIATEUR - selectionner Collection à structure");
}
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollectionAStructure(vueARafraichir, structureId, 0, 10, seqId);
}
/** AJOUTER **/
public void ajouterStructure(Rafraichissable vueARafraichir, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
modele.ajouterStructure(vueARafraichir, structure, conservation, valorisation);
/trunk/src/org/tela_botanica/client/Coel.java
36,7 → 36,7
}
}
private String buildStackTrace(Throwable t, String log) {
/*private String buildStackTrace(Throwable t, String log) {
if (t != null) {
log += t.getClass().toString();
log += t.getMessage();
59,11 → 59,11
}
}
return log;
}
}*/
 
public static native void LogVersFirebug(String s) /*-{
public static native void LogVersFirebug(Object o) /*-{
if (!!($wnd.console && $wnd.console.log)) {
console.log(s);
console.log(o);
}
}-*/;
}
/trunk/src/org/tela_botanica/client/configuration/Configuration.java
93,6 → 93,8
urls.put("remarques", configuration.get("remarquesUrl"));
urls.put("bogue", configuration.get("bogueUrl"));
urls.put("commentaire", configuration.get("commentaireUrl"));
urls.put("consultationCollectionsLieesStructures", configuration.get("consultationCollectionsLieesStructuresUrl"));
urls.put("consultationCollections", configuration.get("consultationCollectionsUrl"));
}
/**
/trunk/src/org/tela_botanica/client/ComposantClass.java
25,4 → 25,6
public static final String OBLIGATOIRE = "coel-obligatoire";
public static final String OBLIGATOIRE_OK = "coel-obligatoire-ok";
public static final String LIEN_EXTERNE = "coel-lien-externe";
public static final String LARGEUR_COLONNE_ID = "coel-largeur-colonne-id";
public static final String INDICATION_TITRE_PETIT = "coel-indication-titre-petit";
}