Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1467 → Rev 1468

/trunk/src/org/tela_botanica/client/Mediateur.java
1,5 → 1,6
package org.tela_botanica.client;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
27,6 → 28,7
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
import org.tela_botanica.client.modeles.collection.CollectionListe;
import org.tela_botanica.client.modeles.collection.UniteRangement;
import org.tela_botanica.client.modeles.commentaire.Commentaire;
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
import org.tela_botanica.client.modeles.personne.Personne;
95,6 → 97,7
public static final Constantes i18nC = getI18nConstante();
public static final ErrorMessages i18nM = getI18nMessage();
public static final boolean DEBUG = true;
public static final boolean DEBUG_CHARGEMENT = false;
private EnteteVue panneauNord = null;
private NavigationVue panneauOuest = null;
102,9 → 105,13
private StatutVue panneauSud = null;
private FenetreJournal fenetreJournal = null;
private HashMap<Object, Integer> fileDAttenteChargement = null;
private IdentificationFenetre fenetreIdentification = null;
private int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
private Sequenceur sequenceur = null;
public Mediateur() {
// Enregistrement du Médiateur dans le Registre
Registry.register(RegistreId.MEDIATEUR, this);
114,6 → 121,9
// Création du Modèle qui s'enregistre lui même dans le Registre
modele = new Modele();
// Séquenceur (local au médiateur)
sequenceur = new Sequenceur();
 
// Création du Viewport qui contient la disposition globale de l'application
viewport = new Viewport();
129,6 → 139,9
// Connection de l'utilisateur
connecterUtilisateur(null, null);
// Creer la table qui gère le panneau de chargement/déchargement
fileDAttenteChargement = new HashMap<Object, Integer>();
// Retour à GWT du Viewport une fois constuit
RootPanel.get().add(viewport);
}
241,14 → 254,13
//+----------------------------------------------------------------------------------------------------------------+
public void clicMenu(String codeMenuClique) {
activerChargement(codeMenuClique);
 
panneauOuest.getMenu().selectionMenu(codeMenuClique);
if (codeMenuClique.equals(MenuApplicationId.ACCUEIL)) {
afficherAccueil();
} else if (codeMenuClique.equals(MenuApplicationId.PROJET)) {
selectionnerProjet(panneauCentre, null, null);
selectionnerProjet(panneauCentre, null, null, false, null);
} else if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {
selectionnerStructure(panneauCentre, null, null);
} else if (codeMenuClique.equals(MenuApplicationId.COLLECTION)) {
262,20 → 274,59
} else {
GWT.log(i18nM.nonImplemente(codeMenuClique), null);
}
 
panneauCentre.layout();
}
public void activerChargement(String message) {
public void activerChargement(Object caller, String message) {
if (fileDAttenteChargement.get(caller) == null) fileDAttenteChargement.put(caller, 1);
else fileDAttenteChargement.put(caller, fileDAttenteChargement.get(caller)+1);
activerChargement(message);
}
private void activerChargement(String message) {
if (DEBUG_CHARGEMENT) System.out.println("[CHARGEMENT] ActiverChargement");
if (DEBUG_CHARGEMENT) debugFileAttente();
afficherPopinChargement();
panneauCentre.disable();
panneauSud.showBusy(i18nC.chargement()+" "+message);
}
public void desactiverChargement() {
public void desactiverChargement(Object caller) {
if (fileDAttenteChargement.get(caller) == null) {
if (DEBUG_CHARGEMENT) System.out.println("[CHARGEMENT] Problème : l'objet "+caller+" essaie de désactiver le chargement alors qu'il ne l'a pas initié.");
}
else fileDAttenteChargement.put(caller, fileDAttenteChargement.get(caller)-1);
if (!chargementsEnCours()) desactiverChargement();
}
private void desactiverChargement() {
if (DEBUG_CHARGEMENT) System.out.println("[CHARGEMENT] Désactiver Chargement");
if (DEBUG_CHARGEMENT) debugFileAttente();
masquerPopinChargement();
panneauCentre.enable();
panneauSud.clear();
}
private boolean chargementsEnCours() {
boolean chargementEnCours = false;
Iterator<Object> it = fileDAttenteChargement.keySet().iterator();
while (it.hasNext() && !chargementEnCours) {
chargementEnCours = (fileDAttenteChargement.get(it.next()) > 0);
}
return chargementEnCours;
}
private void debugFileAttente() {
System.out.println("[CHARGEMENT]--< StackTrace >------------------------------------------------------");
if (fileDAttenteChargement.size() == 0) System.out.println("(Empty)");
Iterator<Object> it = fileDAttenteChargement.keySet().iterator();
while (it.hasNext()) {
Object o = it.next();
System.out.println(" ==> ["+o+"] = "+fileDAttenteChargement.get(o));
}
}
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DES FENÊTRES
546,11 → 597,11
}
/** Cette méthode est un "wrapper" **/
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, Sequenceur sequenceur) {
selectionnerProjet(vueARafraichir, projetId, null, 0, this.nbElements, sequenceur);
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String formatRetour, boolean paginationProgressive, Sequenceur sequenceur) {
selectionnerProjet(vueARafraichir, projetId, null, 0, this.nbElements, formatRetour, paginationProgressive, sequenceur);
}
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String nom, int start, int nbElements, Sequenceur sequenceur) {
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String nom, int start, int nbElements, String formatRetour, boolean paginationProgressive, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Projet");
Integer numeroSequence = null;
if (sequenceur != null) {
557,7 → 608,7
numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerProjet(vueARafraichir, projetId, nom, start, nbElements, numeroSequence);
modele.selectionnerProjet(vueARafraichir, projetId, nom, start, nbElements, formatRetour, paginationProgressive, numeroSequence);
}
 
/** AJOUTER **/
589,7 → 640,7
if (panneauCentre.getContenu() instanceof AccueilVue) {
desactiverChargement();
} else if (panneauCentre.getContenu() instanceof ProjetVue) {
selectionnerProjet(panneauCentre.getContenu(), null, null);
selectionnerProjet(panneauCentre.getContenu(), null, null, false, null);
} else if (panneauCentre.getContenu() instanceof StructureVue) {
selectionnerStructure(panneauCentre.getContenu(), null, null);
} else if (panneauCentre.getContenu() instanceof CollectionVue) {
771,6 → 822,17
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation STRUCTURE A PERSONNE
 
public void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId, String nom, int start, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner StructureAPersonne");
Integer seqId = null;
if (sequenceur!=null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerStructureAPersonne(vueARafraichir, structureId, roleId, nom, start, nbElements, seqId);
}
public void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner StructureAPersonne");
Integer seqId = null;
853,9 → 915,9
public void clicListeCollection(Collection collectionCliquee) {
panneauCentre.getContenu().rafraichir(collectionCliquee);
if (collectionCliquee != null) {
selectionnerCollectionAPersonne(panneauCentre.getContenu(), collectionCliquee.getId(), null, null);
selectionnerCollectionAPublication(panneauCentre.getContenu(), collectionCliquee.getId(), null);
selectionnerCollectionACommentaire(panneauCentre.getContenu(), collectionCliquee.getId(), null);
selectionnerCollectionAPersonne(panneauCentre.getContenu(), collectionCliquee.getId(), null, sequenceur);
selectionnerCollectionAPublication(panneauCentre.getContenu(), collectionCliquee.getId(), sequenceur);
selectionnerCollectionACommentaire(panneauCentre.getContenu(), collectionCliquee.getId(), sequenceur);
}
}
957,16 → 1019,6
}
modele.selectionnerCollection(vueARafraichir, recherche, start, nbElements, seqId);
}
/*
public void selectionnerCollection(Rafraichissable vueARafraichir, Integer id, int start, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Collection");
Integer seqId = null;
if (sequenceur!=null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollection(vueARafraichir, id, start, nbElements, seqId);
} */
/** AJOUTER **/
public void ajouterCollection(Rafraichissable vueARafraichir, Collection collection) {
1000,6 → 1052,16
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation COLLECTION A PERSONNE
public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId, String recherche, int start, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionAPersonne");
Integer seqId = null;
if (sequenceur!=null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollectionAPersonne(vueARafraichir, collectionId, roleId, recherche, start, nbElements, seqId);
}
public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionAPersonne");
Integer seqId = null;
1479,16 → 1541,15
}
}
/** AJOUTER **/
// Lier plusieurs publication à une personne
public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe listePublications, String personneId, String roleId, Integer seqId) {
if (listePublications!=null && listePublications.size()>0) {
if (listePublications != null && listePublications.size() > 0) {
String idsPubli = "";
String rolesIds = "";
String ordreAuteurs = "";
for (Iterator<String> it = listePublications.keySet().iterator(); it.hasNext();) {
PublicationAPersonne publiAPersonne = listePublications.get(it.next());
idsPubli += publiAPersonne.getId();
idsPubli += publiAPersonne.getIdPublication();
rolesIds += publiAPersonne.getRole();
ordreAuteurs += publiAPersonne.getOrdreAuteurs();
if (it.hasNext()) {
1521,7 → 1582,6
/** SUPPRIMER **/
public void supprimerPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe personnesSupprimees) {
if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
String idPublicationAPersonneSepareParVirgule = "" ;
for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {