/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/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/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/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/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/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/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/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"; |
} |