/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();) { |
/trunk/src/org/tela_botanica/client/util/UtilString.java |
---|
58,4 → 58,9 |
public static boolean isEmpty(ArrayList<String> entree) { |
return !(entree!=null && !entree.toString().equals("[]")); |
} |
public static boolean isNumber(String str, boolean emptyIsTrue) { |
if (emptyIsTrue) return (str.matches("[0-9]*")); |
else return (str.matches("[0-9]+")); |
} |
} |
/trunk/src/org/tela_botanica/client/i18n/Constantes.properties |
---|
395,7 → 395,7 |
typeCollectionBotanique = Type d'herbier |
nbreEchantillon = Nombre de cartons ou liasses échantillonnés |
nbreEchantillonInfo = Privilégier les cartons contenant les Ombellifères ou Apiaceae, les Crucifères ou Brassicaceae et les Composées ou Asteraceae |
collectionUniteType = Type |
collectionUniteType = Type d'unité |
collectionUniteNbre = Nombre |
collectionUnitePrecision = Précision |
collectionUniteFormat = Format |
/trunk/src/org/tela_botanica/client/i18n/Constantes.java |
---|
322,7 → 322,6 |
String digitalInventaireCollectionDetail(); |
String pourcentDigitalInventaireCollectionDetail(); |
String etatInventaireCollectionDetail(); |
//DELETEME String typeDonneeInventaireCollectionDetail(); |
// Collection : form |
String titreModifFormCollection(); |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java |
---|
53,8 → 53,6 |
mediateur.obtenirListeValeurEtRafraichir(this, "pays", sequenceur); |
mediateur.obtenirListeValeurEtRafraichir(this, "tel", sequenceur); |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication", sequenceur); |
mediateur.desactiverChargement(); |
} |
public void rafraichir(Object nouvellesDonnees) { |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java |
---|
34,6 → 34,7 |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
66,7 → 67,6 |
import org.tela_botanica.client.composants.pagination.Proxy; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyValeur; |
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
253,7 → 253,7 |
modelTypeProjets.addField("cpr_id_projet"); |
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(null); |
ChampComboBoxRechercheTempsReelPaginable cbProjets = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
cbProjets.setWidth(100, 600); |
679,7 → 679,7 |
String displayNameTypes = "cmlv_nom"; |
String nomListeTypes = "pays"; |
ProxyValeur<ModelData> proxyTypes = new ProxyValeur<ModelData>(nomListeTypes, sequenceur); |
ProxyValeur<ModelData> proxyTypes = new ProxyValeur<ModelData>(nomListeTypes, null); |
ChampMultiValeursMultiTypesPaginable recolte = new ChampMultiValeursMultiTypesPaginable(i18nC.personneRecolte(), 450, false, null, null, null, typeTypes, proxyTypes, displayNameTypes); |
1004,7 → 1004,14 |
//Mise à jour de la personne |
ChampComboBoxRechercheTempsReelPaginable cbProjets = hmIdentite.getComboBoxRechercheTempsReelPaginable("cbProjets"); |
cbProjets.getCombo().setValue(cbProjets.getStore().findModel("cpr_id_projet", personne.get("ce_projet"))); |
if (cbProjets.getCombo().getStore() != null |
&& personne != null |
&& personne.getIdProjet() != null |
&& !UtilString.isEmpty(personne.getIdProjet())) { |
cbProjets.chargerValeurInitiale(personne.getIdProjet(), "cpr_id_projet"); |
} else { |
cbProjets.getCombo().setValue(null); |
} |
//Prefixe |
String prefixe = personne.get("ce_truk_prefix"); |
1282,7 → 1289,7 |
String decesLieu = (String) hmIdentite.getTextField("tfLieuDeces").getValue(); |
personneSelectionnee.setDecesLieu(decesLieu); |
} else { |
personneSelectionnee.setNonDecedee(); |
personneSelectionnee.setNonDecedee(); |
} |
strValeur = obtenirValeurCombo("cbPays"); |
1328,9 → 1335,10 |
} |
private void traiterDate(String typeDate, String date, Personne personneSelectionnee, LinkedList<String> lstMessageErreur) { |
String valeurDate = date; |
if (!UtilString.isEmpty(valeurDate)){ |
String jour = ""; |
String mois = ""; |
String annee = ""; |
1385,10 → 1393,16 |
personneSelectionnee.set("ce_deces", personneSelectionnee.ETRE_DECEDE); |
} |
} |
} else { |
} |
else { |
lstMessageErreur.add("La date de "+typeDate+" n'est pas au format JJ/MM/AAAA ou MM/AAAA ou AAAA."); |
} |
} |
/** Date vide **/ |
} else { |
personneSelectionnee.set("deces_date", "0000-00-00"); |
personneSelectionnee.set("ce_deces", personneSelectionnee.ETRE_DECEDE); |
} |
} |
public Personne getPersonne() { |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java |
---|
1,18 → 1,18 |
package org.tela_botanica.client.vues.collection; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyPersonnes; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.InterneValeur; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.aDonnee; |
19,16 → 19,9 |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe; |
import org.tela_botanica.client.modeles.collection.UniteBase; |
import org.tela_botanica.client.modeles.collection.UniteRangement; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.structure.StructureAPersonne; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.FenetreForm; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.FormulaireBarreValidation; |
40,18 → 33,14 |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.EventType; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.FieldEvent; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Record; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.Text; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.button.ButtonBar; |
64,20 → 53,14 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnData; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.dom.client.Element; |
import com.google.gwt.event.dom.client.KeyCodes; |
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable { |
87,7 → 70,8 |
private ContentPanel panneauPrincipal = null; |
private ToolBar barreOutils = null; |
private EditorGrid<CollectionAPersonne> grille; |
private GrillePaginable<ModelData> grille; |
private ComboBox<Valeur> typeRelationCombo = null; |
private CollectionAPersonneListe personnesAjoutees = null; |
111,16 → 95,17 |
setText(Mediateur.i18nC.collectionPersonne()); |
setStyleAttribute("padding", "0"); |
initialiser(); |
panneauPrincipal = creerPanneauContenantGrille(); |
barreOutils = creerBarreOutilsGrille(); |
panneauPrincipal.setTopComponent(barreOutils); |
grille = creerGrille(); |
panneauPrincipal.add(grille); |
mediateur.obtenirListeValeurEtRafraichir(this, "ion", null); |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonneCollection", null); |
mediateur.obtenirListeValeurEtRafraichir(this, "ion", sequenceur); |
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonneCollection", sequenceur); |
add(panneauPrincipal); |
initialiser(); |
} |
private void initialiser() { |
129,9 → 114,6 |
personnesAjoutees = new CollectionAPersonneListe(); |
personnesSupprimees = new CollectionAPersonneListe(); |
// Actualisation de l'état des boutons de la barre d'outils |
actualiserEtatBoutonsBarreOutils(); |
collection = ((CollectionForm) formulaire).collection; |
} |
194,8 → 176,9 |
Button bouton = new Button(i18nC.modifier()); |
bouton.setIcon(Images.ICONES.vcardModifier()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
CollectionAPersonne personneSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
public void componentSelected(ButtonEvent ce) { |
CollectionAPersonne personneSaisiSelectionne = new CollectionAPersonne(grille.getSelection()); |
if (personneSaisiSelectionne == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne()); |
} else { |
210,7 → 193,7 |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
String personneId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
CollectionAPersonne personneSaisieSelectionnee = grille.getSelectionModel().getSelectedItem(); |
CollectionAPersonne personneSaisieSelectionnee = new CollectionAPersonne(grille.getSelection()); |
personneId = personneSaisieSelectionnee.getIdPersonne(); |
} |
264,7 → 247,7 |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
CollectionAPersonne personneSaisiSelectionnee = grille.getSelectionModel().getSelectedItem(); |
ModelData personneSaisiSelectionnee = grille.getSelection(); |
if (personneSaisiSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne()); |
} else { |
303,7 → 286,7 |
modelTypePersonnes.addField("cp_deces_lieu"); |
String displayNamePersonnes = "cp_fmt_nom_complet"; |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(sequenceur); |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(null); |
recherchePersonnesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPersonnes, modelTypePersonnes, displayNamePersonnes); |
recherchePersonnesCombo.getCombo().setForceSelection(true); |
325,7 → 308,7 |
recherchePersonnesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() { |
public void handleEvent(BaseEvent be) { |
if (personnesSaisisComboBox.getValeur() instanceof ModelData) { |
if (personnesSaisisComboBox.getValeur() instanceof ModelData) { |
Personne personneSaisiSelectionnee = new Personne(personnesSaisisComboBox.getValeur()); |
ajouterDansGrille(personneSaisiSelectionnee); |
personnesSaisisComboBox.getCombo().setValue(null); |
343,8 → 326,9 |
private void ajouterDansGrille(Personne personne, String relation, int index) { |
if (personne != null) { |
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(); |
relationCollectionPersonne.setPersonne(personne); |
relationCollectionPersonne.setPersonnePourGrillePaginable(personne); |
relationCollectionPersonne.setIdPersonne(personne.getId()); |
if (relation != null) { |
relationCollectionPersonne.set("_role_", relation); |
} |
352,84 → 336,92 |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
relationCollectionPersonne.setIdCollection(collection.getId()); |
} |
relationCollectionPersonne.set("_etat_", aDonnee.ETAT_AJOUTE); |
corrigerChampsGrille(relationCollectionPersonne); |
// FIXME besoin de ça ? |
//corrigerChampsGrille(relationCollectionPersonne); |
// Ajout à la grille |
grille.stopEditing(); |
grille.getStore().insert(relationCollectionPersonne, index); |
grille.startEditing(index, 0); |
grille.getSelectionModel().select(index, false); |
grille.getGrille().stopEditing(); |
grille.getGrille().getStore().insert(relationCollectionPersonne, index); |
grille.getGrille().startEditing(index, 0); |
grille.getGrille().getSelectionModel().select(index, false); |
} |
} |
private void supprimerDansGrille(CollectionAPersonne relationCollectionPersonne) { |
private void supprimerDansGrille(ModelData relationCollectionPersonne) { |
CollectionAPersonne cap = new CollectionAPersonne(relationCollectionPersonne); |
if (relationCollectionPersonne != null) { |
// Ajout de la personne supprimée à la liste |
if ((relationCollectionPersonne.get("_etat_").equals("") || !relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) |
&& relationCollectionPersonne.getId() != null |
&& !relationCollectionPersonne.getId().equals("")) { |
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne); |
if ((relationCollectionPersonne.get("_etat_") == null |
|| relationCollectionPersonne.get("_etat_").equals("") |
|| !relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) |
&& cap.getId() != null |
&& !cap.getId().equals("")) { |
personnesSupprimees.put("id"+idGenere++, cap); |
grille.getStore().remove(relationCollectionPersonne); |
} |
// Suppression de l'enregistrement de la grille |
grille.getStore().remove(relationCollectionPersonne); |
} |
} |
private EditorGrid<CollectionAPersonne> creerGrille() { |
ListStore<CollectionAPersonne> storeGrille = new ListStore<CollectionAPersonne>(); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPersonne>>() { |
public void handleEvent(StoreEvent<CollectionAPersonne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPersonne>>() { |
public void handleEvent(StoreEvent<CollectionAPersonne> ce) { |
actualiserEtatBoutonsBarreOutils(); |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionAPersonne>>() { |
public void handleEvent(StoreEvent<CollectionAPersonne> ce) { |
if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
private GrillePaginable<ModelData> creerGrille() { |
RowNumberer pluginLigneNumero = new RowNumberer(); |
// ModelType |
ModelType modelTypeCollectionAPersonne = new ModelType(); |
modelTypeCollectionAPersonne.setRoot("collectionsAPersonne"); |
modelTypeCollectionAPersonne.setTotalName("nbElements"); |
modelTypeCollectionAPersonne.addField("cp_fmt_nom_complet"); |
modelTypeCollectionAPersonne.addField("cp_nom"); |
modelTypeCollectionAPersonne.addField("cp_prenom"); |
modelTypeCollectionAPersonne.addField("cp_code_postal"); |
modelTypeCollectionAPersonne.addField("cp_naissance_date"); |
modelTypeCollectionAPersonne.addField("cp_naissance_lieu"); |
modelTypeCollectionAPersonne.addField("cp_ce_deces"); |
modelTypeCollectionAPersonne.addField("cp_deces_date"); |
modelTypeCollectionAPersonne.addField("cp_deces_lieu"); |
modelTypeCollectionAPersonne.addField("ccap_id_collection"); |
modelTypeCollectionAPersonne.addField("ccap_id_personne"); |
modelTypeCollectionAPersonne.addField("ccap_id_role"); |
// Proxy |
ProxyCollectionAPersonne<ModelData> proxyCollectionAPersonne = new ProxyCollectionAPersonne<ModelData>(null, collection.getId(), null); |
// Colonnes |
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>(); |
colonnes.add(pluginLigneNumero); |
colonnes.add(new RowNumberer()); |
colonnes.add(creerColonneRole()); |
colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150)); |
colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75)); |
colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75)); |
colonnes.add(new ColumnConfig("naissance_date", i18nC.date(), 75)); |
colonnes.add(new ColumnConfig("naissance_lieu", i18nC.lieu(), 100)); |
colonnes.add(new ColumnConfig("cp_fmt_nom_complet", i18nC.personneNomComplet(), 150)); |
colonnes.add(new ColumnConfig("cp_nom", i18nC.personneNom(), 75)); |
colonnes.add(new ColumnConfig("cp_prenom", i18nC.personnePrenom(), 75)); |
colonnes.add(new ColumnConfig("cp_naissance_date", i18nC.date(), 75)); |
colonnes.add(new ColumnConfig("cp_naissance_lieu", i18nC.lieu(), 100)); |
colonnes.add(creerColonneDeces()); |
colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75)); |
colonnes.add(new ColumnConfig("deces_lieu", i18nC.lieu(), 100)); |
colonnes.add(new ColumnConfig("cp_deces_date", i18nC.date(), 75)); |
colonnes.add(new ColumnConfig("cp_deces_lieu", i18nC.lieu(), 100)); |
GridSelectionModel<CollectionAPersonne> modeleDeSelection = new GridSelectionModel<CollectionAPersonne>(); |
// Modèle de colonnes |
ColumnModel modeleDeColonnes = new ColumnModel(colonnes); |
modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4)); |
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2)); |
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3)); |
EditorGrid<CollectionAPersonne> grillePersonne = new EditorGrid<CollectionAPersonne>(storeGrille, modeleDeColonnes); |
grillePersonne.setHeight("100%"); |
grillePersonne.setBorders(true); |
grillePersonne.setSelectionModel(modeleDeSelection); |
grillePersonne.addPlugin(pluginLigneNumero); |
grillePersonne.getView().setForceFit(true); |
grillePersonne.setAutoExpandColumn("fmt_nom_complet"); |
grillePersonne.setStripeRows(true); |
grillePersonne.setTrackMouseOver(true); |
// Grille |
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes); |
return grillePersonne; |
// Rajouter des écouteurs |
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() { |
public void handleEvent(StoreEvent<ModelData> ce) { |
if (ce.getRecord().isModified("_role_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) { |
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
return grillePaginable; |
} |
private ColumnConfig creerColonneRole() { |
441,9 → 433,11 |
typeRelationCombo.setEditable(false); |
typeRelationCombo.addStyleName(ComposantClass.OBLIGATOIRE); |
typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire()); |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) { |
public Object preProcessValue(Object valeur) { |
CellEditor editeurRelation = new CellEditor(typeRelationCombo) { |
// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer) |
public Object preProcessValue(Object valeur) { |
Valeur retour = null; |
if (valeur != null ) { |
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) { |
455,45 → 449,53 |
} |
} |
return retour; |
} |
public Object postProcessValue(Object valeur) { |
} |
// Sert à retourner un String à Partir d'une Valeur |
// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom |
public Object postProcessValue(Object valeur) { |
String retour = null; |
if (valeur != null ) { |
if (valeur instanceof Valeur) { |
Valeur valeurOntologie = (Valeur) valeur; |
retour = valeurOntologie.getNom(); |
String id = valeurOntologie.getId(); |
retour = id; |
} |
} |
return retour; |
} |
} |
}; |
GridCellRenderer<CollectionAPersonne> relationRendu = new GridCellRenderer<CollectionAPersonne>() { |
public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grille) { |
// Gestion du texte afficher dans la cellule |
String role = modele.get("_role_"); |
if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) { |
// Sert à afficher le nom du role au lieu de l'id |
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) { |
// Gestion du texte afficher dans la cellule |
CollectionAPersonne cap = new CollectionAPersonne(modele); |
String role = cap.getIdRole(); |
modele.set("_role_", role); |
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) { |
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom(); |
} |
modele.set("_role_", role); |
return role; |
} |
}; |
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75); |
typeRelationColonne.setEditor(editeurRelation); |
typeRelationColonne.setRenderer(relationRendu); |
return typeRelationColonne; |
} |
public ColumnConfig creerColonneDeces() { |
GridCellRenderer<CollectionAPersonne> decesRendu = new GridCellRenderer<CollectionAPersonne>() { |
public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grid) { |
String deces = modele.getPersonne().getDeces(); |
if (listeIon != null && modele.getPersonne().getDeces().matches("[0-9]+")) { |
deces = listeIon.findModel("id_valeur", modele.getPersonne().getDeces()).getNom(); |
GridCellRenderer<ModelData> decesRendu = new GridCellRenderer<ModelData>() { |
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) { |
CollectionAPersonne cap = new CollectionAPersonne(modele); |
String deces = cap.getPersonne().getDeces(); |
if (listeIon != null && cap.getPersonne().getDeces().matches("[0-9]+")) { |
deces = listeIon.findModel("id_valeur", cap.getPersonne().getDeces()).getNom(); |
} |
modele.set("_deces_", deces); |
return deces; |
505,6 → 507,7 |
} |
public void actualiserEtatBoutonsBarreOutils() { |
// Activation des boutons si la grille contient un élément |
if (grille.getStore().getCount() > 0) { |
personnesBoutonSupprimer.enable(); |
529,7 → 532,7 |
} |
} |
private void rafraichirValeurListe(ValeurListe listeValeurs) { |
private void rafraichirValeurListe(ValeurListe listeValeurs) { |
if (listeValeurs.getId().equals(config.getListeId("ion"))) { |
listeIon = new ListStore<Valeur>(); |
listeIon.add(listeValeurs.toList()); |
547,9 → 550,7 |
String type = info.getType(); |
if (info.getType().equals("liste_collection_a_personne")) { |
if (info.getDonnee(0) != null) { |
initialiser(); |
collection.setPersonnesLiees((CollectionAPersonneListe) info.getDonnee(0)); |
peupler(); |
} |
} else if (info.getType().equals("ajout_collection")) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) { |
562,7 → 563,7 |
} else if (type.equals("personne_modifiee")) { |
if (info.getDonnee(0) != null) { |
Personne personne = (Personne) info.getDonnee(0); |
CollectionAPersonne personneDansGrille = grille.getStore().findModel("id_personne", personne.getId()); |
ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId()); |
int index = grille.getStore().indexOf(personneDansGrille); |
grille.getStore().remove(personneDansGrille); |
String role = (String) personneDansGrille.get("_role_"); |
577,18 → 578,12 |
InfoLogger.display("Modification des personnes liées à la collection", info.toString()); |
} else if (info.getType().equals("suppression_collection_a_personne")) { |
InfoLogger.display("Suppression des personnes liées à la collection", info.toString()); |
actualiserGrille(); |
} else if (info.getType().equals("ajout_collection_a_personne")) { |
InfoLogger.display("Ajout des personnes liées à la collection", info.toString()); |
} |
} |
public void peupler() { |
grille.getStore().removeAll(); |
grille.getStore().add(collection.getPersonnesLiees().toList()); |
layout(); |
InfoLogger.display(i18nC.chargementPersonne(), i18nC.ok()); |
} |
public ArrayList<String> verifier() { |
ArrayList<String> messages = new ArrayList<String>(); |
String personneNumero = ""; |
596,7 → 591,7 |
if (nbrePersonne > 0) { |
for (int i = 0; i < nbrePersonne; i++) { |
CollectionAPersonne personne = grille.getStore().getAt(i); |
CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i)); |
if (personne.get("_role_").equals("")) { |
personneNumero += (i != 0 ? ", " : "")+(i+1); |
} |
613,8 → 608,10 |
if (etreAccede()) { |
int nbrePersonne = grille.getStore().getCount(); |
for (int i = 0; i < nbrePersonne; i++) { |
CollectionAPersonne relationCollectionPersonne = grille.getStore().getAt(i); |
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i)); |
if (relationCollectionPersonne.get("_etat_") != null) { |
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) { |
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role |
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne); |
641,6 → 638,7 |
if (role.matches("[0-9]+")) { |
champModele = "id_valeur"; |
} |
if (typeRelationCombo.getStore().findModel(champModele, role) != null) { |
String idRole = typeRelationCombo.getStore().findModel(champModele, role).getId(); |
relationCollectionPersonne.setIdRole(idRole); |
649,6 → 647,7 |
public void soumettre() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
if (personnesAjoutees.size() == 0 && personnesSupprimees.size() == 0) { |
InfoLogger.display("Modification des personnes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié."); |
} else { |
664,10 → 663,6 |
} |
} |
private void obtenirPersonnesSaisis(String nom) { |
mediateur.selectionnerPersonneParNomComplet(this, null, "%"+nom+"%", null); |
} |
private void actualiserGrille() { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerCollectionAPersonne(this, collection.getId(), null, null); |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java |
---|
150,7 → 150,7 |
bouton.setIcon(Images.ICONES.vcardAjouter()); |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER); |
fenetreFormulaire = creerFenetreModaleAvecFormulairePublication(Formulaire.MODE_AJOUTER); |
fenetreFormulaire.show(); |
} |
}); |
167,7 → 167,7 |
if (publicationSaisieSelectionnee == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER); |
fenetreFormulaire = creerFenetreModaleAvecFormulairePublication(Formulaire.MODE_MODIFIER); |
fenetreFormulaire.show(); |
} |
} |
175,7 → 175,7 |
return bouton; |
} |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
private FenetreForm creerFenetreModaleAvecFormulairePublication(String mode) { |
String publicationId = null; |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
218,7 → 218,7 |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
fenetreFormulaire.hide(); |
fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode); |
fenetreFormulaire = creerFenetreModaleAvecFormulairePublication(formulaire.mode); |
fenetreFormulaire.show(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java |
---|
128,7 → 128,7 |
modelTypeProjets.addField("cpr_id_projet"); |
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(null); |
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.setWidth(250, 600); |
167,7 → 167,7 |
modelTypeStructures.addField("cs_id_structure"); |
String displayNameStructures = "cs_nom"; |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(sequenceur); |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(null); |
structuresCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyStructures, modelTypeStructures, displayNameStructures); |
structuresCombo.setWidth(250, 600); |
205,7 → 205,7 |
modelTypeCollections.addField("cc_ce_mere"); |
String displayNameCollections = "cc_nom"; |
ProxyCollections<ModelData> proxyCollections = new ProxyCollections<ModelData>(sequenceur); |
ProxyCollections<ModelData> proxyCollections = new ProxyCollections<ModelData>(null); |
collectionsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCollections, modelTypeCollections, displayNameCollections); |
collectionsCombo.setWidth(250, 600); |
418,9 → 418,14 |
} |
return valeur; |
} |
private void setValeurComboProjets() { |
if (projetsCombo.getStore() != null && collection != null) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", collection.getIdProjet())); |
private void setValeurComboProjets() { |
if (projetsCombo.getCombo().getStore() != null |
&& collection != null |
&& collection.getIdProjet() != null |
&& !UtilString.isEmpty(collection.getIdProjet())) { |
projetsCombo.chargerValeurInitiale(collection.getIdProjet(), "cpr_id_projet"); |
} else { |
projetsCombo.getCombo().setValue(null); |
} |
} |
433,10 → 438,7 |
return valeur; |
} |
private void setValeurComboStructures() { |
/*if (structuresCombo.getStore() != null && collection != null) { |
structuresCombo.getCombo().setValue(structuresCombo.getStore().findModel("cs_id_structure", collection.getIdStructure())); |
}*/ |
if (structuresCombo.getCombo().getStore() != null |
if (structuresCombo.getCombo().getStore() != null |
&& collection != null |
&& collection.getStructureNom() != null |
&& !UtilString.isEmpty(collection.getStructureNom())) { |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java |
---|
105,13 → 105,13 |
Valeur valeur = typesCollectionCombo.getValue(); |
// Gestion des onglets en fonction du type de collection |
mediateur.activerChargement(""); |
mediateur.activerChargement(this, "Chargement des onglets"); |
if (valeur != null && valeur.getId().equals(Valeur.COLLECTION_NCD_HERBIER)) { |
activerOngletsHerbier(); |
} else { |
activerOngletsDefaut(); |
} |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
} |
}; |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java |
---|
54,8 → 54,11 |
import com.extjs.gxt.ui.client.widget.grid.AggregationRowConfig; |
import com.extjs.gxt.ui.client.widget.grid.CellEditor; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnData; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.Grid; |
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.SummaryType; |
108,8 → 111,7 |
creerFieldsetPrecision(); |
creerStorePrecision(); |
creerUniteRangement(); |
creerUniteBase(); |
creerFieldSetTypesUnite(); |
creerFieldsetConservation(); |
creerFieldsetEtiquette(); |
creerFieldsetTraitement(); |
179,7 → 181,25 |
return precisionCombo; |
} |
private void creerUniteRangement() { |
private void creerFieldSetTypesUnite() { |
FieldSet typesUniteFieldSet = new FieldSet(); |
typesUniteFieldSet.setHeading(i18nC.collectionUniteType()); |
typesUniteFieldSet.setCollapsible(true); |
typesUniteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut)); |
etatUniteRangementCombo = new ChampComboBoxListeValeurs(i18nC.collectionUniteRangementEtatGeneral(), "etat"); |
etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo()); |
etatUniteRangementCombo.setTrie("id_valeur"); |
etatUniteRangementCombo.setWidth(300); |
typesUniteFieldSet.add(etatUniteRangementCombo); |
typesUniteFieldSet.add(creerUniteRangement()); |
typesUniteFieldSet.add(creerUniteBase()); |
add(typesUniteFieldSet); |
} |
private ContentPanel creerUniteRangement() { |
ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre()); |
uniteRangementGrille = creerGrilleUniteRangement(); |
189,7 → 209,7 |
ToolBar barreOutils = creerBarreOutilsGrilleUniteRangement(); |
panneauGrille.setTopComponent(barreOutils); |
add(panneauGrille); |
return panneauGrille; |
} |
private ContentPanel creerPanneauContenantGrille(String titre) { |
198,7 → 218,8 |
panneau.setIcon(Images.ICONES.table()); |
panneau.setLayout(new FitLayout()); |
panneau.setFrame(true); |
panneau.setScrollMode(Scroll.AUTO); |
panneau.setSize(800, 200); |
panneau.setScrollMode(Scroll.NONE); |
panneau.setCollapsible(true); |
panneau.setStyleAttribute("margin", "5px 0"); |
313,6 → 334,7 |
for (int i = 0; i < nbreUnite; i++) { |
UniteRangement uniteDansGrille = uniteRangementGrille.getStore().getAt(i); |
UniteRangement uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId()); |
if (uniteEnregistree != null) { |
uniteEnregistree.setType(uniteDansGrille.getType()); |
listeUniteMaj.add(uniteEnregistree); |
324,7 → 346,7 |
Iterator<String> it = unitesEnregistrees.keySet().iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR)) { |
if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) { |
UniteRangement uniteAutreEnregistree = unitesEnregistrees.get(cle); |
listeUniteMaj.add(uniteAutreEnregistree); |
} |
360,12 → 382,12 |
uniteRangement.setId(uniteTypeIdDonnees[0]); |
uniteRangement.setTypeAutre(false); |
unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteRangement); |
} else { |
} else { |
uniteRangement.setType(uniteTypeIdDonnees[0]); |
uniteRangement.setTypeAutre(true); |
String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i; |
uniteRangement.setId(id); |
unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR, uniteRangement); |
unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteRangement); |
} |
} |
} |
382,16 → 404,7 |
Button supprimerBouton = creerBoutonSupprimerUniteRangement(); |
barreOutils.add(supprimerBouton); |
barreOutils.add(new SeparatorToolItem()); |
barreOutils.add(new Text(i18nC.collectionUniteRangementEtatGeneralLabel())); |
etatUniteRangementCombo = new ChampComboBoxListeValeurs("", "etat"); |
etatUniteRangementCombo.setEmptyText(i18nC.collectionUniteRangementEtatGeneral()); |
etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo()); |
etatUniteRangementCombo.setTrie("id_valeur"); |
etatUniteRangementCombo.setWidth(300); |
barreOutils.add(etatUniteRangementCombo); |
return barreOutils; |
} |
438,7 → 451,7 |
return bouton; |
} |
private void creerUniteBase() { |
private ContentPanel creerUniteBase() { |
ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre()); |
uniteBaseGrille = creerGrilleUniteBase(); |
448,7 → 461,7 |
ToolBar barreOutils = creerBarreOutilsGrilleUniteBase(); |
panneauGrille.setTopComponent(barreOutils); |
add(panneauGrille); |
return panneauGrille; |
} |
private EditorGrid<UniteBase> creerGrilleUniteBase() { |
592,7 → 605,7 |
Iterator<String> it = unitesEnregistrees.keySet().iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR)) { |
if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) { |
UniteBase uniteAutreEnregistree = unitesEnregistrees.get(cle); |
listeUniteMaj.add(uniteAutreEnregistree); |
} |
645,7 → 658,7 |
uniteBase.setTypeAutre(true); |
String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i; |
uniteBase.setId(id); |
unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR, uniteBase); |
unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteBase); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java |
---|
9,9 → 9,12 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable; |
import org.tela_botanica.client.composants.GrillePaginable; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyPersonnes; |
import org.tela_botanica.client.composants.pagination.ProxyProjets; |
import org.tela_botanica.client.composants.pagination.ProxyStructureAPersonne; |
import org.tela_botanica.client.composants.pagination.ProxyValeur; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
88,6 → 91,7 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
1475,7 → 1479,7 |
modelTypePersonnes.addField("cp_ce_truk_specialite"); |
String displayNamePersonnes = "cp_fmt_nom_complet"; |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(sequenceur); |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(null); |
personneExistanteCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPersonnes, modelTypePersonnes, displayNamePersonnes); |
1516,16 → 1520,15 |
personnelGrilleMagazin.addListener(Store.Update, new Listener<StoreEvent<StructureAPersonne>>() { |
public void handleEvent(StoreEvent<StructureAPersonne> ce) { |
StructureAPersonne structureAPersonne = ce.getModel(); |
String etat = structureAPersonne.get("etat"); |
if (etat!=null && !etat.equals(aDonnee.ETAT_AJOUTE) && structureAPersonne!=null && !UtilString.isEmpty(structureAPersonne.getId())) { |
if ((etat==null || !etat.equals(aDonnee.ETAT_AJOUTE)) && structureAPersonne!=null && !UtilString.isEmpty(structureAPersonne.getId())) { |
ce.getModel().set("etat", aDonnee.ETAT_MODIFIE); |
} |
} |
}); |
cp.add(grillePersonnel); |
personnelOnglet.add(cp); |
1532,6 → 1535,7 |
return personnelOnglet; |
} |
private TabItem creerOngletIdentification() { |
//+-----------------------------------------------------------------------------------------------------------+ |
// Onlget formulaire IDENTIFICATION |
1570,7 → 1574,7 |
modelTypeProjets.addField("cpr_id_projet"); |
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(null); |
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.getCombo().setTabIndex(tabIndex++); |
1798,7 → 1802,7 |
String displayNamePays = "cmlv_nom"; |
String nomListeTypes = "pays"; |
ProxyValeur<ModelData> proxyPays = new ProxyValeur<ModelData>(nomListeTypes, sequenceur); |
ProxyValeur<ModelData> proxyPays = new ProxyValeur<ModelData>(nomListeTypes, null); |
comboPays = new ChampComboBoxRechercheTempsReelPaginable(proxyPays, modelTypesPays, displayNamePays); |
comboPays.setWidth(100,500); |
2068,15 → 2072,12 |
} |
} else if (info.getType().equals("modif_structure_a_personne")) { |
InfoLogger.display("Modification du Personnel", info.toString()); |
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null); |
testerLancementRafraichirPersonnel(); |
} else if (info.getType().equals("suppression_structure_a_personne")) { |
InfoLogger.display("Suppression du Personnel", info.toString()); |
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null); |
testerLancementRafraichirPersonnel(); |
} else if (info.getType().equals("ajout_structure_a_personne")) { |
InfoLogger.display("Ajout du Personnel", info.toString()); |
GWT.log("Decompte:"+decompteRafraichissementPersonnel, null); |
testerLancementRafraichirPersonnel(); |
} else if (info.getType().equals("selection_structure")) { |
InfoLogger.display("Modification d'une institution", info.toString()); |
/trunk/src/org/tela_botanica/client/vues/DetailVue.java |
---|
64,7 → 64,7 |
} |
private void chargerProjets() { |
mediateur.selectionnerProjet(this, null, null); |
mediateur.selectionnerProjet(this, null, null, false, null); |
} |
protected String construireTxtProjet(String idProjet) { |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java |
---|
185,7 → 185,7 |
contenuParams.set("licence", projet.getLicence()); |
contenuParams.set("i18n_langue", i18nC.projetLangue()); |
contenuParams.set("langue", obtenirValeurLangue(projet.getLangue())); |
contenuParams.set("langue", obtenirValeurLangue(projet.getLangueId())); |
contenuParams.set("i18n_titre_indexation", i18nC.projetTitreIndexation()); |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java |
---|
103,7 → 103,7 |
creerTabIndex(); |
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.selectionnerProjet(this, projetId, null); |
mediateur.selectionnerProjet(this, projetId, null, false, null); |
} |
} |
190,7 → 190,7 |
String displayNameLangues = "cmlv_nom"; |
String nomListeTypes = "langues"; |
ProxyValeur<ModelData> proxyLangues = new ProxyValeur<ModelData>(nomListeTypes, sequenceur); |
ProxyValeur<ModelData> proxyLangues = new ProxyValeur<ModelData>(nomListeTypes, null); |
langueChp = new ChampComboBoxRechercheTempsReelPaginable(proxyLangues, modelTypesLangues, displayNameLangues); |
langueChp.setWidth(100,300); |
416,10 → 416,10 |
motsClesChp.setValue(projet.getMotsCles()); |
citationChp.setValue(projet.getCitation()); |
licenceChp.setValue(projet.getLicence()); |
if (projet.getLangue().matches("[0-9]+")) { |
langueChp.getCombo().setValue(langueChp.getStore().findModel("cmlv_id_valeur", projet.getLangue())); |
if (projet.getLangueId().matches("[0-9]+")) { |
langueChp.getCombo().setValue(langueChp.getStore().findModel("cmlv_id_valeur", projet.getLangueId())); |
} else { |
langueChp.getCombo().setRawValue(projet.getLangue()); |
langueChp.getCombo().setRawValue(projet.getLangueId()); |
} |
if (projet.getMarkPublic().equals("1")) { |
markPublicChp.setValue(true); |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java |
---|
99,7 → 99,7 |
modelTypeProjets.addField("cpr_id_projet"); |
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(null); |
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.setWidth(100, 550); |
174,13 → 174,23 |
} |
return valeur; |
} |
private void setValeurComboProjets() { |
if (projetsCombo.getStore() != null ) { |
if (mode.equals(Formulaire.MODE_MODIFIER) && commentaire != null) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", commentaire.getIdProjet())); |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId())); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
if (projetsCombo.getCombo().getStore() != null |
&& commentaire != null |
&& commentaire.getIdProjet() != null |
&& !UtilString.isEmpty(commentaire.getIdProjet())) { |
projetsCombo.chargerValeurInitiale(commentaire.getIdProjet(), "cpr_id_projet"); |
} else { |
projetsCombo.getCombo().setValue(null); |
} |
} else if (mode.equals(Formulaire.MODE_AJOUTER)) { |
if (projetsCombo.getCombo().getStore() != null) { |
projetsCombo.chargerValeurInitiale(mediateur.getProjetId(), "cpr_id_projet"); |
} else { |
projetsCombo.getCombo().setValue(null); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java |
---|
41,7 → 41,7 |
panneauDetail.rafraichir(nouvellesDonnees); |
} else if (nouvellesDonnees instanceof CommentaireListe) { |
panneauListe.rafraichir(nouvellesDonnees); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
} else if (nouvellesDonnees instanceof Information) { |
panneauListe.rafraichir(nouvellesDonnees); |
} else { |
/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java |
---|
351,7 → 351,7 |
public void componentKeyDown(ComponentEvent ce) { |
int caractereSaisi = ce.getKeyCode(); |
boolean isInteger = (caractereSaisi >= 97 && caractereSaisi <= 105); |
boolean isInteger = (caractereSaisi >= 96 && caractereSaisi <= 105); |
// si le caractère n'est ni un chiffre ni 'entrée' ni 'backspace' |
if (!( isInteger |
/trunk/src/org/tela_botanica/client/vues/accueil/AccueilVue.java |
---|
78,7 → 78,7 |
chargerParametres(); |
add(panneauPrincipal); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
} |
private Portal creerPortail() { |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java |
---|
45,7 → 45,7 |
panneauPublicationDetail.rafraichir(nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
panneauPublicationListe.rafraichir(nouvellesDonnees); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
} else if (nouvellesDonnees instanceof Information) { |
panneauPublicationListe.rafraichir(nouvellesDonnees); |
} else { |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java |
---|
438,7 → 438,7 |
modelTypePersonnes.addField("cp_truk_courriel"); |
String displayNamePersonnes = "cp_fmt_nom_complet"; |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(sequenceur); |
ProxyPersonnes<ModelData> proxyPersonnes = new ProxyPersonnes<ModelData>(null); |
personnesSaisiesComboBox = new ChampComboBoxRechercheTempsReelPaginable(proxyPersonnes, modelTypePersonnes, displayNamePersonnes); |
449,7 → 449,11 |
Personne personneSaisieSelectionnee = new Personne(personnesSaisiesComboBox.getValeur()); |
PublicationAPersonne pap = new PublicationAPersonne(); |
pap.setPersonne(personneSaisieSelectionnee); |
if (modeDeCreation != Formulaire.MODE_AJOUTER) pap.setPublicationLiee(publication); |
pap.setOrdreAuteurs(String.valueOf(grilleAuteurs.getStore().getCount()+1)); |
if (modeDeCreation != Formulaire.MODE_AJOUTER) { |
pap.setPublicationLiee(publication); |
pap.setIdPublication(publicationId); |
} |
if (grilleAuteurs.getStore().findModel(pap) != null) { |
Info.display("Information", "La personne est déjà présente dans la liste d'auteurs"); |
} else { |
462,7 → 466,7 |
} |
private void ajouterDansGrille(PublicationAPersonne pap) { |
ajouterDansGrille(pap, 0); |
ajouterDansGrille(pap, grilleAuteurs.getStore().getCount()); |
} |
private void ajouterDansGrille(PublicationAPersonne pap, int index) { |
667,7 → 671,7 |
modelTypeProjets.addField("cpr_id_projet"); |
String displayNameProjets = "cpr_nom"; |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(sequenceur); |
ProxyProjets<ModelData> proxyProjets = new ProxyProjets<ModelData>(null); |
projetsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyProjets, modelTypeProjets, displayNameProjets); |
projetsCombo.setWidth(200, 600); |
729,7 → 733,7 |
modelTypeStructures.addField("cs_id_structure"); |
String displayNameStructures = "cs_nom"; |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(sequenceur); |
ProxyStructures<ModelData> proxyStructures = new ProxyStructures<ModelData>(null); |
editeurCombobox = new ChampComboBoxRechercheTempsReelPaginable(proxyStructures, modelTypeStructures, displayNameStructures); |
editeurCombobox.setWidth(200, 600); |
867,7 → 871,7 |
// - Envoyer au médiateur SSI personnes à modifier |
if (listeAuteursAModifier.size() > 0) { |
int seqId = sequenceur.lancerRequeteSynchrone(this); |
mediateur.modifierPublicationAPersonne(sequenceur, publication.getId(), listeAuteursAModifier, PublicationAPersonne.ROLE_AUTEUR, seqId); |
mediateur.modifierPublicationAPersonne(sequenceur, this.publicationId, listeAuteursAModifier, PublicationAPersonne.ROLE_AUTEUR, seqId); |
} |
sequenceur.enfilerRafraichissement(this, new Information("auteurs_enregistres")); |
1189,6 → 1193,7 |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String && ((String) info.getDonnee(0)).matches("[0-9]+")) { |
String idPublication = (String) info.getDonnee(0); |
this.publicationId = idPublication; |
this.publication.setId(idPublication); |
soumettreAuteurs(); |
InfoLogger.display("Ajout d'une publication", "La publication '"+publicationId+"' a bien été ajoutée"); |
} else { |
/trunk/src/org/tela_botanica/client/vues/FiltreVue.java |
---|
83,10 → 83,10 |
projetsCombo.getCombo().addSelectionChangedListener(new SelectionChangedListener<ModelData>() { |
public void selectionChanged(SelectionChangedEvent<ModelData> se) { |
if (se.getSelectedItem() != null) { |
mediateur.activerChargement(i18nC.chargement()); |
mediateur.activerChargement(this, i18nC.chargement()); |
Projet projet = new Projet (se.getSelectedItem()); |
mediateur.selectionnerProjetCourant(projet); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
annulerFiltre.setEnabled(true); |
} |
} |
106,9 → 106,9 |
annulerFiltre.addSelectionListener(new SelectionListener<ButtonEvent>() { |
public void componentSelected(ButtonEvent ce) { |
projetsCombo.getCombo().clear(); |
mediateur.activerChargement(i18nC.chargement()); |
mediateur.activerChargement(this, i18nC.chargement()); |
mediateur.selectionnerProjetCourant(tousProjets); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
annulerFiltre.setEnabled(false); |
} |
}); |
/trunk/src/org/tela_botanica/client/Modele.java |
---|
120,14 → 120,14 |
// GESTION DES PROJETS |
//+----------------------------------------------------------------------------------------------------------------+ |
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String nom, int start, int nbElements, Integer seqId) { |
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String nom, int start, int nbElements, String formatRetour, boolean paginationProgressive, Integer seqId) { |
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir); |
pADAO.selectionner(false, projetId, nom, start, nbElements, seqId); |
pADAO.selectionner(paginationProgressive, projetId, nom, start, nbElements, formatRetour, seqId); |
} |
public void selectionnerProjet(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Integer seqId) { |
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir); |
pADAO.selectionner(true, null, recherche, start, nbElements, seqId); |
pADAO.selectionner(true, null, recherche, start, nbElements, null, seqId); |
} |
public void ajouterProjet(Rafraichissable vueARafraichir, Projet projetCollecte) { |
182,10 → 182,15 |
// Gestion des données de la table coel_structure_a_personne |
if (structureId != null && roleId != null) { |
StructureAPersonneAsyncDao sapDao = new StructureAPersonneAsyncDao(vueARafraichir); |
sapDao.selectionner(structureId, roleId, seqId); |
sapDao.selectionner(false, structureId, roleId, null, 0, -1, seqId); |
} |
} |
public void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId, String recherche, int start, int nbElements, Integer seqId) { |
StructureAPersonneAsyncDao sapDao = new StructureAPersonneAsyncDao(vueARafraichir); |
sapDao.selectionner(true, structureId, roleId, recherche, start, nbElements, seqId); |
} |
public void modifierStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonne personnel) { |
StructureAPersonneAsyncDao structureAPersonneDao = new StructureAPersonneAsyncDao(vueARafraichir); |
structureAPersonneDao.modifier(personnel); |
233,9 → 238,14 |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION de la relation COLLECTION A PERSONNE |
public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId, String recherche, int start, int nbElements, Integer seqId) { |
CollectionAPersonneAsyncDao sapDao = new CollectionAPersonneAsyncDao(vueARafraichir); |
sapDao.selectionner(true, collectionId, roleId, recherche, start, nbElements, seqId); |
} |
public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId, Integer seqId) { |
CollectionAPersonneAsyncDao sapDao = new CollectionAPersonneAsyncDao(vueARafraichir); |
sapDao.selectionner(collectionId, roleId, seqId); |
sapDao.selectionner(false, collectionId, roleId, null, 0, -1, seqId); |
} |
public void modifierCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonne collectionAPersonne) { |
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeurs.java |
---|
6,6 → 6,7 |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.Events; |
185,7 → 186,7 |
String valeurChamp = ""; |
if (estComboBox) { |
if (champValeurCombo.getValue() != null) { |
valeurChamp = champValeurCombo.getValue().getNom(); |
valeurChamp = champValeurCombo.getValue().getId(); |
} |
} else { |
valeurChamp = champValeurTxt.getValue(); |
236,6 → 237,7 |
} |
public void ajouterValeur(final String texte) { |
LayoutContainer colonneLayout = new LayoutContainer(); |
colonneLayout.setLayout(new ColumnLayout()); |
valeurs.put(texte, colonneLayout); |
255,7 → 257,7 |
principalLayout.remove(valeurLayout); |
valeurs.remove(valeur); |
supprimerValeurDuRecapitulatif(valeur); |
actualiserLayoutGlobal(); |
298,9 → 300,21 |
} |
public void supprimerValeurDuRecapitulatif(String texte) { |
if (champRecapitulatif.getValue() != null) { |
// comme c'est le nom de la valeur qui est passée en paramètre, |
// on doit récupérer son id |
ListStore<Valeur> valeurs = champValeurCombo.getStore(); |
Valeur objetValeur = valeurs.findModel("nom", texte); |
String texteValeur = ""; |
if (objetValeur != null) { |
texteValeur = objetValeur.getId(); |
} else { |
texteValeur = texte; |
} |
String texteRecapitulatif = champRecapitulatif.getValue(); |
texteRecapitulatif = texteRecapitulatif.replace(texte + aDonnee.SEPARATEUR_VALEURS, ""); |
texteRecapitulatif = texteRecapitulatif.replace(texteValeur + aDonnee.SEPARATEUR_VALEURS, ""); |
champRecapitulatif.setValue(texteRecapitulatif); |
} |
} |
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java |
---|
9,6 → 9,7 |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.Formulaire; |
import com.extjs.gxt.ui.client.Registry; |
75,6 → 76,7 |
} |
public void ajouterValeur(final String texte, final String type, final String id) { |
LayoutContainer colonneConteneur = new LayoutContainer(); |
colonneConteneur.setLayout(new ColumnLayout()); |
valeurs.put(id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte, colonneConteneur); |
84,8 → 86,19 |
champType.setWidth(largeurType); |
colonneConteneur.add(champType, new ColumnData(largeurType)); |
// on recupere le nom de la valeur à partir de son id |
String texteValeur = texte; |
if (estComboBox) { |
ListStore<Valeur> valeursStore = champValeurCombo.getStore(); |
Valeur objetValeur = valeursStore.findModel("id_valeur", texte); |
if (objetValeur != null) { |
texteValeur = objetValeur.getNom(); |
} |
} |
Text champValeur = new Text(); |
champValeur.setText(texte); |
champValeur.setText(texteValeur); |
champValeur.setWidth(largeurChamp); |
colonneConteneur.add(champValeur, new ColumnData(largeurChamp)); |
131,6 → 144,7 |
} |
public void peupler(String chaineExistante) { |
if (valeurs.size() > 0) { |
reinitialiser(); |
} |
150,18 → 164,8 |
} else { |
texteType = idType; |
} |
String texteValeur = ""; |
if (champValeurCombo!=null) { |
ListStore<Valeur> valeurStore = champValeurCombo.getStore(); |
Valeur objetValeur = valeurStore.findModel("id_valeur", idValeur); |
if (objetValeur != null) { |
texteValeur = objetValeur.getNom(); |
} |
} else { |
texteValeur = idValeur; |
} |
ajouterValeur(texteValeur, texteType, idType); |
ajouterValeur(idValeur, texteType, idType); |
} else { |
InfoLogger.display("ChampMultiValeursMultiTypes > méthode peupler", "Erreur dans le split d'une valeur, chaine="+chaineExistante, true); |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyCollectionAPersonne.java |
---|
New file |
0,0 → 1,77 |
package org.tela_botanica.client.composants.pagination; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public class ProxyCollectionAPersonne<D> extends Proxy { |
String collectionId = null; |
String roleId = null; |
public ProxyCollectionAPersonne(Sequenceur sequenceur, String collectionId, String roleId) { |
super(sequenceur); |
this.collectionId = collectionId; |
this.roleId = roleId; |
} |
@Override |
public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) { |
this.reader = reader; |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerCollectionAPersonne(this, this.collectionId, this.roleId, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
D d = null; |
if (reader != null) |
{ |
d = (D) reader.read(loadConfig, data); |
} |
else |
{ |
d = (D) data; |
if (d instanceof List) |
{ |
d = (D) new ArrayList((List) d); |
} |
} |
callback.onSuccess(d); |
} |
catch (Exception e) |
{ |
callback.onFailure(e); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyProjets.java |
---|
7,10 → 7,13 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
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.ValeurListeAsyncDao; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
18,6 → 21,7 |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
34,14 → 38,15 |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerProjet(this, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
if (UtilString.isNumber(recherche, false)) mediateur.selectionnerProjet(this, recherche, "array", true, sequenceur); |
else mediateur.selectionnerProjet(this, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyStructureAPersonne.java |
---|
New file |
0,0 → 1,77 |
package org.tela_botanica.client.composants.pagination; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.ValeurListeAsyncDao; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public class ProxyStructureAPersonne<D> extends Proxy { |
String structureId = null; |
String roleId = null; |
public ProxyStructureAPersonne(Sequenceur sequenceur, String structureId, String roleId) { |
super(sequenceur); |
this.structureId = structureId; |
this.roleId = roleId; |
} |
@Override |
public void load(TransformateurJSONaModelData reader, Object loadConfig, AsyncCallback callback, String recherche) { |
this.reader = reader; |
this.callback = callback; |
this.loadConfig = loadConfig; |
BasePagingLoadConfig lc = (BasePagingLoadConfig)loadConfig; |
mediateur.selectionnerStructureAPersonne(this, this.structureId, this.roleId, recherche, lc.getOffset(), lc.getLimit(), sequenceur); |
} |
@Override |
@SuppressWarnings("unchecked") |
public void rafraichir(Object nouvellesDonnees) { |
try |
{ |
data = nouvellesDonnees; |
D d = null; |
if (reader != null) |
{ |
d = (D) reader.read(loadConfig, data); |
} |
else |
{ |
d = (D) data; |
if (d instanceof List) |
{ |
d = (D) new ArrayList((List) d); |
} |
} |
callback.onSuccess(d); |
} |
catch (Exception e) |
{ |
callback.onFailure(e); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/composants/pagination/ChargeurListe.java |
---|
1,9 → 1,20 |
package org.tela_botanica.client.composants.pagination; |
import java.util.Iterator; |
import java.util.List; |
import java.util.Map; |
import java.util.Set; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.BaseListLoadResult; |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.extjs.gxt.ui.client.data.BasePagingLoadResult; |
import com.extjs.gxt.ui.client.data.BasePagingLoader; |
import com.extjs.gxt.ui.client.data.LoadEvent; |
import com.extjs.gxt.ui.client.data.PagingLoadResult; |
12,9 → 23,8 |
public class ChargeurListe<D extends PagingLoadResult<?>> extends BasePagingLoader<D> { |
private String recherche = ""; |
private Integer id = null; |
private Rafraichissable vueARafraichir = null; |
private boolean rafraichir = false; |
private boolean doRafraichir = false; |
@SuppressWarnings("unchecked") |
public ChargeurListe(Proxy proxy, TransformateurJSONaModelData reader, Rafraichissable vueARafraichir) { |
22,8 → 32,8 |
this.vueARafraichir = vueARafraichir; |
} |
public boolean load(Object loadConfig, String recherche, boolean rafraichir) { |
this.rafraichir = rafraichir; |
public boolean load(Object loadConfig, String recherche, boolean doRafraichir) { |
this.doRafraichir = doRafraichir; |
if (fireEvent(BeforeLoad, new LoadEvent(this, loadConfig))) { |
lastConfig = loadConfig; |
62,12 → 72,43 |
public void onFailure(Throwable caught) { |
onLoadFailure(config, caught); |
if (!UtilString.isEmpty(caught.getMessage())) Debug.log("[FAILURE] ChargeurListe : message="+caught.getMessage()); |
else Debug.log("[FAILURE] ChargeurListe : message=NULL. Peut-être le modelType est-il mal paramétré ?"); |
} |
public void onSuccess(D result) { |
onLoadSuccess(config, result); |
if (rafraichir) { |
/* |
// SUPPRIMER LES PREFIXES |
if (result instanceof BasePagingLoadResult) { |
BasePagingLoadResult retourPaging = (BasePagingLoadResult)result; |
List retourListe = retourPaging.getData(); |
for(int i=0; i< retourListe.size(); i++) { |
if (retourListe.get(i) instanceof BaseModelData) { |
BaseModelData model = (BaseModelData)retourListe.get(i); |
Map<String, Object> a = model.getProperties(); |
Set<String> cles = a.keySet(); |
Iterator<String> it = cles.iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (a.get(cle) != null) { |
String cleObjet = ""; |
cleObjet = cle.replaceFirst("^[A-Za-z]+_", ""); |
model.set(cleObjet, a.get(cle)); |
model.remove(cle); |
} |
} |
} |
} |
}*/ |
// Cas où il faut rafraichir le combo manuellement |
// (cela sert pour charger la valeur initiale du combo au chargement d'un formulaire) |
if (doRafraichir) { |
Information info = new Information("selectionnerValeurCombo"); |
info.setDonnee(result); |
info.setMessage(""); |
/trunk/src/org/tela_botanica/client/composants/pagination/Proxy.java |
---|
13,9 → 13,10 |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.DataReader; |
import com.extjs.gxt.ui.client.data.MemoryProxy; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
public abstract class Proxy<D> extends MemoryProxy<D> implements Rafraichissable { |
public abstract class Proxy<D extends ModelData> extends MemoryProxy<D> implements Rafraichissable { |
protected Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
/trunk/src/org/tela_botanica/client/composants/pagination/TransformateurJSONaModelData.java |
---|
60,7 → 60,7 |
} |
@SuppressWarnings("unchecked") |
public D read(Object loadConfig, Object data) { |
public D read(Object loadConfig, Object data) { |
JSONObject jsonRoot = null; |
if (data instanceof JSONObject) { |
jsonRoot = (JSONObject) data; |
68,6 → 68,7 |
JSONArray root = (JSONArray) jsonRoot.get(modelType.getRoot()); |
int size = root.size(); |
ArrayList<ModelData> models = new ArrayList<ModelData>(); |
for (int i = 0; i < size; i++) { |
JSONObject obj = (JSONObject) root.get(i); |
ModelData model = newModelInstance(); |
127,6 → 128,7 |
if (modelType.getTotalName() != null) { |
totalCount = getTotalCount(jsonRoot); |
} |
return (D) createReturnData(loadConfig, models, totalCount); |
} |
/trunk/src/org/tela_botanica/client/composants/ChampComboBoxRechercheTempsReelPaginable.java |
---|
51,7 → 51,6 |
private ComboBox<ModelData> combo = null; |
private Proxy<?> proxy = null; |
private AsyncCallback callback = null; |
private TransformateurJSONaModelData<PagingLoadResult<ModelData>> reader = null; |
private ChargeurListe<PagingLoadResult<ModelData>> loader = null; |
123,7 → 122,7 |
public void handleEvent(FieldEvent fe) { |
// on vérifie que les touches enfoncées ne sont pas les flèches du clavier |
if (fe.getKeyCode() <= 38 || fe.getKeyCode() >= 40) { |
if (!fe.isNavKeyPress()) { |
recherche = combo.getRawValue(); |
plc.setLimit(limit); plc.setOffset(start); |
loader.setLimit(limit); loader.setOffset(start); |
190,7 → 189,7 |
} |
public void chargerValeurInitiale(String valeurInitiale, String champ) |
{ |
{ |
this.valeurInitiale = valeurInitiale; |
this.champValeurInitiale = champ; |
201,11 → 200,17 |
Rafraichir |
-----------------------------*/ |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("selectionnerValeurCombo")) { |
if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) Debug.log("ERREUR. Modele non trouvé"); |
if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) { |
Debug.log("ERREUR. Modele non trouvé."); |
Debug.log("Recherché : ["+champValeurInitiale+"]="+valeurInitiale); |
Debug.log("Le magasin contient "+combo.getStore().getCount()+" éléments. Les propriétés des modèles sont :"); |
for (int i=0; i<combo.getStore().getCount(); i++) { |
Debug.log(combo.getStore().getAt(i).getProperties().toString()); |
} |
} |
else combo.setValue(combo.getStore().findModel(champValeurInitiale, valeurInitiale)); |
} |
} |
/trunk/src/org/tela_botanica/client/composants/GrillePaginable.java |
---|
New file |
0,0 → 1,193 |
package org.tela_botanica.client.composants; |
import java.util.List; |
import java.util.Map; |
import org.tela_botanica.client.composants.pagination.ChargeurListe; |
import org.tela_botanica.client.composants.pagination.Proxy; |
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.composants.GrilleParametrable; |
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.data.BasePagingLoadConfig; |
import com.extjs.gxt.ui.client.data.LoadEvent; |
import com.extjs.gxt.ui.client.data.Loader; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.data.PagingLoadConfig; |
import com.extjs.gxt.ui.client.data.PagingLoadResult; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.GridEvent; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel; |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid; |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel; |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar; |
public class GrillePaginable<D extends ModelData> extends ContentPanel implements Rafraichissable, GrilleParametrable<D> { |
//-------------// |
// ATTRIBUTS // |
//-------------// |
// Pagination |
private int start = 0; |
private int limit = 50; |
// Récupération, stockage et pagination des données |
private ModelType modelType = null; |
private Proxy<D> proxy = null; |
private TransformateurJSONaModelData<PagingLoadResult<D>> reader = null; |
private ChargeurListe<PagingLoadResult<D>> loader = null; |
private ListStore<D> storeGrille = null; |
// Elements graphiques |
EditorGrid<D> grillePersonne = null; |
List<ColumnConfig> colonnes = null; |
ColumnModel modeleDeColonnes = null; |
//-------------// |
// METHODES // |
//-------------// |
/*-------------- |
Constructeur |
--------------*/ |
public GrillePaginable(ModelType modeltype, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) { |
// Récupération des paramètres |
this.modelType = modeltype; |
this.proxy = proxy; |
this.colonnes = colonnes; |
this.modeleDeColonnes = modeleDeColonnes; |
// Formatage du conteneur; |
this.setLayout(new FitLayout()); |
// Création des objets pour la récupération et la pagination des données |
BasePagingLoadConfig plc = new BasePagingLoadConfig(); |
plc.setLimit(limit); |
plc.setOffset(start); |
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType); |
loader = new ChargeurListe<PagingLoadResult<D>>(proxy, reader, this); |
loader.setLimit(plc.getLimit()); |
loader.setOffset(plc.getOffset()); |
loader.addListener(Loader.BeforeLoad, new Listener<LoadEvent>() { |
public void handleEvent(LoadEvent be) { |
} |
}); |
// Création de la grille |
creerGrille(); |
} |
/*------------ |
Accesseurs |
------------*/ |
public EditorGrid<D> getGrille() { |
return grillePersonne; |
} |
public ListStore<D> getStore() { |
return storeGrille; |
} |
public D getSelection() { |
return grillePersonne.getSelectionModel().getSelectedItem(); |
} |
/*----------------------------- |
Rafraichir |
-----------------------------*/ |
public void rafraichir(Object nouvellesDonnees) { |
} |
/*---------------- |
Méthode privées |
-----------------*/ |
private void creerGrille() { |
final PagingToolBar toolBar = new PagingToolBar(this.limit); |
toolBar.bind(loader); |
this.setBottomComponent(toolBar); |
storeGrille = new ListStore<D>(loader); |
storeGrille.addListener(Store.Add, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
} |
}); |
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
} |
}); |
storeGrille.addListener(Store.Update, new Listener<StoreEvent<D>>() { |
public void handleEvent(StoreEvent<D> ce) { |
} |
}); |
RowNumberer pluginLigneNumero = new RowNumberer(); |
GridSelectionModel<D> modeleDeSelection = new GridSelectionModel<D>(); |
grillePersonne = new EditorGrid<D>(storeGrille, modeleDeColonnes); |
grillePersonne.setHeight("100%"); |
grillePersonne.setBorders(true); |
grillePersonne.setSelectionModel(modeleDeSelection); |
grillePersonne.addPlugin(pluginLigneNumero); |
grillePersonne.getView().setForceFit(true); |
grillePersonne.setAutoExpandColumn("fmt_nom_complet"); |
grillePersonne.setStripeRows(true); |
grillePersonne.setBorders(true); |
grillePersonne.setStateful(true); |
grillePersonne.addListener(Events.Attach, new Listener<GridEvent<D>>() { |
public void handleEvent(GridEvent<D> be) { |
PagingLoadConfig config = new BasePagingLoadConfig(); |
config.setOffset(0); |
config.setLimit(50); |
Map<String, Object> state = grillePersonne.getState(); |
if (state.containsKey("offset")) { |
int offset = (Integer)state.get("offset"); |
int limit = (Integer)state.get("limit"); |
config.setOffset(offset); |
config.setLimit(limit); |
} |
if (state.containsKey("sortField")) { |
config.setSortField((String)state.get("sortField")); |
config.setSortDir(SortDir.valueOf((String)state.get("sortDir"))); |
} |
loader.load(config); |
} |
}); |
this.add(grillePersonne); |
} |
} |
/trunk/src/org/tela_botanica/client/composants/GrilleParametrable.java |
---|
New file |
0,0 → 1,7 |
package org.tela_botanica.client.composants; |
public interface GrilleParametrable<D> { |
} |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java |
---|
1,8 → 1,16 |
package org.tela_botanica.client.modeles.collection; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
public class CollectionAPersonne extends aDonnee { |
16,11 → 24,31 |
public CollectionAPersonne() { |
initialiser(new JSONObject()); |
} |
public CollectionAPersonne(JSONObject collectionAPersonneListe) { |
initialiser(collectionAPersonneListe); |
} |
public CollectionAPersonne(ModelData model) |
{ |
Map<String, Object> a = model.getProperties(); |
Set<String> cles = a.keySet(); |
Iterator<String> it = cles.iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
if (a.get(cle) != null) { |
String cleObjet = ""; |
cleObjet = cle.replaceFirst("^"+CollectionAPersonne.PREFIXE+"_", ""); |
cleObjet = cleObjet.replaceFirst("^"+Personne.PREFIXE+"_", ""); |
this.set(cleObjet, a.get(cle)); |
} |
} |
setPersonne(new Personne(model)); |
this.set("_etat_", a.get("_etat_")); |
} |
@Override |
protected String getPrefixe() { |
return PREFIXE; |
44,10 → 72,18 |
personneLiee = personne; |
initialiserChampsPourGrille(); |
if (personne != null) { |
setIdPersonne(personne.getId()); |
if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId()); |
} |
} |
public void setPersonnePourGrillePaginable(Personne personne) { |
personneLiee = personne; |
initialiserChampsPourGrillePaginable(); |
if (personne != null) { |
if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId()); |
} |
} |
private void initialiserChampsPourGrille() { |
set("_role_", getIdRole()); |
set("fmt_nom_complet", getPersonne().getNomComplet()); |
61,6 → 97,20 |
set("_etat_", ""); |
} |
public void initialiserChampsPourGrillePaginable() { |
set("ccap_id_role", getIdRole()); |
set("_role_", getIdRole()); |
set("cp_fmt_nom_complet", getPersonne().getNomComplet()); |
set("cp_nom", getPersonne().getNom()); |
set("cp_prenom", getPersonne().getPrenom()); |
set("cp_naissance_date", getPersonne().getNaissanceDate()); |
set("cp_naissance_lieu", getPersonne().getNaissanceLieu()); |
set("_deces_", getPersonne().getDeces()); |
set("cp_deces", getPersonne().getDeces()); |
set("cp_deces_date", getPersonne().getDecesDate()); |
set("cp_deces_lieu", getPersonne().getDecesLieu()); |
} |
// ID |
/** Génère un identifiant de CollectionAPersonne. |
* |
100,7 → 150,9 |
// ID RôLE |
public String getIdRole() { |
return renvoyerValeurCorrecte("id_role"); |
String role = renvoyerValeurCorrecte("id_role"); |
if (role != null && !UtilString.isEmpty(role)) return role; |
else return renvoyerValeurCorrecte("_role_"); |
} |
public void setIdRole(String ir) { |
set("id_role", ir); |
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java |
---|
1,5 → 1,7 |
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; |
14,6 → 16,7 |
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 CollectionAPersonneAsyncDao { |
28,42 → 31,96 |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String collectionId, final String roleId, final Integer seqId) { |
public void selectionner(final boolean paginationProgressive, final String collectionId, final String roleId, final String recherche, final int start, final int nbElements, final Integer seqId) { |
String[] parametres = {collectionId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
restrictions.put("orderby", "cp_nom"); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_collection_a_personne"); |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
CollectionAPersonneListe personnes = new CollectionAPersonneListe(reponse); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/ |
if (paginationProgressive) { |
/** DEFINITION DU TUPLE DE DEPART **/ |
restrictions.put("start", String.valueOf(start)); |
/** CONSTRUCTION DE LA REQUETE **/ |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
/** ENVOI DE LA REQUETE **/ |
rb.envoyerRequete(null, new JsonRestRequestCallback() |
{ |
/** RECEPTION DE LA REPONSE **/ |
public void surReponse(JSONValue responseValue) |
{ |
/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy. |
* On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/ |
if (seqId != null) { |
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPersonneAsyncDao > Liste paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(responseValue, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPersonneAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString()); |
vueARafraichir.rafraichir(responseValue); |
} |
} |
}); |
} |
/** GESTION DE LA REQUETE dans le cas d'une liste NON paginée progressive **/ |
else { |
/** DEFINITION DU TUPLE DE DEPART **/ |
restrictions.put("start", String.valueOf(start*nbElements)); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
JSONObject responseObject = responseValue.isObject(); |
Information info = new Information("liste_collection_a_personne"); |
if (responseObject != null) { |
// Si la réponse est un tableau, alors c'est une liste de collections qui a été retournée |
if (responseObject.get("collectionsAPersonne").isArray() != null) { |
final JSONArray reponse = responseObject.get("collectionsAPersonne").isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
CollectionAPersonneListe personnes = new CollectionAPersonneListe(reponse); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
vueARafraichir.rafraichir(info); |
} |
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée |
} else if (responseObject.get("collectionsAPersonne").isObject() != null) { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null); |
} |
} |
else { |
} else { |
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide |
if (collectionId == null) { |
// Dans le cas, où nous demandons toutes les relations Collection à Personne et qu'il n'y en a pas, nous retournons un message d'information |
Information info = new Information("liste_collection_a_personne"); |
info.setMessage("Aucune relations entre la collection et les personnes"); |
vueARafraichir.rafraichir(info); |
} |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (collectionId == null) { |
// Dans le cas, où nous demandons toutes les relations Collection à Personne et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucune relations entre la collection et les personnes"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
}); |
} |
} |
public void ajouter(String collectionId, CollectionAPersonne personnes) { |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java |
---|
1,5 → 1,7 |
package org.tela_botanica.client.modeles.structure; |
import java.util.HashMap; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.http.JsonRestRequestBuilder; |
14,6 → 16,7 |
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 StructureAPersonneAsyncDao { |
27,43 → 30,110 |
vueARafraichir = vueARafraichirCourrante; |
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId(); |
} |
public void selectionner(final String structureId, final String roleId, final Integer seqId) { |
public void selectionner(final boolean paginationProgressive, final String structureId, final String roleId, final String recherche, final int start, final int nbElements, final Integer seqId) { |
Debug.log("selectionner structure a personne"); |
/*Debug.log("paginationProgressive="+paginationProgressive); |
Debug.log("structureId="+structureId); |
Debug.log("roleId="+roleId); |
Debug.log("recherche="+recherche); |
Debug.log("nbElements="+nbElements); |
Debug.log("seqId="+seqId);*/ |
String[] parametres = {structureId, roleId}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_structure_a_personne"); |
if (responseValue != null) { |
// Si la requête est un succès, reception d'un tableau |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
StructureAPersonneListe personnel = new StructureAPersonneListe(reponse); |
info.setDonnee(0, personnel); |
// et on met à jour le demandeur des données |
if (seqId !=null) { |
Reponse reponseSequenceur = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseSequenceur); |
} else { |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
restrictions.put("orderby", "cp_nom"); |
/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/ |
if (paginationProgressive) { |
/** DEFINITION DU TUPLE DE DEPART **/ |
restrictions.put("start", String.valueOf(start)); |
/** CONSTRUCTION DE LA REQUETE **/ |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
/** ENVOI DE LA REQUETE **/ |
rb.envoyerRequete(null, new JsonRestRequestCallback() |
{ |
/** RECEPTION DE LA REPONSE **/ |
public void surReponse(JSONValue responseValue) |
{ |
/** Dans le cas d'une liste paginée, vueARafraichir est un objet Proxy. |
* On retourne l'objet JSON au proxy afin que ce soit lui qui le traite **/ |
if (seqId != null) { |
if (Mediateur.DEBUG) System.out.println("<-- StructureAPersonneAsyncDao > Liste paginée, retour au sequenceur"); |
Reponse reponseRequete = new Reponse(responseValue, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
if (Mediateur.DEBUG) System.out.println("<-- StructureAPersonneAsyncDao > Liste paginée, retour à "+vueARafraichir.getClass().toString()); |
vueARafraichir.rafraichir(responseValue); |
} |
} |
}); |
} |
/** GESTION DE LA REQUETE dans le cas d'une liste NON paginée progressive **/ |
else { |
/** DEFINITION DU TUPLE DE DEPART **/ |
restrictions.put("start", String.valueOf(start*nbElements)); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Information info = new Information("liste_structure_a_personne"); |
if (responseValue != null) { |
JSONObject responseObject = responseValue.isObject(); |
if (responseObject != null) { |
// Si la réponse est un tableau, alors c'est une liste de Structures qui a été retournée |
if (responseObject.get("structuresAPersonne").isArray() != null) { |
final JSONArray reponse = responseObject.get("structuresAPersonne").isArray(); |
// Transformation du tableau JSON réponse en ListeInstitution |
StructureAPersonneListe personnes = new StructureAPersonneListe(reponse); |
info.setDonnee(0, personnes); |
// et on met à jour le demandeur des données |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
vueARafraichir.rafraichir(info); |
} |
// Si la réponse est un objet, alors c'est une unique Structure qui a été retournée |
} else if (responseObject.get("structuresAPersonne").isObject() != null) { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null); |
} |
} |
} else { |
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide |
if (structureId == null) { |
// Dans le cas, où nous demandons toutes les relations Structure à Personne et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucun personnel"); |
vueARafraichir.rafraichir(info); |
} |
} else { |
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un talbeau JSON et vaut : "+responseValue.toString(), null); |
} |
} else { |
if (structureId == null) { |
// Dans le cas, où nous demandons toutes les relations Structure à Personne et qu'il n'y en a pas, nous retournons un message d'information |
info.setMessage("Aucun personnel"); |
vueARafraichir.rafraichir(info); |
} |
} |
} |
}); |
} |
}); |
} |
} |
public void ajouter(String structureId, StructureAPersonne personnel) { |
String postDonneesEncodees = construirePost(structureId, personnel); |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM); |
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAsyncDao.java |
---|
47,7 → 47,7 |
String[] parametres = {projetId, structureId, nom}; |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
restrictions.put("orderby", "cs_ville"); |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/Projet.java |
---|
5,6 → 5,7 |
import java.util.Set; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.util.Debug; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
108,8 → 109,8 |
public void setLicence(String valeur) { |
set("licence", valeur); |
} |
public String getLangue() { |
public String getLangueId() { |
return renvoyerValeurCorrecte("ce_langue"); |
} |
public void setLangue(String valeur) { |
116,6 → 117,7 |
set("ce_langue", valeur); |
} |
public String getIndexationHeure() { |
return renvoyerValeurCorrecte("indexation_heure"); |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java |
---|
120,11 → 120,11 |
public void selectionnerStructure() { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), null, currentPage, nbElementsPage, null); |
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), null, currentPage, nbElementsPage, null, false, null); |
} |
public void filtrerParNom(String nom) { |
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%", 0, nbElementsPage, null); |
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%", 0, nbElementsPage, null, false, null); |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java |
---|
10,6 → 10,7 |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.synchronisation.Reponse; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.UtilDAO; |
import com.extjs.gxt.ui.client.Registry; |
40,7 → 41,7 |
* est renvoyé à l'appelant |
* // FIXME : si la taille de la liste est supérieure à la limite du JREST (150), ce deuxieme mode ne fonctionne pas |
*/ |
public void selectionner(final boolean paginationProgressive, final String projetId, final String nomProjet, final int start, final int nbElements, final Integer seqId) { |
public void selectionner(final boolean paginationProgressive, final String projetId, final String nomProjet, final int start, final int nbElements, final String formatRetour, final Integer seqId) { |
String nom = (nomProjet == null) ? "%" : nomProjet+"%"; |
String[] param = {projetId, nom}; |
47,9 → 48,13 |
HashMap<String, String> restrictions = new HashMap<String, String>(); |
if (nbElements != -1) { |
if (nbElements != -1) { |
restrictions.put("limit", String.valueOf(nbElements)); |
} |
if ((formatRetour != null) && (formatRetour != "")) { |
restrictions.put("formatRetour", formatRetour); |
} |
/** GESTION DE LA REQUETE dans le cas d'une liste paginée progressive **/ |
if (paginationProgressive) { |
89,7 → 94,7 |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
public void surReponse(JSONValue responseValue) { |
if (responseValue != null) { |
JSONObject responseObject = responseValue.isObject(); |
104,8 → 109,8 |
projets = new ProjetListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir); |
projets.setTaillePage(nbElements); |
projets.setPageCourante(start); |
if (seqId != null) { |
if (seqId != null) { |
Reponse retourRequete = new Reponse(projets, seqId); |
vueARafraichir.rafraichir(retourRequete); |
} else { |
112,7 → 117,7 |
vueARafraichir.rafraichir(projets); |
} |
// Si la réponse est un objet, alors c'est un unique projet qui a été retournée |
// Si la réponse est un objet, alors c'est un unique projet qui a été retourné |
} else if (responseObject.get("projets").isObject() != null) { |
JSONObject reponse = responseObject.get("projets").isObject(); |
120,12 → 125,12 |
Information info = new Information("selection_projet"); |
info.setDonnee(0, projet); |
if (seqId != null) { |
if (seqId != null) { |
Reponse reponseRequete = new Reponse(info, seqId); |
vueARafraichir.rafraichir(reponseRequete); |
} |
else { |
else { |
vueARafraichir.rafraichir(info); |
} |
} |
/trunk/src/org/tela_botanica/client/synchronisation/Sequenceur.java |
---|
29,10 → 29,12 |
// Retourne le numéro du séquenceur |
public int lancerRequeteSynchrone(Rafraichissable vueARafraichir) { |
if (numeroSequence == 0) { |
mediateur.activerChargement("Chargement en cours... Veuillez patienter"); |
} |
if (Mediateur.DEBUG_CHARGEMENT) System.out.println("[CHARGEMENT] lancerRequeteSynchrone("+vueARafraichir.getClass().getName()+")"); |
//if (numeroSequence == 0) { |
mediateur.activerChargement(this, "Chargement en cours... Veuillez patienter"); |
//} |
numeroSequence++; |
if (Mediateur.DEBUG) System.out.println("==> Sequenceur : Envoi requete n°" + numeroSequence); |
Requete requete = new Requete(vueARafraichir, numeroSequence); |
43,9 → 45,9 |
//Offrir la possibilité d'enfiler (=mettre à la fin d'une file d'attente) un rafraichissement dont on a déjà le retour |
public int enfilerRafraichissement(Rafraichissable vueARafraichir, Object nouvellesDonnees) { |
if (numeroSequence == 0) { |
mediateur.activerChargement("Chargement en cours... Veuillez patienter"); |
} |
//if (numeroSequence == 0) { |
mediateur.activerChargement(this, "Chargement en cours... Veuillez patienter"); |
//} |
numeroSequence++; |
if (Mediateur.DEBUG) System.out.println("|| Sequenceur : Empiler n°" + numeroSequence); |
Requete requete = new Requete(vueARafraichir, numeroSequence); |
52,7 → 54,7 |
Reponse reponse = new Reponse(nouvellesDonnees, numeroSequence); |
requetes.put(numeroSequence, requete); |
rafraichir(reponse); |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
return numeroSequence; |
} |
61,13 → 63,13 |
try { |
Reponse reponse = (Reponse) nouvellesDonnees; |
if (Mediateur.DEBUG) System.out.println("<== Sequenceur : Réception d'une réponse, n°" + reponse.obtenirNumeroSequence() + ", marqueur retour " + marqueurRetour); |
if (reponse.obtenirNumeroSequence() == marqueurRetour) { |
// Si le numéro de séquence du retour correspond au marqueur, on rafraichit |
Requete requete = requetes.get(marqueurRetour); |
if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+reponse.obtenirNumeroSequence()+" à "+requete.getVueARafraichir().getClass().toString()); |
mediateur.desactiverChargement(this); |
requete.rafraichir(reponse.obtenirRetour()); |
mediateur.desactiverChargement(); |
requetes.remove(marqueurRetour); |
marqueurRetour++; |
avancerSequence(); |
81,7 → 83,7 |
System.out.println(" Le séquenceur ne peut recevoir que des Reponse"); |
System.out.println(" > nouvellesDonnees = "+nouvellesDonnees.getClass().toString()); |
} |
mediateur.desactiverChargement(); |
mediateur.desactiverChargement(this); |
} |
} |
95,8 → 97,8 |
Requete premiereRequete = requetes.get(marqueurRetour); |
if (premiereRequete!=null && premiereRequete.hasResponse()) { |
if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+premiereRequete.obtenirReponse().obtenirNumeroSequence()+" à "+premiereRequete.getVueARafraichir().getClass().toString()); |
premiereRequete.rafraichir(); |
mediateur.desactiverChargement(); |
premiereRequete.rafraichir(); |
mediateur.desactiverChargement(this); |
requetes.remove(marqueurRetour); |
marqueurRetour++; |
avancerSequence(); |