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();) { |