Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1512 → Rev 1513

/trunk/src/org/tela_botanica/client/configuration
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/configuration:r11-906
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/configuration:r1417-1511
/trunk/src/org/tela_botanica/client/ComposantClass.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/ComposantClass.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/ComposantClass.java:r1417-1511
/trunk/src/org/tela_botanica/client/util
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/util:r11-147
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/util:r1417-1511
/trunk/src/org/tela_botanica/client/http
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/http:r11-462
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/http:r1417-1511
/trunk/src/org/tela_botanica/client/i18n/Constantes.properties
565,7 → 565,9
commentaireMessageTitre = Veuillez saisir un titre pour la note !
 
# Pour personne : Publis liées
personneOngletPublication = Publications
personnePublication = dont la personne est le sujet
typeRelationPersonne = Relation
 
# Journal
titreJournal = Journal de l'application
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/i18n/Constantes.properties:r1417-1511
Merged /trunk/src/org/tela_botanica/client/i18n/Constantes.properties:r11-119
/trunk/src/org/tela_botanica/client/i18n/ErrorMessages.properties
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/i18n/ErrorMessages.properties:r1417-1511
Merged /trunk/src/org/tela_botanica/client/i18n/ErrorMessages.properties:r11-464
/trunk/src/org/tela_botanica/client/i18n/Constantes.java
552,6 → 552,8
 
//Pour personne: publications liés
String personnePublication();
String personneOngletPublication();
String typeRelationPersonne();
String tousProjets();
// Journal
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/i18n/Constantes.java:r11-119
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/i18n/Constantes.java:r1417-1511
/trunk/src/org/tela_botanica/client/i18n/ErrorMessages.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/i18n/ErrorMessages.java:r11-464
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/i18n/ErrorMessages.java:r1417-1511
/trunk/src/org/tela_botanica/client/i18n
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/i18n:r11-119
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/i18n:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r11-686
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/NavigationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/NavigationVue.java:r11-981
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/NavigationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java
3,6 → 3,7
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
792,14 → 793,7
}
String dateFondation = identification.getAnneeOuDateFondation();
if (!dateFondation.equals("")) {
if (dateFondation.endsWith("00-00")) {
dateFondationChp.setValue(dateFondation.substring(0, 4));
} else {
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation);
dateFondationChp.setValue(DateTimeFormat.getFormat("dd/MM/yyyy").format(date));
}
}
dateFondationChp.setValue(dateFondation);
descriptionChp.setValue(identification.getDescription());
conditionAccesChp.setValue(identification.getConditionAcces());
2033,8 → 2027,6
}
public void rafraichir(Object nouvellesDonnees) {
try {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
2052,11 → 2044,10
controlerFermeture();
}
public void rafraichirInformation(Information info) {
public void rafraichirInformation(Information info) {
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
 
if (info.getType().equals("modif_structure")) {
InfoLogger.display("Modification d'une institution", info.toString());
2083,10 → 2074,15
InfoLogger.display("Modification d'une institution", info.toString());
String titre = i18nC.titreModifFormStructurePanneau();
if (info.getDonnee(0) != null) {
identification = (Structure) info.getDonnee(0);
if (onglets.getSelectedItem().equals(identificationOnglet)) {
peuplerStructureIdentification();
try {
identification = (Structure) info.getDonnee(0);
if (onglets.getSelectedItem().equals(identificationOnglet)) {
peuplerStructureIdentification();
}
} catch(Exception e) {
GWT.log("Problème de cast. "+info.getDonnee(0)+" ne peut être casté en Structure", e);
}
// Composition du titre
titre += " - ID : "+identification.getId();
}
2270,4 → 2266,5
private void initialiserGrillePersonnelEnModification() {
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE, null);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure:r1417-1511
/trunk/src/org/tela_botanica/client/vues/DetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/DetailVue.java:r11-452,929-935
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/DetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FenetreJournal.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FenetreJournal.java:r11-1208
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreJournal.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r11-984
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java
45,6 → 45,7
private boolean listeIndexationFrequenceChargee = false;
private ValeurListe valeurListeLangue = null;
private boolean listeLangueChargee = false;
private boolean displayUrl = true;
 
private Sequenceur sequenceur;
52,8 → 53,6
super(mediateurCourant);
this.sequenceur = sequenceur;
initialiserTousLesTpl();
panneauPrincipal = new ContentPanel();
panneauPrincipal.setLayout(new FitLayout());
panneauPrincipal.setHeaderVisible(false);
96,8 → 95,12
" <span class='{css_label}'>{i18n_nom} :</span> {nom}<br />"+
" <span class='{css_label}'>{i18n_abreviation} :</span> {abreviation}<br />"+
" <span class='{css_label}'>{i18n_resume} :</span> {resume}<br />"+
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+
" <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />"+
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />";
if (projet.getUrl() != null && !UtilString.isEmpty(projet.getUrl()))
contenuTpl += " <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />";
contenuTpl +=
" </div>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_complement}</h2>"+
230,6 → 233,9
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'un Projet");
projet = (Projet) nouvellesDonnees;
projetChargementOk = true;
initialiserTousLesTpl();
} else if (nouvellesDonnees instanceof ProjetListe) {
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'une ProjetListe");
projets = (ProjetListe) nouvellesDonnees;
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r11-934
/trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet:r1417-1511
/trunk/src/org/tela_botanica/client/vues/MenuVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/MenuVue.java:r11-443
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/MenuVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/accueil
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/accueil:r11-911
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/accueil:r1417-1511
/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r11-593
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java
1,6 → 1,7
package org.tela_botanica.client.vues.publication;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
7,9 → 8,12
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.ProxyPersonnes;
import org.tela_botanica.client.composants.pagination.ProxyPersonnesAPublication;
import org.tela_botanica.client.composants.pagination.ProxyProjets;
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyStructures;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
35,6 → 39,7
 
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.event.BaseEvent;
66,6 → 71,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.RowExpander;
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.layout.FlowLayout;
114,7 → 120,7
private LayoutContainer zoneHaut, zoneBas;
private ToolBar barreOutils = null;
private EditorGrid<PublicationAPersonne> grilleAuteurs;
private GrillePaginable<ModelData> grilleAuteurs;
private ChampComboBoxRechercheTempsReelPaginable personnesSaisiesComboBox = null;
private Button personnesBoutonSupprimer = null;
private Button personnesBoutonModifier = null;
176,7 → 182,6
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
mediateurCourrant.selectionnerPublication(this, publicationId, sequenceur);
mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR, sequenceur);
sequenceur.enfilerRafraichissement(this, new Information("chargement_modifier_ok"));
}
}
244,26 → 249,30
Button bouton = new Button();
bouton.setIcon(Images.ICONES.arrowUp());
bouton.setEnabled(false);
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
if (grilleAuteurs.getGrille().getSelectionModel().getSelectedItem() != null) {
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem();
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(pap);
int newIndex = index;
newIndex--;
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
int newIndex = index - 1; // l'auteur monte dans dans la liste donc son ordre diminue
int newOrdre = newIndex + 1; // parce que index commence à zéro
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
// déclenchent et posent problème
changeOrderMarker = true;
pap.setOrdreAuteurs(String.valueOf(newIndex+1));
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index-1);
int newIndexPapSwitch = index + 1;
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch));
grilleAuteurs.getStore().update(papSwitch);
grilleAuteurs.getStore().remove(pap);
grilleAuteurs.getStore().insert(pap, newIndex);
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index-1);
int newOrdrePapSwitch = newOrdre + 1;
 
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
grilleAuteurs.getStore().update(publiAPersonneSwitch);
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
changeOrderMarker = false;
grilleAuteurs.getSelectionModel().select(newIndex, true);
281,22 → 290,26
public void componentSelected(ButtonEvent ce) {
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem();
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(pap);
int newIndex = index;
newIndex++;
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
int newIndex = index + 1; // l'auteur monte dans dans la liste donc son ordre diminue
int newOrdre = newIndex + 1; // parce que index commence à zéro
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
// déclenchent et posent problème
changeOrderMarker = true;
pap.setOrdreAuteurs(String.valueOf(newIndex+1));
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index+1);
int newIndexPapSwitch = index + 1;
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch));
grilleAuteurs.getStore().update(papSwitch);
grilleAuteurs.getStore().remove(pap);
grilleAuteurs.getStore().insert(pap, newIndex);
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index+1);
int newOrdrePapSwitch = index + 1;
 
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
grilleAuteurs.getStore().update(publiAPersonneSwitch);
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
changeOrderMarker = false;
grilleAuteurs.getSelectionModel().select(newIndex, true);
323,7 → 336,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne();
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne();
if (personneSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
339,7 → 352,7
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
String personneId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne();
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne();
personneId = personneSaisieSelectionnee.getId();
}
393,7 → 406,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne personneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
PublicationAPersonne personneSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false);
if (personneSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
447,8 → 460,8
if (personnesSaisiesComboBox.getValeur() instanceof ModelData) {
// N'ajouter l'auteur que s'il n'est pas déjà présent dans la grille et dans les valeurs initiales
Personne personneSaisieSelectionnee = new Personne(personnesSaisiesComboBox.getValeur());
PublicationAPersonne pap = new PublicationAPersonne();
pap.setPersonne(personneSaisieSelectionnee);
PublicationAPersonne pap = new PublicationAPersonne(false);
pap.setPersonne(personneSaisieSelectionnee, true);
pap.setOrdreAuteurs(String.valueOf(grilleAuteurs.getStore().getCount()+1));
if (modeDeCreation != Formulaire.MODE_AJOUTER) {
pap.setPublicationLiee(publication);
521,108 → 534,103
}
}
private EditorGrid<PublicationAPersonne> creerGrilleAuteurs() {
private GrillePaginable<ModelData> creerGrilleAuteurs() {
ListStore<PublicationAPersonne> storeGrilleAuteurs = new ListStore<PublicationAPersonne>();
// ModelType
ModelType modelTypePersonnesAPublication = new ModelType();
modelTypePersonnesAPublication.setRoot("publicationsAPersonne");
modelTypePersonnesAPublication.setTotalName("nbElements");
modelTypePersonnesAPublication.addField("cpuap_id_personne");
modelTypePersonnesAPublication.addField("cpuap_id_publication");
modelTypePersonnesAPublication.addField("cpuap_id_role");
modelTypePersonnesAPublication.addField("cpuap_ordre");
modelTypePersonnesAPublication.addField("cp_id_personne");
modelTypePersonnesAPublication.addField("cp_fmt_nom_complet");
modelTypePersonnesAPublication.addField("cp_nom");
modelTypePersonnesAPublication.addField("cp_prenom");
modelTypePersonnesAPublication.addField("cp_id_personne");
modelTypePersonnesAPublication.addField("cp_code_postal");
modelTypePersonnesAPublication.addField("cp_ville");
modelTypePersonnesAPublication.addField("cp_truk_courriel");
// ADD Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
if (!changeOrderMarker) {
// Bug de GXT : Pour récupérer l'élément modifié, j'ai dû faire comme suit
ListStore<PublicationAPersonne> auteursStore = (ListStore<PublicationAPersonne>)ce.getSource();
PublicationAPersonne pap = auteursStore.getAt(ce.getIndex());
// Lorsque l'on reçoit une liste d'auteurs, on leur affecte l'état "modifié", puis
// on les ajoute au magasin mais puisque chaque élément ajouté au magasin déclenche
// l'évènement Store.Add, on est obligé de vérifier si l'objet n'a pas déjà un état
// sinon l'évènement écrase l'état précédent
if (pap.get("_etat_") == null) pap.set("_etat_", aDonnee.ETAT_AJOUTE);
// Proxy
ProxyPersonnesAPublication<ModelData> proxyPersonnesAPublication = new ProxyPersonnesAPublication<ModelData>(null, publicationId);
 
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
ColumnConfig columnOrdre = new ColumnConfig("_ordre_", i18nC.ordre(), 15);
colonnes.add(columnOrdre);
colonnes.add(new ColumnConfig("cp_fmt_nom_complet", i18nC.personneNomComplet(), 150));
colonnes.add(new ColumnConfig("cp_code_postal", i18nC.personneCodePostal(), 150));
colonnes.add(new ColumnConfig("cp_ville", i18nC.personneVille(), 75));
colonnes.add(new ColumnConfig("cp_truk_courriel", i18nC.personneCourriel(), 75));
// Champs de traitement
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_ordre_", "cpuap_ordre");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<ModelData>() {
public void selectionChanged(SelectionChangedEvent<ModelData> se) {
ModelData papSelectionnee = grilleAuteurs.getGrille().getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
if (index >= 1) boutonAuteurUp.setEnabled(true);
else boutonAuteurUp.setEnabled(false);
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true);
else boutonAuteurDown.setEnabled(false);
}
});
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
// Grille
// ATTENTION : le constructure de cette grille est à vérifier!
final GrillePaginable<ModelData> grilleAuteurs = new GrillePaginable<ModelData>(modelTypePersonnesAPublication, virtualFields, proxyPersonnesAPublication, colonnes, modeleDeColonnes);
grilleAuteurs.getGrille().setHeight("100%");
grilleAuteurs.getGrille().setBorders(true);
grilleAuteurs.getGrille().setSelectionModel(modeleDeSelection);
grilleAuteurs.getGrille().getView().setForceFit(true);
grilleAuteurs.getGrille().setAutoExpandColumn("fmt_nom_complet");
grilleAuteurs.getGrille().setStripeRows(true);
grilleAuteurs.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grilleAuteurs.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
actualiserEtatBoutonsBarreOutils();
}
}
});
// REMOVE Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
grilleAuteurs.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
actualiserEtatBoutonsBarreOutils();
}
}
});
// UPDATE Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
grilleAuteurs.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
if (ce.getRecord().isModified("ordre")) {
/** s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin
de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés **/
if (ce.getRecord().isModified("_ordre_")) {
// s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin
// de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés
if (ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
// ... do nothing
/** s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut
ajouter cet auteur à la liste des auteurs modifiés **/
// s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut
// ajouter cet auteur à la liste des auteurs modifiés
} else {
if (ce.getModel() instanceof PublicationAPersonne) {
PublicationAPersonne pap = ce.getModel();
auteursModifies.put(pap.getId(), pap);
}
PublicationAPersonne pap = new PublicationAPersonne(ce.getModel(), false);
auteursModifies.put(pap.getId(), pap);
}
}
}
}
});
});
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
ColumnConfig columnOrdre = new ColumnConfig("ordre", i18nC.ordre(), 15);
/*
final TextField<String> ordre = new TextField<String>();
ordre.setValidator(new Validator(){
public String validate(Field<?> field, String value) {
if (value.matches("[0-9]*")) return null;
else return "[Erreur] Le champ 'ordre' doit être un nombre entier.";
}
});
*/
 
colonnes.add(columnOrdre);
colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
colonnes.add(new ColumnConfig("code_postal", i18nC.personneCodePostal(), 150));
colonnes.add(new ColumnConfig("ville", i18nC.personneVille(), 75));
colonnes.add(new ColumnConfig("truk_courriel", i18nC.personneCourriel(), 75));
 
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
EditorGrid<PublicationAPersonne> grilleDesAuteurs = new EditorGrid<PublicationAPersonne>(storeGrilleAuteurs, modeleDeColonnes);
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<PublicationAPersonne>() {
public void selectionChanged(SelectionChangedEvent<PublicationAPersonne> se) {
PublicationAPersonne papSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
if (index >= 1) boutonAuteurUp.setEnabled(true);
else boutonAuteurUp.setEnabled(false);
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true);
else boutonAuteurDown.setEnabled(false);
}
});
grilleDesAuteurs.setHeight("100%");
grilleDesAuteurs.setBorders(true);
grilleDesAuteurs.setSelectionModel(modeleDeSelection);
grilleDesAuteurs.getView().setForceFit(true);
grilleDesAuteurs.setAutoExpandColumn("fmt_nom_complet");
grilleDesAuteurs.setStripeRows(true);
grilleDesAuteurs.setTrackMouseOver(true);
return grilleDesAuteurs;
return grilleAuteurs;
}
private void genererTitreFormulaire() {
754,23 → 762,23
datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
editionFieldset.add(datePublicationChp, new FormData(40, 0));
/*****************************/
/** Champ '' **/
/*****************************/
/*********************************/
/** Champ 'Tome' **/
/*********************************/
tomeChp = new TextField<String>();
tomeChp.setFieldLabel("Série de la revue ou tome");
editionFieldset.add(tomeChp, new FormData(75, 0));
 
/*****************************/
/** Champ '' **/
/*****************************/
/*************************************/
/** Champ 'Fascicule' **/
/*************************************/
fasciculeChp = new TextField<String>();
fasciculeChp.setFieldLabel("Fascicule de la revue");
editionFieldset.add(fasciculeChp, new FormData(75, 0));
 
/*****************************/
/** Champ '' **/
/*****************************/
/*********************************/
/** Champ 'Pages' **/
/*********************************/
pagesChp = new TextField<String>();
pagesChp.setFieldLabel("Pages");
pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'interrogation '?' dans le cas d'une donnée inconnue)");
878,15 → 886,18
}
private void formaterOrdreAuteurs() {
ListStore<PublicationAPersonne> store = grilleAuteurs.getStore();
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels();
ListStore<ModelData> store = grilleAuteurs.getStore();
List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator();
Iterator<ModelData> itAuteurs = auteurs.iterator();
while (itAuteurs.hasNext()) {
PublicationAPersonne pap = itAuteurs.next();
int ordre = store.indexOf(pap) + 1;
ModelData selection = itAuteurs.next();
PublicationAPersonne pap = new PublicationAPersonne(selection, false);
int ordre = store.indexOf(selection) + 1;
if (pap.getOrdreAuteurs() != String.valueOf(ordre)) {
pap.setOrdreAuteurs(String.valueOf(ordre));
pap.setOrdreAuteurs(String.valueOf(ordre));
auteursModifies.put(pap.getId(), pap);
}
}
971,13 → 982,13
private String construireIntituleAuteur() {
String intituleAuteur = "";
// ranger par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne
grilleAuteurs.getStore().sort("ordre", SortDir.ASC);
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels();
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator();
// rangé par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne
grilleAuteurs.getStore().sort("_ordre_", SortDir.ASC);
List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
Iterator<ModelData> itAuteurs = auteurs.iterator();
while (itAuteurs.hasNext()) {
Personne personneCourante = itAuteurs.next().getPersonne();
Personne personneCourante = new PublicationAPersonne(itAuteurs.next(), false).getPersonne();
intituleAuteur += personneCourante.getNom().toUpperCase() + " " + personneCourante.getPrenom();
if (itAuteurs.hasNext()) {
intituleAuteur+=", ";
1110,12 → 1121,17
return valeur;
}
private void setValeurComboProjets() {
if (projetsCombo.getStore() != null ) {
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) {
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", publication.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) && publication != null) {
if (projetsCombo.getCombo().getStore() != null
&& publication != null
&& publication.getIdProjet() != null
&& !UtilString.isEmpty(publication.getIdProjet())) {
projetsCombo.chargerValeurInitiale(publication.getIdProjet(), "cpr_id_projet");
}
} else if (mode.equals(Formulaire.MODE_AJOUTER)) {
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId()));
} else {
projetsCombo.getCombo().setValue(null);
}
}
1125,8 → 1141,6
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Publication) {
publication = (Publication) nouvellesDonnees;
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof Information) {
rafraichirInformation((Information) nouvellesDonnees);
} else {
1134,23 → 1148,9
}
}
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
Iterator<String> it = auteurs.keySet().iterator();
while (it.hasNext()) {
PublicationAPersonne auteur = auteurs.get(it.next());
auteur.set("_etat_", aDonnee.ETAT_MODIFIE);
auteursInitialListe.put(auteur.getId(), auteur);
}
private void rafraichirInformation(Information info) {
grilleAuteurs.getStore().removeAll();
grilleAuteurs.getStore().add(auteursInitialListe.toList());
grilleAuteurs.getStore().sort("ordre", SortDir.ASC);
layout();
}
private void rafraichirInformation(Information info) {
String type = info.getType();
if (type.equals("auteurs_enregistres")) {
miseAJourAuteursInitialListe();
initialiserAuteurs();
1179,7 → 1179,7
if (modeDeCreation != Formulaire.MODE_AJOUTER) pap.setPublicationLiee(publication);
// supprimer l'entrée précédente
PublicationAPersonne personneDansGrille = grilleAuteurs.getStore().findModel("id_personne", personne.getId());
PublicationAPersonne personneDansGrille = new PublicationAPersonne(grilleAuteurs.getStore().findModel("cp_id_personne", personne.getId()), false);
int index = grilleAuteurs.getStore().indexOf(personneDansGrille);
grilleAuteurs.getStore().remove(personneDansGrille);
1199,7 → 1199,7
} else {
InfoLogger.display("Ajout d'une publication", info.toString());
}
}
}
}
private void repandreRafraichissement() {
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/publication:r11-934
/trunk/src/org/tela_botanica/client/vues/ContenuVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/ContenuVue.java:r11-443,923-935
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/ContenuVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r11-774
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/PopupChargement.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/PopupChargement.java:r11-334
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/PopupChargement.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/EnteteVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/EnteteVue.java:r11-443
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/EnteteVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/StatutVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/StatutVue.java:r11-442
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/StatutVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FiltreVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FiltreVue.java:r11-981
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FiltreVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/Formulaire.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/Formulaire.java:r11-636,649-686
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/Formulaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
1,6 → 1,7
package org.tela_botanica.client.vues.personne;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
7,7 → 8,12
 
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.ProxyCollectionAPublication;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
29,6 → 35,8
import org.tela_botanica.client.vues.publication.PublicationForm;
 
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.data.ModelData;
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;
45,7 → 53,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
70,16 → 80,18
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<PublicationAPersonne> grille;
private GrillePaginable<ModelData> grille;
private PublicationAPersonneListe publicationsAjoutees = null;
private PublicationAPersonneListe publicationsSupprimees = null;
private ComboBox<Publication> publicationsSaisiesComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
private ComboBox<Valeur> typeRelationCombo = null;
private List<Valeur> roles = null;
private PublicationAPersonneListe listePublicationsLiees = new PublicationAPersonneListe();
boolean personneRecue = false;
boolean rolesRecus = false;
private FenetreForm fenetreFormulaire = null;
86,56 → 98,36
public PersonneFormPublication(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setId("publication");
setText(Mediateur.i18nC.collectionPublication());
setText(Mediateur.i18nC.personneOngletPublication());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
setLayout(new FitLayout());
barreOutils = creerBarreOutilsGrille();
panneauPrincipal.setTopComponent(barreOutils);
panneauPrincipal.setLayout(new FitLayout());
grille = creerGrille();
panneauPrincipal.add(grille);
add(panneauPrincipal);
initialiser();
}
private void initialiser() {
 
// Remise à zéro des modification dans la liste des auteurs
idGenere = 1;
publicationsAjoutees = new PublicationAPersonneListe();
publicationsSupprimees = new PublicationAPersonneListe();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
}
public void mettreAJourPersonne() {
public void mettreAJourPersonne() {
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee;
 
//Boucle sur les role pour trouver les publication à personne
 
// FIXME !
//-------------------
// Author : Cyprien
//-------------------
// J'ai rajouté le test (toString()!="") parce que bien que l'objet personneSelectionne soit vide, (personneSelectionnee!=null) retournait
// tout de meme VRAI
// Mais le vrai problème, c'est que personneSelectionne puisse être nul ! personneSelectionne devrait toujours etre affecté à quelqu'un.
// De plus, il y a un étrange comportement lorsque l'on clique sur "modifier" une personne : je ne sais pas pourquoi mais les opérations
// s'effectuent deux fois au lieu d'une, c-a-d que le formulaire lance deux fois l'operation rafraichir au lieu d'une ... et l'opération
// rafraichir lance à son tour de nombreuses opérations qui en conséquence sont effectuées deux fois au lieu d'une
if ((roles != null) && (personneSelectionnee!=null) && (!personneSelectionnee.toString().equals(""))) {
 
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles, null);
}
}
private ContentPanel creerPanneauContenantGrille() {
ContentPanel panneau = new ContentPanel();
panneau.setHeading(i18nC.collectionPublication()+" " + i18nC.personnePublication());
panneau.setHeading(i18nC.personneOngletPublication()+" " + i18nC.personnePublication());
panneau.setIcon(Images.ICONES.table());
panneau.setLayout(new FitLayout());
panneau.setFrame(true);
189,7 → 181,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
205,7 → 197,7
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
String publicationId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
PublicationAPersonne publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
PublicationAPersonne publicationSaisiSelectionne = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false);
publicationId = publicationSaisiSelectionne.getIdPublication();
}
259,7 → 251,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
PublicationAPersonne publicationSaisieSelectionnee = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false);
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
290,35 → 282,62
}
}
private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() {
ComboBox<Publication> comboBox = new ComboBox<Publication>();
comboBox.setWidth(400);
comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("fmt_nom_complet");
comboBox.setStore(publicationsSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
}
ModelType modelTypePublications = new ModelType();
modelTypePublications.setRoot("publications");
modelTypePublications.setTotalName("nbElements");
modelTypePublications.addField("ccapu_id_personne");
modelTypePublications.addField("ccapu_id_publication");
modelTypePublications.addField("cpu_id_publication");
modelTypePublications.addField("cpu_fmt_nom_complet");
modelTypePublications.addField("cpu_titre");
modelTypePublications.addField("cpu_nom");
modelTypePublications.addField("cpu_fmt_auteur");
modelTypePublications.addField("cpu_indication_nvt");
modelTypePublications.addField("cpu_truk_pages");
modelTypePublications.addField("cpu_fascicule");
modelTypePublications.addField("cpu_date_parution");
modelTypePublications.addField("cpu_ce_truk_editeur");
modelTypePublications.addField("cpu_ce_projet");
modelTypePublications.addField("cpu_collection");
String displayNamePublications = "cpu_fmt_nom_complet";
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications);
publicationsCombo.getCombo().setTabIndex(tabIndex++);
publicationsCombo.getCombo().setForceSelection(true);
 
publicationsCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) {
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
ajouterDansGrille(publicationSaisieSelectionne);
publicationsSaisiesComboBox.setValue(null);
publicationsSaisiesComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return publicationsCombo;
}
private void ajouterDansGrille(Publication publication) {
328,7 → 347,7
private void ajouterDansGrille(Publication publication, int index) {
if (publication != null) {
if (!listePublicationsLiees.containsKey(publication.getId())) {
PublicationAPersonne publicationLiee = new PublicationAPersonne();
PublicationAPersonne publicationLiee = new PublicationAPersonne(false);
publicationLiee.setPersonne(personneSelectionnee);
publicationLiee.setPublicationLiee(publication);
publicationLiee.setIdPublication(publication.getId());
335,12 → 354,12
 
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
listePublicationsLiees.put(publication.getId(), publicationLiee);
 
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(publicationLiee, 0);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
} else {
InfoLogger.display("Information", "La publication choisie existe déjà dans la liste.");
}
370,44 → 389,127
}
}
 
private EditorGrid<PublicationAPersonne> creerGrille() {
private GrillePaginable<ModelData> creerGrille() {
ListStore<PublicationAPersonne> storeGrille = new ListStore<PublicationAPersonne>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
GrillePaginable<ModelData> grillePublications = null;
// ModelType
ModelType modelTypePublicationAPersonne = new ModelType();
modelTypePublicationAPersonne.setRoot("publicationsAPersonne");
modelTypePublicationAPersonne.setTotalName("nbElements");
modelTypePublicationAPersonne.addField("cpuap_id_personne");
modelTypePublicationAPersonne.addField("cpuap_id_publication");
modelTypePublicationAPersonne.addField("cpuap_id_role");
modelTypePublicationAPersonne.addField("cpu_id_publication");
modelTypePublicationAPersonne.addField("cpu_fmt_auteur");
modelTypePublicationAPersonne.addField("cpu_titre");
modelTypePublicationAPersonne.addField("cpu_collection");
modelTypePublicationAPersonne.addField("cpu_ce_truk_editeur");
modelTypePublicationAPersonne.addField("cpu_date_parution");
modelTypePublicationAPersonne.addField("cpu_fascicule");
modelTypePublicationAPersonne.addField("cpu_truk_pages");
modelTypePublicationAPersonne.addField("cpu_indication_nvt");
// Proxy
ProxyPublicationsAPersonne<ModelData> proxyPublicationsAPersonne = new ProxyPublicationsAPersonne<ModelData>(null, null, null);
 
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(expansionPlugin);
colonnes.add(numeroPlugin);
colonnes.add(creerColonneTypeRelation());
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50));
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_editeur_", "cpu_ce_truk_editeur");
virtualFields.put("_annee_", "cpu_date_parution");
virtualFields.put("_role_", "cpuap_id_role");
virtualFields.put("_etat_", "");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
// Grille
grillePublications = new GrillePaginable<ModelData>(modelTypePublicationAPersonne, virtualFields, proxyPublicationsAPersonne, colonnes, modeleDeColonnes);
grillePublications.getGrille().setBorders(true);
grillePublications.getGrille().setSelectionModel(modeleDeSelection);
grillePublications.getGrille().addPlugin(expansionPlugin);
grillePublications.getGrille().addPlugin(numeroPlugin);
grillePublications.getGrille().getView().setForceFit(true);
grillePublications.getGrille().setAutoExpandColumn("titre");
grillePublications.getGrille().setStripeRows(true);
grillePublications.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (ce.getModel().get("_role_") != null && 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 grillePublications;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
PublicationAPersonne pap = new PublicationAPersonne(model, true);
String editeur = pap.getPublicationLiee().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
};
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
editeurColonne.setRenderer(editeurRendu);
return editeurColonne;
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
PublicationAPersonne pap = new PublicationAPersonne(model, true);
String annee = pap.getPublicationLiee().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
};
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
datePublicationColonne.setRenderer(datePublicationRendu);
return datePublicationColonne;
}
private ColumnConfig creerColonneTypeRelation() {
typeRelationCombo = new ComboBox<Valeur>();
typeRelationCombo.setForceSelection(true);
typeRelationCombo.setTriggerAction(TriggerAction.ALL);
441,17 → 543,24
}
}
return retour;
}
}
};
GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
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
String role = modele.get("_role_");
String roleNom = "";
if (typeRelationCombo.getStore() != null && role!=null && role.matches("[0-9]+")) {
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
if (typeRelationCombo.getStore().findModel("id_valeur", role) != null) {
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
} else { Debug.log("role recherche="+role);
Debug.log("typeRelationCombo.getStore().getCount()="+typeRelationCombo.getStore().getCount());
for(int i=0; i<typeRelationCombo.getStore().getCount(); i++) {
Debug.log(""+typeRelationCombo.getStore().getAt(i));
}
}
}
modele.set("_role_", role);
return roleNom;
458,65 → 567,12
}
};
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonne(), 75);
typeRelationColonne.setEditor(editeurRelation);
typeRelationColonne.setRenderer(relationRendu);
colonnes.add(typeRelationColonne);
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
EditorGrid<PublicationAPersonne> grillePublications = new EditorGrid<PublicationAPersonne>(storeGrille, modeleDeColonnes);
grillePublications.setHeight("100%");
grillePublications.setBorders(true);
grillePublications.setSelectionModel(modeleDeSelection);
grillePublications.addPlugin(expansionPlugin);
grillePublications.addPlugin(numeroPlugin);
grillePublications.getView().setForceFit(true);
grillePublications.setAutoExpandColumn("titre");
grillePublications.setStripeRows(true);
grillePublications.setTrackMouseOver(true);
return grillePublications;
return typeRelationColonne;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<PublicationAPersonne> editeurRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) {
String editeur = model.getPublicationLiee().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
};
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
editeurColonne.setRenderer(editeurRendu);
return editeurColonne;
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<PublicationAPersonne> datePublicationRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) {
String annee = model.getPublicationLiee().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
};
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
datePublicationColonne.setRenderer(datePublicationRendu);
return datePublicationColonne;
}
 
public void actualiserEtatBoutonsBarreOutils() {
// Activation des boutons si la grille contient un élément
544,14 → 600,11
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
roles = listeValeurs.toList();
mettreAJourPersonne();
rolesRecus = true;
((ProxyPublicationsAPersonne)grille.getProxy()).setRolesId(roles);
if (rolesRecus && personneRecue) grille.reload();
}
}
else if (nouvellesDonnees instanceof PublicationListe)
{
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
}
else if (nouvellesDonnees instanceof PublicationAPersonneListe)
{
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees;
570,12 → 623,6
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
}
private void rafraichirPublicationListe(PublicationListe listePublications) {
publicationsSaisiesComboBox.getStore().removeAll();
publicationsSaisiesComboBox.getStore().add(listePublications.toList());
publicationsSaisiesComboBox.expand();
}
public void rafraichirInformation(Information info) {
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
582,7 → 629,12
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
String type = info.getType();
if (type.equals("publication_liees")) {
if (type.equals("personne")) {
mettreAJourPersonne();
((ProxyPublicationsAPersonne)grille.getProxy()).setPersonneId(personneSelectionnee.getId());
personneRecue = true;
if (rolesRecus && personneRecue) grille.reload();
} else if (type.equals("publication_liees")) {
if (info.getDonnee(0) != null) {
initialiser();
personneSelectionnee.setPublicationsLiees((PublicationAPersonneListe) info.getDonnee(0));
591,7 → 643,7
} else if (type.equals("publication_modifiee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
PublicationAPersonne publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
ModelData publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
grille.getStore().remove(publicationDansGrille);
ajouterDansGrille(publication, index);
622,17 → 674,18
if (etreAccede()) {
int nbrePublication = grille.getStore().getCount();
for (int i = 0; i < nbrePublication; i++) {
PublicationAPersonne publicationLiee = grille.getStore().getAt(i);
ModelData publicationLiee = grille.getStore().getAt(i);
PublicationAPersonne pap = new PublicationAPersonne(publicationLiee, false);
if (publicationLiee.get("_etat_") != null) {
if (publicationLiee.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
publicationsSupprimees.put("id"+idGenere++, publicationLiee);
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne());
publicationsSupprimees.put("id"+idGenere++, pap);
PublicationAPersonne relationAAjouter = pap;
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
publicationsAjoutees.put("id"+idGenere++, pap);
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
646,14 → 699,14
public List verifier() {
List lstMessageErreur = new LinkedList<String>();
//Vérifier les roles
List<PublicationAPersonne> listePublis = grille.getStore().getModels();
Iterator<PublicationAPersonne> itPublis = listePublis.iterator();
List<ModelData> listePublis = grille.getStore().getModels();
Iterator<ModelData> itPublis = listePublis.iterator();
while (itPublis.hasNext()) {
PublicationAPersonne publi = itPublis.next();
if (UtilString.isEmpty((String) publi.get("_role_"))) {
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1));
}
}
ModelData publi = itPublis.next();
if (UtilString.isEmpty((String) publi.get("_role_"))) {
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1));
}
}
return lstMessageErreur;
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r11-990
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java
120,11 → 120,12
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
enteteParams.set("mail", (String) personne.getCourrielPrinc());
 
tabLogos.removeAll();
LinkedList lstLogos = (LinkedList) personne
.getChaineDenormaliseAsMapOrList("truk_logo");
if (lstLogos != null && lstLogos.size() > 0) {
 
tabLogos.removeAll();
String urlLogoPrinc = (String) lstLogos.get(0);
if (!urlLogoPrinc.trim().equals("")) {
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>"
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java
915,6 → 915,8
this.personne = personne;
this.personneId = personne.getId();
tiPubli.rafraichirInformation(new Information("personne"));
nouvellesDonnees = null;
} else {
InfoLogger.display("messages", info.getMessages().toString());
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java
1,7 → 1,9
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
409,8 → 411,12
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_role_", "ccap_id_role");
virtualFields.put("_etat_", "");
// Grille
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, virtualFields, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
// Rajouter des écouteurs
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
437,7 → 443,7
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) {
public Object preProcessValue(Object valeur) {
Valeur retour = null;
if (valeur != null ) {
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
453,7 → 459,7
// 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) {
public Object postProcessValue(Object valeur) {
String retour = null;
if (valeur != null ) {
if (valeur instanceof Valeur) {
470,15 → 476,10
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);
 
String role = modele.get("_role_");
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
}
 
return role;
}
};
562,8 → 563,8
}
} else if (type.equals("personne_modifiee")) {
if (info.getDonnee(0) != null) {
Personne personne = (Personne) info.getDonnee(0);
ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId());
Personne personne = (Personne) info.getDonnee(0);
ModelData personneDansGrille = grille.getStore().findModel("ccap_id_personne", personne.getId());
int index = grille.getStore().indexOf(personneDansGrille);
grille.getStore().remove(personneDansGrille);
String role = (String) personneDansGrille.get("_role_");
591,8 → 592,7
if (nbrePersonne > 0) {
for (int i = 0; i < nbrePersonne; i++) {
CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i));
if (personne.get("_role_").equals("")) {
if (grille.getStore().getAt(i).get("_role_").equals("")) {
personneNumero += (i != 0 ? ", " : "")+(i+1);
}
}
609,10 → 609,11
int nbrePersonne = grille.getStore().getCount();
for (int i = 0; i < nbrePersonne; i++) {
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
relationCollectionPersonne.set("_role_", grille.getStore().getAt(i).get("_role_"));
if (relationCollectionPersonne.get("_etat_") != null) {
if (grille.getStore().getAt(i).get("_etat_") != null) {
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
if (grille.getStore().getAt(i).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);
620,12 → 621,12
corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
personnesAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
}
// Initialisation de la grille
relationCollectionPersonne.set("_etat_", "");
grille.getStore().getAt(i).set("_etat_", "");
}
}
grille.getStore().commitChanges();
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java
1,10 → 1,18
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
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.ProxyCollectionAPublication;
import org.tela_botanica.client.composants.pagination.ProxyProjets;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
23,6 → 31,8
 
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.data.ModelData;
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;
39,7 → 49,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
48,6 → 60,7
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.RowExpander;
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
64,11 → 77,11
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionAPublication> grille;
private GrillePaginable<ModelData> grille;
private CollectionAPublicationListe publicationsAjoutees = null;
private CollectionAPublicationListe publicationsSupprimees = null;
private ComboBox<Publication> publicationsSaisiesComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
80,6 → 93,9
setId(ID);
setText(Mediateur.i18nC.collectionPublication());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
setLayout(new FitLayout());
barreOutils = creerBarreOutilsGrille();
88,9 → 104,7
panneauPrincipal.setLayout(new FitLayout());
panneauPrincipal.add(grille);
add(panneauPrincipal);
initialiser();
add(panneauPrincipal);
}
private void initialiser() {
99,9 → 113,6
publicationsAjoutees = new CollectionAPublicationListe();
publicationsSupprimees = new CollectionAPublicationListe();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
collection = ((CollectionForm) formulaire).collection;
}
162,8 → 173,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
178,7 → 188,7
private FenetreForm creerFenetreModaleAvecFormulairePublication(String mode) {
String publicationId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
CollectionAPublication publicationSaisiSelectionne = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false);
publicationId = publicationSaisiSelectionne.getIdPublication();
}
232,7 → 242,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
CollectionAPublication publicationSaisieSelectionnee = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false);
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
249,7 → 259,7
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
actualiserGrille();
}
}
});
return bouton;
}
263,35 → 273,60
}
}
private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() {
ComboBox<Publication> comboBox = new ComboBox<Publication>();
comboBox.setWidth(400);
comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("fmt_nom_complet");
comboBox.setStore(publicationsSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
}
ModelType modelTypePublications = new ModelType();
modelTypePublications.setRoot("publications");
modelTypePublications.setTotalName("nbElements");
modelTypePublications.addField("ccapu_id_collection");
modelTypePublications.addField("ccapu_id_publication");
modelTypePublications.addField("cc_nom");
modelTypePublications.addField("cc_id_collection");
modelTypePublications.addField("cpu_id_publication");
modelTypePublications.addField("cpu_fmt_nom_complet");
modelTypePublications.addField("cpu_titre");
modelTypePublications.addField("cpu_nom");
modelTypePublications.addField("cpu_fmt_auteur");
modelTypePublications.addField("cpu_indication_nvt");
modelTypePublications.addField("cpu_truk_pages");
modelTypePublications.addField("cpu_fascicule");
modelTypePublications.addField("cpu_date_parution");
modelTypePublications.addField("cpu_ce_truk_editeur");
modelTypePublications.addField("cpu_ce_projet");
String displayNamePublications = "cpu_fmt_nom_complet";
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications);
publicationsCombo.getCombo().setTabIndex(tabIndex++);
publicationsCombo.getCombo().setForceSelection(true);
publicationsCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) {
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
ajouterDansGrille(publicationSaisieSelectionne);
publicationsSaisiesComboBox.setValue(null);
publicationsSaisiesComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return publicationsCombo;
}
private void ajouterDansGrille(Publication publication) {
299,10 → 334,11
}
private void ajouterDansGrille(Publication publication, int index) {
if (publication != null) {
CollectionAPublication publicationLiee = new CollectionAPublication();
if (publication != null) {
CollectionAPublication publicationLiee = new CollectionAPublication(false);
publicationLiee.setPublication(publication);
publicationLiee.setIdPublication(publication.getId());
// Gestion de l'id de la collection
if (mode.equals(Formulaire.MODE_MODIFIER)) {
publicationLiee.setIdCollection(collection.getId());
309,11 → 345,10
}
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(publicationLiee, 0);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
}
}
330,67 → 365,94
grille.getStore().remove(publicationLiee);
}
}
private GrillePaginable<ModelData> creerGrille() {
GrillePaginable<ModelData> grillePublications = null;
// ModelType
ModelType modelTypeCollectionAPublication = new ModelType();
modelTypeCollectionAPublication.setRoot("collectionsAPublication");
modelTypeCollectionAPublication.setTotalName("nbElements");
modelTypeCollectionAPublication.addField("ccapu_id_collection");
modelTypeCollectionAPublication.addField("ccapu_id_publication");
modelTypeCollectionAPublication.addField("ccapu_mark_licence");
modelTypeCollectionAPublication.addField("cpu_id_publication");
modelTypeCollectionAPublication.addField("cpu_fmt_auteur");
modelTypeCollectionAPublication.addField("cpu_titre");
modelTypeCollectionAPublication.addField("cpu_collection");
modelTypeCollectionAPublication.addField("cpu_ce_truk_editeur");
modelTypeCollectionAPublication.addField("cpu_date_parution");
modelTypeCollectionAPublication.addField("cpu_fascicule");
modelTypeCollectionAPublication.addField("cpu_truk_pages");
modelTypeCollectionAPublication.addField("cpu_indication_nvt");
// Proxy
ProxyCollectionAPublication<ModelData> proxyCollectionAPublication = new ProxyCollectionAPublication<ModelData>(null, collection.getId());
 
private EditorGrid<CollectionAPublication> creerGrille() {
ListStore<CollectionAPublication> storeGrille = new ListStore<CollectionAPublication>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPublication>>() {
public void handleEvent(StoreEvent<CollectionAPublication> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPublication>>() {
public void handleEvent(StoreEvent<CollectionAPublication> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(expansionPlugin);
colonnes.add(numeroPlugin);
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50));
GridSelectionModel<CollectionAPublication> modeleDeSelection = new GridSelectionModel<CollectionAPublication>();
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_editeur_", "cpu_ce_truk_editeur");
virtualFields.put("_annee_", "cpu_date_parution");
virtualFields.put("_etat_", "");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes);
//grillePublications.setHeight("100%");
grillePublications.setBorders(true);
grillePublications.setSelectionModel(modeleDeSelection);
grillePublications.addPlugin(expansionPlugin);
grillePublications.addPlugin(numeroPlugin);
grillePublications.getView().setForceFit(true);
grillePublications.setAutoExpandColumn("titre");
grillePublications.setStripeRows(true);
grillePublications.setTrackMouseOver(true);
// Grille
grillePublications = new GrillePaginable<ModelData>(modelTypeCollectionAPublication, virtualFields, proxyCollectionAPublication, colonnes, modeleDeColonnes);
grillePublications.getGrille().setBorders(true);
grillePublications.getGrille().setSelectionModel(modeleDeSelection);
grillePublications.getGrille().addPlugin(expansionPlugin);
grillePublications.getGrille().addPlugin(numeroPlugin);
grillePublications.getGrille().getView().setForceFit(true);
grillePublications.getGrille().setAutoExpandColumn("titre");
grillePublications.getGrille().setStripeRows(true);
grillePublications.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
return grillePublications;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<CollectionAPublication> editeurRendu = new GridCellRenderer<CollectionAPublication>() {
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
String editeur = model.getPublication().getNomEditeur();
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String editeur = (new CollectionAPublication(model, false)).getPublication().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
401,9 → 463,9
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<CollectionAPublication> datePublicationRendu = new GridCellRenderer<CollectionAPublication>() {
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
String annee = model.getPublication().getAnneeParution();
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String annee = (new CollectionAPublication(model, false)).getPublication().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
430,19 → 492,10
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof PublicationListe) {
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
}
private void rafraichirPublicationListe(PublicationListe listePublications) {
publicationsSaisiesComboBox.getStore().removeAll();
publicationsSaisiesComboBox.getStore().add(listePublications.toList());
publicationsSaisiesComboBox.expand();
}
public void rafraichirInformation(Information info) {
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
464,14 → 517,15
mediateur.ajouterCollectionAPublication(this, collectionId, publicationsAjoutees);
}
} else if (type.equals("publication_modifiee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
CollectionAPublication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
ModelData publicationDansGrille = null;
publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
grille.getStore().remove(publicationDansGrille);
ajouterDansGrille(publication, index);
}
} else if (type.equals("publication_ajoutee")) {
} else if (type.equals("publication_ajoutee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
ajouterDansGrille(publication);
496,17 → 550,18
if (etreAccede()) {
int nbrePublication = grille.getStore().getCount();
for (int i = 0; i < nbrePublication; i++) {
CollectionAPublication publicationLiee = grille.getStore().getAt(i);
ModelData publicationLiee = grille.getStore().getAt(i);
CollectionAPublication cap = new CollectionAPublication(grille.getStore().getAt(i), false);
if (publicationLiee.get("_etat_") != null) {
if (publicationLiee.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
publicationsSupprimees.put("id"+idGenere++, publicationLiee);
publicationsSupprimees.put("id"+idGenere++, cap);
CollectionAPublication relationAAjouter = (CollectionAPublication) publicationLiee.cloner(new CollectionAPublication());
CollectionAPublication relationAAjouter = (CollectionAPublication) cap.cloner(new CollectionAPublication());
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
publicationsAjoutees.put("id"+idGenere++, cap);
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
532,8 → 587,4
}
}
}
private void obtenirPublicationsSaisies(String nom) {
mediateur.selectionnerPublicationParNomComplet(this, null, "%"+nom+"%");
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java
31,7 → 31,7
 
listeCollectionPanneau = new CollectionListeVue(mediateur);
add(listeCollectionPanneau, new BorderLayoutData(LayoutRegion.CENTER));
 
detailCollectionPanneau = new CollectionDetailVue(mediateur, sequenceur);
BorderLayoutData dispositionSud = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000);
dispositionSud.setSplit(true);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java
438,7 → 438,7
return valeur;
}
private void setValeurComboStructures() {
if (structuresCombo.getCombo().getStore() != null
if (structuresCombo.getCombo().getStore() != null
&& collection != null
&& collection.getStructureNom() != null
&& !UtilString.isEmpty(collection.getStructureNom())) {
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r11-933
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r11-933
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java
70,7 → 70,7
mediateurCourrant.selectionnerCollection(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPersonne(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPublication(this, collectionId, sequenceur);
mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
//mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java
1,11 → 1,18
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
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.ProxyCollectionACommentaire;
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
17,6 → 24,7
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
import org.tela_botanica.client.modeles.commentaire.Commentaire;
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
import org.tela_botanica.client.modeles.publication.Publication;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.vues.FenetreForm;
26,6 → 34,8
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
 
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.ModelData;
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;
42,7 → 52,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
52,6 → 64,7
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.FitLayout;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
66,13 → 79,13
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionACommentaire> grille;
private GrillePaginable<ModelData> grille = null;
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
private CollectionACommentaireListe commentairesAjoutes = null;
private CollectionACommentaireListe commentairesModifies = null;
private CollectionACommentaireListe commentairesSupprimes = null;
private ComboBox<Commentaire> commentairesSaisisComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null;
private Button commentairesBoutonSupprimer = null;
private Button commentairesBoutonModifier = null;
83,11 → 96,15
private Sequenceur sequenceur;
public CollectionFormCommentaire(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setLayout(new FitLayout());
setId(ID);
setText(Mediateur.i18nC.collectionCommentaire());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
barreOutils = creerBarreOutilsGrille();
panneauPrincipal.setTopComponent(barreOutils);
96,8 → 113,6
mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null);
add(panneauPrincipal);
initialiser();
}
private void initialiser() {
104,9 → 119,6
// Remise à zéro des modification dans la liste des commentaires
initialiserGestionCommentaires();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
collection = ((CollectionForm) formulaire).collection;
}
181,7 → 193,7
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionne = grille.getGrille().getSelectionModel().getSelectedItem();
if (commentaireSaisiSelectionne == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
196,8 → 208,9
private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) {
String commentaireId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
CollectionACommentaire commentaierSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
commentaireId = commentaierSaisieSelectionnee.getIdCommentaire();
ModelData commentaierSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaierSaisieSelectionnee, false);
commentaireId = cac.getIdCommentaire();
}
final FenetreForm fenetre = new FenetreForm("");
251,11 → 264,12
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaireSaisiSelectionnee, false);
if (commentaireSaisiSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
supprimerDansGrille(commentaireSaisiSelectionnee);
supprimerDansGrille(cac);
}
}
});
273,36 → 287,52
return bouton;
}
private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() {
ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>();
commentairesSaisiesStore.add(new ArrayList<Commentaire>());
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() {
ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>();
comboBox.setWidth(200);
comboBox.setEmptyText(i18nC.chercherCommentaireSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("titre");
comboBox.setStore(commentairesSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue());
}
ModelType modelTypeCommentaires = new ModelType();
modelTypeCommentaires.setRoot("commentaires");
modelTypeCommentaires.setTotalName("nbElements");
modelTypeCommentaires.addField("ccm_id_commentaire");
modelTypeCommentaires.addField("ccm_ce_pere");
modelTypeCommentaires.addField("ccm_ce_projet");
modelTypeCommentaires.addField("ccm_titre");
modelTypeCommentaires.addField("ccm_texte");
modelTypeCommentaires.addField("ccm_ponderation");
modelTypeCommentaires.addField("ccm_mark_public");
String displayNameCommentaires = "ccm_titre";
ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires);
commentairesCombo.getCombo().setTabIndex(tabIndex++);
commentairesCombo.getCombo().setForceSelection(true);
commentairesCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (commentairesSaisisComboBox.getValue() instanceof Commentaire) {
Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue();
if (commentairesSaisisComboBox.getValeur() instanceof ModelData) {
Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur());
ajouterDansGrille(commentaireSaisiSelectionnee);
commentairesSaisisComboBox.setValue(null);
commentairesSaisisComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return commentairesCombo;
}
private void ajouterDansGrille(Commentaire commentaire) {
325,10 → 355,10
corrigerChampsGrille(relationCollectionACommentaire);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(relationCollectionACommentaire, index);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(relationCollectionACommentaire, index);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
}
}
346,31 → 376,34
}
}
 
private EditorGrid<CollectionACommentaire> creerGrille() {
ListStore<CollectionACommentaire> storeGrille = new ListStore<CollectionACommentaire>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
if (ce.getRecord().isModified("_type_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
private GrillePaginable<ModelData> creerGrille() {
RowNumberer pluginLigneNumero = new RowNumberer();
GrillePaginable<ModelData> grillePaginable = null;
 
// ModelType
ModelType modelTypeCollectionACommentaire = new ModelType();
modelTypeCollectionACommentaire.setRoot("collectionsACommentaire");
modelTypeCollectionACommentaire.setTotalName("nbElements");
modelTypeCollectionACommentaire.addField("ccac_id_commentaire");
modelTypeCollectionACommentaire.addField("ccac_id_collection");
modelTypeCollectionACommentaire.addField("ccac_truk_type");
modelTypeCollectionACommentaire.addField("ccm_id_commentaire");
modelTypeCollectionACommentaire.addField("ccm_titre");
modelTypeCollectionACommentaire.addField("ccm_texte");
modelTypeCollectionACommentaire.addField("ccm_ponderation");
modelTypeCollectionACommentaire.addField("ccm_mark_public");
modelTypeCollectionACommentaire.addField("ccm_ce_pere");
modelTypeCollectionACommentaire.addField("ccm_ce_projet");
// Proxy
ProxyCollectionACommentaire<ModelData> proxyCollectionACommentaire = new ProxyCollectionACommentaire<ModelData>(null, collection.getId());
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(pluginLigneNumero);
RowNumberer pluginLigneNumero = new RowNumberer();
colonnes.add(pluginLigneNumero);
colonnes.add(creerColonneType());
colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75));
377,20 → 410,38
colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35));
colonnes.add(creerColonneAcces());
GridSelectionModel<CollectionACommentaire> modeleDeSelection = new GridSelectionModel<CollectionACommentaire>();
// Modèle de colonnes
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
EditorGrid<CollectionACommentaire> grille = new EditorGrid<CollectionACommentaire>(storeGrille, modeleDeColonnes);
grille.setHeight("100%");
grille.setBorders(true);
grille.setSelectionModel(modeleDeSelection);
grille.addPlugin(pluginLigneNumero);
grille.getView().setForceFit(true);
grille.setAutoExpandColumn("_titre_");
grille.setStripeRows(true);
grille.setTrackMouseOver(true);
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_titre_", "ccm_titre");
virtualFields.put("_texte_", "ccm_texte");
virtualFields.put("_ponderation_", "ccm_ponderation");
virtualFields.put("_type_", "ccac_truk_type");
virtualFields.put("_public_", "ccm_mark_public");
virtualFields.put("_etat_", "");
return grille;
// Grille
grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionACommentaire, virtualFields, proxyCollectionACommentaire, colonnes, modeleDeColonnes);
grillePaginable.getGrille().setBorders(true);
grillePaginable.getGrille().setSelectionModel(modeleDeSelection);
grillePaginable.getGrille().addPlugin(pluginLigneNumero);
grillePaginable.getGrille().getView().setForceFit(true);
grillePaginable.getGrille().setAutoExpandColumn("_titre_");
grillePaginable.getGrille().setStripeRows(true);
grillePaginable.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (ce.getRecord().isModified("_type_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
return grillePaginable;
}
private ColumnConfig creerColonneType() {
424,8 → 475,8
}
};
 
GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
GridCellRenderer<ModelData> typeRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String type = model.get("_type_");
if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
type = typeCombo.formaterIdentifiantsEnTexte(type);
441,9 → 492,10
}
private ColumnConfig creerColonneAcces() {
GridCellRenderer<CollectionACommentaire> accesRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
String acces = (model.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
GridCellRenderer<ModelData> accesRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
CollectionACommentaire cac = new CollectionACommentaire(model, true);
String acces = (cac.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
model.set("_public_", acces);
return acces;
}
473,9 → 525,6
} else if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof CommentaireListe) {
CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees;
rafraichirCommentairesListe(listeCommentaires);
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
524,7 → 573,7
} else if (type.equals("commentaire_modifiee")) {
if (info.getDonnee(0) != null) {
Commentaire commentaire = (Commentaire) info.getDonnee(0);
CollectionACommentaire commentaireDansGrille = grille.getStore().findModel("id_commentaire", commentaire.getId());
ModelData commentaireDansGrille = grille.getStore().findModel("ccm_id_commentaire", commentaire.getId());
int index = grille.getStore().indexOf(commentaireDansGrille);
grille.getStore().remove(commentaireDansGrille);
String typeCommentaire = (String) commentaireDansGrille.get("_type_");
547,12 → 596,6
}
}
private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) {
commentairesSaisisComboBox.getStore().removeAll();
commentairesSaisisComboBox.getStore().add(listeCommentaires.toList());
commentairesSaisisComboBox.expand();
}
public void peupler() {
grille.getStore().removeAll();
grille.getStore().add(collection.getCommentairesLiees().toList());
565,15 → 608,16
if (etreAccede()) {
int nbreCommentaire = grille.getStore().getCount();
for (int i = 0; i < nbreCommentaire; i++) {
CollectionACommentaire relationCollectionACommentaire = grille.getStore().getAt(i);
ModelData relationCollectionACommentaire = grille.getStore().getAt(i);
CollectionACommentaire cac = new CollectionACommentaire(relationCollectionACommentaire, false);
if (relationCollectionACommentaire.get("_etat_") != null) {
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, cac);
}
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, cac);
}
// Initialisation de la grille
relationCollectionACommentaire.set("_etat_", "");
586,6 → 630,7
private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
String type = relationCollectionACommentaire.get("_type_");
relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type));
relationCollectionACommentaire.setIdCollection(collection.getId());
}
 
public void soumettre() {
594,16 → 639,12
InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
}
}
}
private void obtenirCommentairesSaisis(String titre) {
mediateur.selectionnerCommentaireParTitre(this, titre+"%", null);
}
private void actualiserGrille() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r11-996
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FenetreForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FenetreForm.java:r11-702
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/interfaces
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/interfaces:r11-59
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/interfaces:r1417-1511
/trunk/src/org/tela_botanica/client/Modele.java
265,10 → 265,15
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation COLLECTION A PUBLICATION
 
public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, String recherche, int start, int nbElements, Integer seqId) {
CollectionAPublicationAsyncDao capDao = new CollectionAPublicationAsyncDao(vueARafraichir);
capDao.selectionner(true, collectionId, recherche, start, nbElements, seqId);
}
public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, Integer seqId) {
CollectionAPublicationAsyncDao capDao = new CollectionAPublicationAsyncDao(vueARafraichir);
capDao.selectionner(collectionId, seqId);
capDao.selectionner(false, collectionId, null, 0, -1, seqId);
}
public void modifierCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublication collectionAPublication) {
291,9 → 296,14
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, Integer seqId) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.selectionner(collectionId, seqId);
cacDao.selectionner(false, collectionId, null, 0, -1, seqId);
}
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, String recherche, int start, int nbElements, Integer seqId) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.selectionner(true, collectionId, recherche, start, nbElements, seqId);
}
public void modifierCollectionACommentaire(Rafraichissable vueARafraichir, CollectionACommentaire collectionACommentaire) {
CollectionACommentaireAsyncDao cacDao = new CollectionACommentaireAsyncDao(vueARafraichir);
cacDao.modifier(collectionACommentaire);
329,7 → 339,6
public void supprimerPersonne(Rafraichissable vueARafraichir, String idPersonneSepareParVirgule) {
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir);
personneDao.supprimer(idPersonneSepareParVirgule);
}
public void ajouterPersonne(Rafraichissable vue, Personne personne) {
341,16 → 350,21
PersonneAsyncDao personneDao = new PersonneAsyncDao(vueARafraichir);
personneDao.modifier(personne);
}
 
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DES PUBLICATIONS
//+----------------------------------------------------------------------------------------------------------------+
public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId, String projetId, String nomComplet, int nbElements, int pageCourante, Integer seqId) {
public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId, String projetId, String nomComplet, int pageCourante, int nbElements, Integer seqId) {
PublicationAsyncDao lsDao = new PublicationAsyncDao(vueARafraichir);
lsDao.selectionner(publicationId, projetId, nomComplet, nbElements, pageCourante, seqId);
lsDao.selectionner(false, publicationId, projetId, nomComplet, pageCourante, nbElements, seqId);
}
public void selectionnerPublication(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Integer seqId) {
PublicationAsyncDao lsDao = new PublicationAsyncDao(vueARafraichir);
lsDao.selectionner(true, null, null, recherche, start, nbElements, seqId);
}
public void modifierPublication(Rafraichissable vueRafraichir, Publication publication, Integer seqId) {
PublicationAsyncDao pDao = new PublicationAsyncDao(vueRafraichir);
pDao.modifier(publication, seqId);
363,15 → 377,25
 
public void supprimerPublication(Rafraichissable vueARafraichir, String idPublicationSeparesParVirgule) {
PublicationAsyncDao pDao = new PublicationAsyncDao(vueARafraichir);
pDao.supprimer(idPublicationSeparesParVirgule);
pDao.supprimer(idPublicationSeparesParVirgule);
}
 
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation PUBLICATION A PERSONNE
 
public void selectionPersonnesAPublication(Rafraichissable vueARafraichir, String publicationId, String recherche, int start, int nbElements, Integer seqId) {
PublicationAPersonneAsyncDao paDao = new PublicationAPersonneAsyncDao(vueARafraichir);
paDao.selectionner(true, publicationId, null, PublicationAPersonne.ROLE_AUTEUR, recherche, start, nbElements, seqId);
}
public void selectionPublicationsAPersonne(Rafraichissable vueARafraichir, String personneId, String roleIds, String recherche, int start, int nbElements, Integer seqId) {
PublicationAPersonneAsyncDao paDao = new PublicationAPersonneAsyncDao(vueARafraichir);
paDao.selectionner(true, null, personneId, roleIds, recherche, start, nbElements, seqId);
}
public void selectionPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId, Integer seqId) {
PublicationAPersonneAsyncDao paDao = new PublicationAPersonneAsyncDao(vueARafraichir);
paDao.selectionner(publicationId, personnesId, roleId, seqId);
paDao.selectionner(false, publicationId, personnesId, roleId, null, 0, -1, seqId);
}
public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String ordreAuteursSepareParVirgule, String roleId, Integer seqId) {
410,9 → 434,14
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String commentaireId, String projetId, String titre, int pageCourante, int nbElements, Integer seqId) {
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueARafraichir);
cDao.selectionner(commentaireId, projetId, titre, pageCourante, nbElements, seqId);
cDao.selectionner(false, commentaireId, projetId, titre, pageCourante, nbElements, seqId);
}
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String recherche, int pageCourante, int nbElements, Integer seqId) {
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueARafraichir);
cDao.selectionner(true, null, null, recherche, pageCourante, nbElements, seqId);
}
public void modifierCommentaire(Rafraichissable vueRafraichir, Commentaire commentaire) {
CommentaireAsyncDao cDao = new CommentaireAsyncDao(vueRafraichir);
cDao.modifier(commentaire);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/Modele.java:r11-59
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/Modele.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursImage.java
68,10 → 68,8
public void componentSelected(ButtonEvent ce) {
String valeur = ce.getComponent().getData("valeur");
LayoutContainer valeurLayout = valeurs.get(valeur);
principalLayout.remove(valeurLayout);
sousContenu.remove(valeurLayout);
valeurs.remove(valeur);
supprimerValeurDuRecapitulatif(valeur);
actualiserLayoutGlobal();
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/ChampMultiValeursImage.java:r11-699
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeursImage.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypesPaginable.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypesPaginable.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursPaginable.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeursPaginable.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampCaseACocher.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/ChampCaseACocher.java:r11-838
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampCaseACocher.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ConteneurMultiChamps.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/ConteneurMultiChamps.java:r11-858
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ConteneurMultiChamps.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyPersonnesAPublication.java
New file
0,0 → 1,82
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 org.tela_botanica.client.util.UtilString;
 
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 ProxyPersonnesAPublication<D> extends Proxy {
String publicationId = null;
public ProxyPersonnesAPublication(Sequenceur sequenceur, String publicationId) {
super(sequenceur);
this.publicationId = publicationId;
}
@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;
if (!UtilString.isEmpty(this.publicationId)) {
mediateur.selectionnerPersonnesAPublication(this, this.publicationId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
} else {
this.rafraichir(null);
}
}
public void setPublicationId(String publicationId) {
this.publicationId = publicationId;
}
 
@Override
@SuppressWarnings("unchecked")
public void rafraichir(Object nouvellesDonnees) {
try
{
D donneesRetour = null;
if (nouvellesDonnees!=null) {
data = nouvellesDonnees;
if (reader != null)
{
donneesRetour = (D) reader.read(loadConfig, data);
}
else
{
donneesRetour = (D) data;
if (donneesRetour instanceof List)
{
donneesRetour = (D) new ArrayList((List) donneesRetour);
}
}
}
callback.onSuccess(donneesRetour);
}
catch (Exception e)
{
callback.onFailure(e);
}
}
 
}
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyPublicationsAPersonne.java
New file
0,0 → 1,93
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.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.ValeurListeAsyncDao;
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
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;
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 ProxyPublicationsAPersonne<D> extends Proxy {
String personneId = null;
List<Valeur> rolesId = null;
public ProxyPublicationsAPersonne(Sequenceur sequenceur, String personneId, List<Valeur> rolesId) {
super(sequenceur);
this.personneId = personneId;
this.rolesId = rolesId;
}
@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;
if (!UtilString.isEmpty(this.personneId)) {
mediateur.selectionnerPublicationsAPersonne(this, personneId, rolesId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
} else {
this.rafraichir(null);
}
}
public void setPersonneId(String personneId) {
this.personneId = personneId;
}
public void setRolesId(List<Valeur> rolesId) {
this.rolesId = rolesId;
}
 
@Override
@SuppressWarnings("unchecked")
public void rafraichir(Object nouvellesDonnees) {
try
{
D donneesRetour = null;
if (nouvellesDonnees!=null) {
data = nouvellesDonnees;
if (reader != null)
{
donneesRetour = (D) reader.read(loadConfig, data);
}
else
{
donneesRetour = (D) data;
if (donneesRetour instanceof List)
{
donneesRetour = (D) new ArrayList((List) donneesRetour);
}
}
}
callback.onSuccess(donneesRetour);
}
catch (Exception e)
{
callback.onFailure(e);
}
}
 
}
/trunk/src/org/tela_botanica/client/composants/pagination/Proxy.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/pagination/Proxy.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyCollectionACommentaire.java
New file
0,0 → 1,78
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 org.tela_botanica.client.util.UtilString;
 
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 ProxyCollectionACommentaire<D> extends Proxy {
String collectionId = null;
public ProxyCollectionACommentaire(Sequenceur sequenceur, String collectionId) {
super(sequenceur);
this.collectionId = collectionId;
}
@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;
if (!UtilString.isEmpty(this.collectionId)) {
mediateur.selectionnerCollectionACommentaire(this, this.collectionId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
}
}
 
@Override
@SuppressWarnings("unchecked")
public void rafraichir(Object nouvellesDonnees) {
try
{
D donneesRetour = null;
if (nouvellesDonnees!=null) {
data = nouvellesDonnees;
if (reader != null)
{
donneesRetour = (D) reader.read(loadConfig, data);
}
else
{
donneesRetour = (D) data;
if (donneesRetour instanceof List)
{
donneesRetour = (D) new ArrayList((List) donneesRetour);
}
}
}
callback.onSuccess(donneesRetour);
}
catch (Exception e)
{
callback.onFailure(e);
}
}
 
}
/trunk/src/org/tela_botanica/client/composants/pagination/TransformateurJSONaModelData.java
2,7 → 2,10
 
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
 
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.util.Debug;
31,9 → 34,13
 
private ModelType modelType = null;
public TransformateurJSONaModelData(ModelType modelType) {
// HashMap<'nom du champ virtuel', 'nom du champ à binder'>
private HashMap<String, String> virtualFields = null;
public TransformateurJSONaModelData(ModelType modelType, HashMap<String, String> virtualFields) {
super(modelType);
this.modelType = modelType;
this.virtualFields = virtualFields;
}
 
@SuppressWarnings("unchecked")
121,6 → 128,22
} else if (value.isNull() != null) {
model.set(name, null);
}
if (virtualFields != null) {
Set<String> cles = virtualFields.keySet();
Iterator<String> it = cles.iterator();
while(it.hasNext()) {
String vField = it.next();
// si il y a un champ à binder
if (virtualFields.get(vField) != null) {
model.set(vField, model.get(virtualFields.get(vField)));
}
// sinon affecter la propriété à 'chaîne vide'
else {
model.set(virtualFields.get(vField), "");
}
}
}
}
models.add(model);
}
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/pagination/TransformateurJSONaModelData.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyCollectionAPublication.java
New file
0,0 → 1,80
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 org.tela_botanica.client.util.UtilString;
 
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 ProxyCollectionAPublication<D> extends Proxy {
String collectionId = null;
public ProxyCollectionAPublication(Sequenceur sequenceur, String collectionId) {
super(sequenceur);
this.collectionId = collectionId;
}
@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;
if (!UtilString.isEmpty(this.collectionId)) {
mediateur.selectionnerCollectionAPublication(this, this.collectionId, recherche, lc.getOffset(), lc.getLimit(), sequenceur);
}
}
 
@Override
@SuppressWarnings("unchecked")
public void rafraichir(Object nouvellesDonnees) {
try
{
D donneesRetour = null;
if (nouvellesDonnees!=null) {
data = nouvellesDonnees;
if (reader != null)
{
donneesRetour = (D) reader.read(loadConfig, data);
}
else
{
donneesRetour = (D) data;
if (donneesRetour instanceof List)
{
donneesRetour = (D) new ArrayList((List) donneesRetour);
}
}
}
callback.onSuccess(donneesRetour);
}
catch (Exception e)
{
callback.onFailure(e);
}
}
 
}
/trunk/src/org/tela_botanica/client/composants/pagination/ProxyCommentaires.java
New file
0,0 → 1,76
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.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;
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.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.rpc.AsyncCallback;
 
public class ProxyCommentaires<D> extends Proxy {
public ProxyCommentaires(Sequenceur sequenceur) {
super(sequenceur);
}
@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.selectionnerCommentaire(this, 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/ProxyPublications.java
New file
0,0 → 1,76
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.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;
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.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.rpc.AsyncCallback;
 
public class ProxyPublications<D> extends Proxy {
public ProxyPublications(Sequenceur sequenceur) {
super(sequenceur);
}
@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.selectionnerPublication(this, 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/ProxyValeur.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/pagination/ProxyValeur.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/pagination/ChargeurListe.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/pagination/ChargeurListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/AideFenetre.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/AideFenetre.java:r11-60
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/AideFenetre.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/LicenceFenetre.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/LicenceFenetre.java:r11-893
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/LicenceFenetre.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampComboBoxRechercheTempsReelPaginable.java
84,7 → 84,7
plc.setLimit(limit);
plc.setOffset(start);
reader = new TransformateurJSONaModelData<PagingLoadResult<ModelData>>(modeltype);
reader = new TransformateurJSONaModelData<PagingLoadResult<ModelData>>(modeltype, null);
loader = new ChargeurListe<PagingLoadResult<ModelData>>(proxy, reader, this);
loader.setLimit(plc.getLimit());
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampComboBoxRechercheTempsReelPaginable.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/GrillePaginable.java
1,5 → 1,6
package org.tela_botanica.client.composants;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
32,6 → 33,7
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.selection.SelectionModel;
import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;
 
public class GrillePaginable<D extends ModelData> extends ContentPanel implements Rafraichissable, GrilleParametrable<D> {
52,7 → 54,7
private ListStore<D> storeGrille = null;
// Elements graphiques
EditorGrid<D> grillePersonne = null;
EditorGrid<D> grille = null;
List<ColumnConfig> colonnes = null;
ColumnModel modeleDeColonnes = null;
64,7 → 66,7
Constructeur
--------------*/
public GrillePaginable(ModelType modeltype, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) {
public GrillePaginable(ModelType modeltype, HashMap<String, String> virtualFields, Proxy<D> proxy, List<ColumnConfig> colonnes, ColumnModel modeleDeColonnes) {
// Récupération des paramètres
this.modelType = modeltype;
80,7 → 82,7
plc.setLimit(limit);
plc.setOffset(start);
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType);
reader = new TransformateurJSONaModelData<PagingLoadResult<D>>(modelType, virtualFields);
loader = new ChargeurListe<PagingLoadResult<D>>(proxy, reader, this);
loader.setLimit(plc.getLimit());
92,6 → 94,12
}
});
loader.addListener(Loader.Load, new Listener<LoadEvent>() {
public void handleEvent(LoadEvent be) {
 
}
});
// Création de la grille
creerGrille();
}
102,7 → 110,7
------------*/
public EditorGrid<D> getGrille() {
return grillePersonne;
return grille;
}
public ListStore<D> getStore() {
109,11 → 117,20
return storeGrille;
}
public GridSelectionModel<D> getSelectionModel() {
return grille.getSelectionModel();
}
public D getSelection() {
return grillePersonne.getSelectionModel().getSelectedItem();
}
return grille.getSelectionModel().getSelectedItem();
}
@SuppressWarnings("unchecked")
public Proxy getProxy() {
return this.proxy;
}
/*-----------------------------
Rafraichir
-----------------------------*/
155,25 → 172,24
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);
grille = new EditorGrid<D>(storeGrille, modeleDeColonnes);
grille.setHeight("100%");
grille.setBorders(true);
grille.setSelectionModel(modeleDeSelection);
grille.addPlugin(pluginLigneNumero);
grille.getView().setForceFit(true);
grille.setStripeRows(true);
grille.setBorders(true);
grillePersonne.setStateful(true);
grille.setStateful(true);
grillePersonne.addListener(Events.Attach, new Listener<GridEvent<D>>() {
grille.addListener(Events.Attach, new Listener<GridEvent<D>>() {
public void handleEvent(GridEvent<D> be) {
PagingLoadConfig config = new BasePagingLoadConfig();
config.setOffset(0);
config.setLimit(50);
config.setOffset(start);
config.setLimit(limit);
Map<String, Object> state = grillePersonne.getState();
Map<String, Object> state = grille.getState();
if (state.containsKey("offset")) {
int offset = (Integer)state.get("offset");
int limit = (Integer)state.get("limit");
188,6 → 204,10
}
});
this.add(grillePersonne);
this.add(grille);
}
public void reload() {
loader.load();
}
}
/trunk/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r11-853
/trunk/src/org/tela_botanica/client/composants/ChampSliderPourcentage.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/ChampSliderPourcentage.java:r11-857
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampSliderPourcentage.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/HashMapComposants.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/HashMapComposants.java:r11-969
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/HashMapComposants.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/InfoLogger.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/InfoLogger.java:r11-1208
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/InfoLogger.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/AproposFenetre.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/AproposFenetre.java:r11-1022
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/AproposFenetre.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampComboBoxMultiSelect.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/ChampComboBoxMultiSelect.java:r11-1028
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampComboBoxMultiSelect.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/IdentificationFenetre.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/composants/IdentificationFenetre.java:r11-59
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/IdentificationFenetre.java:r1417-1511
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeurs.java
302,13 → 302,18
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();
if (estComboBox) {
// 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);
if (objetValeur != null) {
texteValeur = objetValeur.getId();
} else {
texteValeur = texte;
}
} else {
texteValeur = texte;
}
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeurs.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/composants/ChampMultiValeurs.java:r11-664
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/composants/ChampMultiValeursMultiTypes.java:r11-720
/trunk/src/org/tela_botanica/client/modeles/Aide.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/Aide.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/Aide.java:r11-65
/trunk/src/org/tela_botanica/client/modeles/Menu.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/Menu.java:r11-59
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/Menu.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/MenuApplicationId.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/MenuApplicationId.java:r11-325
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/MenuApplicationId.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/aDonnee.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/aDonnee.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/personne/Personne.java
7,6 → 7,7
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
21,6 → 22,7
private static final long serialVersionUID = -6974716696155349332L;
 
public static final String PREFIXE = "cp";
private boolean removePrefix = true;
public static final String TELEPHONE_FIXE = "FIX";
public static final String TELEPHONE_GSM = "GSM";
public static final String TELEPHONE_FAX = "FAX";
33,8 → 35,18
public Personne() {
}
 
public Personne(ModelData model)
{
public Personne(ModelData model) {
creerPersonne(model, false);
}
public Personne(ModelData model, boolean removePrefix) {
creerPersonne(model, removePrefix);
}
private void creerPersonne(ModelData model, boolean removePrefix) {
this.removePrefix = removePrefix;
Map<String, Object> a = model.getProperties();
 
Set<String> cles = a.keySet();
42,11 → 54,17
while (it.hasNext()) {
String cle = it.next();
if (a.get(cle) != null) {
String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
String cleObjet = "";
if (removePrefix) {
cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
}
}
public Personne(JSONObject personne) {
initialiserModele(personne);
116,10 → 134,12
// ID PERSONNE
public String getId() {
return renvoyerValeurCorrecte("id_personne");
if (removePrefix) return renvoyerValeurCorrecte("id_personne");
else return renvoyerValeurCorrecte(PREFIXE+"_id_personne");
}
public void setId(String personneId) {
this.set("id_personne", personneId);
if (removePrefix) this.set("id_personne", personneId);
else this.set(PREFIXE+"_id_personne", personneId);
}
// ID PROJET
158,18 → 178,22
// NOM
public String getNom() {
return renvoyerValeurCorrecte("nom");
if (removePrefix) return renvoyerValeurCorrecte("nom");
else return renvoyerValeurCorrecte(PREFIXE+"_nom");
}
public void setNom(String nom) {
set("nom", nom);
if (removePrefix) set("nom", nom);
else set(PREFIXE+"_nom", nom);
}
// PRÉNOM
public String getPrenom() {
return renvoyerValeurCorrecte("prenom");
if (removePrefix) return renvoyerValeurCorrecte("prenom");
else return renvoyerValeurCorrecte(PREFIXE+"_prenom");
}
public void setPrenom(String prenom) {
set("prenom", prenom);
if (removePrefix) set("prenom", prenom);
else set(PREFIXE+"_prenom", prenom);
}
// TÉLÉPHONE
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/personne/Personne.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/personne/Personne.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneListe.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/personne/PersonneListe.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/personne/PersonneListe.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneAsyncDao.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/personne/PersonneAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/personne/PersonneAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/Utilisateur.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/Utilisateur.java:r11-60
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/Utilisateur.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/aDonneeListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/aDonneeListe.java:r11-362
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/aDonneeListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionListe.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java
124,13 → 124,14
if (Mediateur.DEBUG) System.out.println("<-- CollectionAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAsyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString());
vueARafraichir.rafraichir(info);
}
}
} else {
Debug.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString());
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau 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
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/UniteBase.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/UniteBase.java:r11-948
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/UniteBase.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaire.java
1,8 → 1,15
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.commentaire.Commentaire;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.publication.Publication;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class CollectionACommentaire extends aDonnee {
9,6 → 16,7
private static final long serialVersionUID = 8751553802444398035L;
public static final String PREFIXE = "ccac";
private boolean removePrefix = true;
private Commentaire commentaireLiee = null;
public static String[] champsObligatoires = {"cc_id_collection", "ccac_id_commentaire"};
24,6 → 32,34
initialiser(collectionACommentaireListe, chargerCommentaire);
}
public CollectionACommentaire(ModelData model, boolean removePrefix)
{
this.removePrefix = removePrefix;
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 = "";
if (removePrefix) {
cleObjet = cle.replaceFirst("^"+CollectionACommentaire.PREFIXE+"_", "");
cleObjet = cleObjet.replaceFirst("^"+Commentaire.PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
 
setCommentaire(new Commentaire(model));
this.set("_etat_", a.get("_etat_"));
this.set("_type_", a.get("_type_"));
}
@Override
protected String getPrefixe() {
return PREFIXE;
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaire.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionACommentaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireListe.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireAsyncDao.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 CollectionACommentaireAsyncDao {
30,52 → 33,100
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
public void selectionner(final String collectionId, final Integer seqId) {
public void selectionner(final boolean paginationProgressive, final String collectionId, final String recherche, final int start, final int nbElements, final Integer seqId) {
String[] parametres = {collectionId};
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));
}
 
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
Information info = new Information("liste_collection_a_commentaire");
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 ListCommentaier
CollectionACommentaireListe commentaires = new CollectionACommentaireListe(reponse);
info.setDonnee(0, commentaires);
// 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("<-- CollectionACommentaireAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > 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_collection_a_commentaire");
 
if (responseValue != null) {
 
JSONObject responseObject = responseValue.isObject();
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("collectionsACommentaire").isArray() != null) {
 
final JSONArray reponse = responseObject.get("collectionsACommentaire").isArray();
// Transformation du tableau JSON réponse en ListeInstitution
CollectionACommentaireListe publications = new CollectionACommentaireListe(reponse);
info.setDonnee(0, publications);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionACommentaireAsyncDao > Liste non paginée, retour au sequenceur");
vueARafraichir.rafraichir(info);
}
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
} else if (responseObject.get("collectionsACommentaire").isObject() != null) {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un tableau JSON et vaut : "+responseValue.toString(), null);
}
}
else {
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 à Commentaires et qu'il n'y en a pas, nous retournons un message d'information
info.setMessage("Aucune relations entre la collection et les commentaires");
if (seqId != null) {
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
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) {
info.setMessage("Aucune relations entre la collection et les commentaires");
vueARafraichir.rafraichir(info);
}
}
}
}
});
}
 
});
}
}
public void ajouter(String collectionId, CollectionACommentaire commentaires) {
String postDonneesEncodees = construirePost(collectionId, commentaires);
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireAsyncDao.java:r11-988
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionACommentaireAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionBotanique.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionBotanique.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionBotanique.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/UniteRangement.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/UniteRangement.java:r11-948
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/UniteRangement.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java
32,7 → 32,7
public CollectionAPersonne(ModelData model)
{
Map<String, Object> a = model.getProperties();
 
Set<String> cles = a.keySet();
Iterator<String> it = cles.iterator();
while (it.hasNext()) {
151,8 → 151,10
// ID RôLE
public String getIdRole() {
String role = renvoyerValeurCorrecte("id_role");
return role;
/*
if (role != null && !UtilString.isEmpty(role)) return role;
else return renvoyerValeurCorrecte("_role_");
else return renvoyerValeurCorrecte("_role_");*/
}
public void setIdRole(String ir) {
set("id_role", ir);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPersonne.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublication.java
1,8 → 1,15
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.modeles.publication.Publication;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class CollectionAPublication extends aDonnee {
10,6 → 17,7
private static final long serialVersionUID = 1L;
public static final String PREFIXE = "ccapu";
private boolean removePrefix = true;
private Publication publicationLiee = null;
public static String[] champsObligatoires = {"ccapu_id_collection", "ccapu_id_publication"};
16,11 → 24,44
public CollectionAPublication() {
initialiser(new JSONObject());
}
public CollectionAPublication(boolean removePrefix) {
this.removePrefix = removePrefix;
initialiser(new JSONObject());
}
public CollectionAPublication(JSONObject collectionAPublicationListe) {
initialiser(collectionAPublicationListe);
}
public CollectionAPublication(ModelData model, boolean removePrefix)
{
this.removePrefix = removePrefix;
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 = "";
if (removePrefix) {
cleObjet = cle.replaceFirst("^"+Publication.PREFIXE+"_", "");
cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", "");
cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
 
setPublication(new Publication(model, removePrefix));
this.set("_etat_", a.get("_etat_"));
}
@Override
protected String getPrefixe() {
return PREFIXE;
49,15 → 90,27
}
private void initialiserChampsPourGrille() {
set("fmt_auteur", getPublication().getAuteur());
set("titre", getPublication().getTitre());
set("collection", getPublication().getCollection());
set("_editeur_", "");
set("_annee_", "");
set("indication_nvt", getPublication().getIndicationNvt());
set("fascicule", getPublication().getFascicule());
set("truk_pages", getPublication().getPages());
set("_etat_", "");
if (removePrefix) {
set("fmt_auteur", getPublication().getAuteur());
set("titre", getPublication().getTitre());
set("collection", getPublication().getCollection());
set("_editeur_", "");
set("_annee_", "");
set("indication_nvt", getPublication().getIndicationNvt());
set("fascicule", getPublication().getFascicule());
set("truk_pages", getPublication().getPages());
set("_etat_", "");
} else {
set(Publication.PREFIXE+"_fmt_auteur", getPublication().getAuteur());
set(Publication.PREFIXE+"_titre", getPublication().getTitre());
set(Publication.PREFIXE+"_collection", getPublication().getCollection());
set("_editeur_", "");
set("_annee_", "");
set(Publication.PREFIXE+"_indication_nvt", getPublication().getIndicationNvt());
set(Publication.PREFIXE+"_fascicule", getPublication().getFascicule());
set(Publication.PREFIXE+"_truk_pages", getPublication().getPages());
set("_etat_", "");
}
}
// ID
82,18 → 135,22
// ID COLLECTION
public String getIdCollection() {
return renvoyerValeurCorrecte("id_collection");
if (removePrefix) return renvoyerValeurCorrecte("id_collection");
else return renvoyerValeurCorrecte(PREFIXE+"_id_collection");
}
public void setIdCollection(String idCollection) {
set("id_collection", idCollection);
if (removePrefix) set("id_collection", idCollection);
else set(PREFIXE+"_id_collection", idCollection);
}
// ID PUBLICATION
public String getIdPublication() {
return renvoyerValeurCorrecte("id_publication");
if (removePrefix) return renvoyerValeurCorrecte("id_publication");
else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");
}
public void setIdPublication(String ip) {
set("id_publication", ip);
if (removePrefix) set("id_publication", ip);
else set(PREFIXE+"_id_publication", ip);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublication.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPublication.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneListe.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneListe.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneListe.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationListe.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationListe.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationListe.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java
123,7 → 123,7
}
}
 
public void ajouter(String collectionId, CollectionAPersonne personnes) {
public void ajouter(String collectionId, CollectionAPersonne personnes) {
String postDonneesEncodees = construirePost(collectionId, personnes);
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM);
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPersonneAsyncDao.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationAsyncDao.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 CollectionAPublicationAsyncDao {
28,43 → 31,101
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
public void selectionner(final String collectionId, final Integer seqId) {
public void selectionner(final boolean paginationProgressive, final String collectionId, final String recherche, final int start, final int nbElements, final Integer seqId) {
 
String[] parametres = {collectionId};
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", "cpu_fmt_auteur");
 
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
Information info = new Information("liste_collection_a_publication");
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
CollectionAPublicationListe publications = new CollectionAPublicationListe(reponse);
info.setDonnee(0, publications);
// 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("<-- CollectionAPublicationAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > 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_collection_a_publication");
 
if (responseValue != null) {
 
JSONObject responseObject = responseValue.isObject();
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("collectionsAPublication").isArray() != null) {
 
final JSONArray reponse = responseObject.get("collectionsAPublication").isArray();
// Transformation du tableau JSON réponse en ListeInstitution
CollectionAPublicationListe publications = new CollectionAPublicationListe(reponse);
info.setDonnee(0, publications);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(info, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CollectionAPublicationAsyncDao > Liste non paginée, retour au sequenceur");
vueARafraichir.rafraichir(info);
}
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
} else if (responseObject.get("collectionsAPublication").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) {
info.setMessage("Aucune relations entre la collection et les publications");
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 à Publication et qu'il n'y en a pas, nous retournons un message d'information
info.setMessage("Aucune relations entre la collection et les publications");
vueARafraichir.rafraichir(info);
}
}
}
});
}
});
}
}
 
public void ajouter(String collectionId, CollectionAPublication publications) {
String postDonneesEncodees = construirePost(collectionId, publications);
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationAsyncDao.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/collection/CollectionAPublicationAsyncDao.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/collection/Collection.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/collection/Collection.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/collection/Collection.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAsyncDao.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureAsyncDao.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureAsyncDao.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonne.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonne.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureAPersonne.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureConservation.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureConservation.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureConservation.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureValorisation.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureValorisation.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureValorisation.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneListe.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureAPersonneListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java
33,13 → 33,7
 
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};
HashMap<String, String> restrictions = new HashMap<String, String>();
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureAPersonneAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/Structure.java
214,6 → 214,7
return fondationDate;
}
/*
public String getAnneeOuDateFondation() {
String valeurDateFondation = get("date_fondation");
if (!UtilString.isEmpty(valeurDateFondation) && valeurDateFondation.endsWith("00-00")) {
222,8 → 223,55
valeurDateFondation = "";
}
return valeurDateFondation;
}*/
public String getAnneeOuDateFondation() {
String valeurDateFondation = get("date_fondation");
return getDateSouple(valeurDateFondation);
}
public String getDateSouple(String date) {
String valeurDate = date;
String jour = "";
String mois = "";
String annee = "";
 
// pas de date dans la BD
if (UtilString.isEmpty(valeurDate) || valeurDate.equals("0000-00-00")) {
valeurDate = "";
// YYYY
} else if (valeurDate.endsWith("00-00")) {
valeurDate = valeurDate.substring(0, 4);
if (valeurDate.matches("\\d{4}")) {
jour = "";
mois = "";
annee = valeurDate.substring(0,4);
valeurDate = annee;
}
// YYYY-MM
} else if (valeurDate.endsWith("-00")) {
valeurDate = valeurDate.substring(0, 7);
if (valeurDate.matches("\\d{4}-\\d{2}")) {
jour = "";
mois = valeurDate.substring(5,7);
annee = valeurDate.substring(0,4);
valeurDate = mois+"/"+annee;
}
}
// YYYY-MM-DD
else if (valeurDate.matches("\\d{4}-\\d{2}-\\d{2}")) {
Date objetDate = DateTimeFormat.getFormat("yyyy-MM-dd").parse(valeurDate);
DateTimeFormat fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
valeurDate = fmt.format(objetDate);
}
return valeurDate;
}
public void setDateFondation(Date dateFondation) {
if (dateFondation != null) {
this.set("date_fondation", DateTimeFormat.getFormat("yyyy-MM-dd").format(dateFondation));
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/Structure.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/Structure.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/structure/StructureListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/structure/StructureListe.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/structure/StructureListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/ValeurListeAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/projet/Projet.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/projet/Projet.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/projet/Projet.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/projet/ProjetListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/projet/ProjetAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetVersion.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/projet/ProjetVersion.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/projet/ProjetVersion.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/InterneValeur.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/InterneValeur.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/InterneValeur.java:r11-100
/trunk/src/org/tela_botanica/client/modeles/commentaire/Commentaire.java
1,5 → 1,9
package org.tela_botanica.client.modeles.commentaire;
 
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.Collection;
6,12 → 10,13
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class Commentaire extends aDonnee {
 
private static final long serialVersionUID = 7216356814682582569L;
private static final String PREFIXE = "ccm";
public static final String PREFIXE = "ccm";
private Collection collection = null;
private CollectionACommentaire collectionACommentaire = null;
public static String[] champsObligatoires = {"ccm_id_commentaire"};
27,6 → 32,21
initialiserCommentaire(commentaire, chargerCollectionACommentaire);
}
public Commentaire(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 = cle.replaceFirst("^"+getPrefixe()+"_", "");
this.set(cleObjet, a.get(cle));
}
}
}
public void initialiserCommentaire(JSONObject commentaire, boolean chargerCollectionACommentaire) {
initialiserModele(commentaire);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/commentaire/Commentaire.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/Commentaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/commentaire/CommentaireListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/commentaire/CommentaireListe.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/CommentaireListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/commentaire/CommentaireAsyncDao.java
29,73 → 29,123
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
 
public void selectionner(final String commentaireId, String projetId, String titre, final int pageCourante, final int nbElements, final Integer seqId) {
String[] parametres = {projetId, commentaireId, titre};
/**
*
* @param paginationProgressive : définit le mode de consultation de la base de données
* - True : la consultation des données est progressive, ce qui signifie que la liste est chargée (paginée) au
* fur et à mesure de la consultation des données par l'utilisateur.
* - False : la consultation des données est classique : un seul appel à la base de données est effectué, le retour
* 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 commentaireId, final String projetId, final String titre, final int start, final int nbElements, final Integer seqId) {
 
// Ajout des paramètres et données à selectionner dans l'URL
String nom = (titre == null) ? "%" : titre+"%";
String[] parametres = {projetId, commentaireId, nom};
HashMap<String, String> restrictions = new HashMap<String, String>();
restrictions.put("start", String.valueOf(pageCourante*nbElements));
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
restrictions.put("orderby", "cc_nom ASC");
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, réception d'un objet ou d'un tableau
JSONArray responseArray = responseValue.isArray();
if (responseArray.get(1).isObject() != null) {
final JSONObject reponse = responseArray.get(1).isObject();
// Transformation du tableau JSON réponse en ListeInstitution
Commentaire commentaire = new Commentaire(reponse);
// et on met à jour le demandeur des données
if (seqId != null) {
Reponse reponseRequete = new Reponse(commentaire, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
vueARafraichir.rafraichir(commentaire);
}
} else if (responseValue.isArray() != null) {
final JSONArray reponse = responseValue.isArray();
CommentaireListe commentaires;
if (reponse.get(1).isObject() != null) {
commentaires = new CommentaireListe(reponse.get(1).isArray());
} else {
commentaires = new CommentaireListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
}
commentaires.setTaillePage(nbElements);
commentaires.setPageCourante(pageCourante);
restrictions.put("orderby", "ccm_titre ASC");
 
if (seqId != null) {
Reponse reponseRequete = new Reponse(commentaires, 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("<-- CommentairesASyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > 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();
 
if (responseObject != null) {
// Si la réponse est un tableau, alors c'est une liste de commentaires qui a été retournée
if (responseObject.get("commentaires").isArray() != null) {
final JSONArray reponse = responseObject.get("commentaires").isArray();
 
CommentaireListe commentaires = new CommentaireListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir);
commentaires.setTaillePage(nbElements);
commentaires.setPageCourante(start);
vueARafraichir.rafraichir(commentaires);
 
// Si la réponse est un objet, alors c'est un unique commentaire qui a été retournée
} else if (responseObject.get("commentaires").isObject() != null) {
 
final JSONObject reponse = responseObject.get("commentaires").isObject();
Commentaire commentaire = new Commentaire(reponse);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(commentaire, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- CommentairesASyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString());
vueARafraichir.rafraichir(commentaire);
}
}
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
}
else {
vueARafraichir.rafraichir(commentaires);
}
} else {
GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
}
} else {
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
if (commentaireId == null) {
CommentaireListe commentaires = new CommentaireListe(0);
if (seqId != null) {
Reponse reponseRequete = new Reponse(commentaires, seqId);
vueARafraichir.rafraichir(reponseRequete);
// Dans le cas, où nous demandons toutes les institutions et qu'il n'y en a pas, nous retournons un objet vide
if (commentaireId == null) {
CommentaireListe commentaires = new CommentaireListe(0);
if (seqId != null) {
Reponse reponseRequete = new Reponse(commentaires, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
vueARafraichir.rafraichir(commentaires);
}
}
else {
vueARafraichir.rafraichir(commentaires);
}
}
}
}
});
});
}
}
 
public void ajouter(Commentaire commentaire) {
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/commentaire/CommentaireAsyncDao.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/commentaire/CommentaireAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/InterneValeurListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/InterneValeurListe.java:r11-100
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/InterneValeurListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/Information.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/Information.java:r11-132
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/Information.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonne.java
5,9 → 5,11
import java.util.Set;
 
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.util.Debug;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class PublicationAPersonne extends aDonnee {
15,6 → 17,7
private static final long serialVersionUID = 7769105365939978129L;
public static final String PREFIXE = "cpuap";
private boolean removePrefix = true;
public static final String ROLE_AUTEUR = "2360";
//FIXME: insérer en base de données une valeur cohérente pour l'identifiant ci-dessous
public static final String ROLE_SUJET = "30762";
27,6 → 30,11
new PublicationAPersonne(new JSONObject());
}
public PublicationAPersonne(boolean removePrefix) {
this.removePrefix = removePrefix;
new PublicationAPersonne(new JSONObject());
}
public PublicationAPersonne(JSONObject pubAPersListe) {
Personne personne = new Personne(pubAPersListe);
setPersonne(personne);
39,33 → 47,74
for (Iterator<String> it = im.iterator(); it.hasNext();) {
// Si elle est associée à une valeur, nous l'ajoutons
String cle = it.next();
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
String cleObjet = "";
if (removePrefix) cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
else cleObjet=cle;
// Valeur vide par défaut
String valeur = "";
if (pubAPersListe.get(cle).isString() != null) {
valeur = pubAPersListe.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
this.set(cleObjet, valeur);
}
}
this.set(cleObjet, valeur);
}
initialiserChampsPourGrille();
}
public PublicationAPersonne(ModelData model, boolean removePrefix)
{
this.removePrefix = removePrefix;
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 = "";
if (removePrefix) {
cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", "");
cleObjet = cle.replaceFirst("^"+Publication.PREFIXE+"_", "");
cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
 
setPersonne(new Personne(model, removePrefix));
setPublicationLiee(new Publication(model, removePrefix));
this.set("_role_", a.get("_role_"));
this.set("_etat_", a.get("_etat_"));
}
private void initialiserChampsPourGrille() {
set("fmt_auteur", publicationLiee.getAuteur());
set("titre", publicationLiee.getTitre());
set("collection", publicationLiee.getCollection());
set("_editeur_", "");
set("_annee_", "");
set("indication_nvt", publicationLiee.getIndicationNvt());
set("fascicule", publicationLiee.getFascicule());
set("truk_pages", publicationLiee.getPages());
set("_etat_", "");
set("_role_", this.get("id_role"));
if (removePrefix) {
set("fmt_auteur", publicationLiee.getAuteur());
set("titre", publicationLiee.getTitre());
set("collection", publicationLiee.getCollection());
set("_editeur_", "");
set("_annee_", "");
set("indication_nvt", publicationLiee.getIndicationNvt());
set("fascicule", publicationLiee.getFascicule());
set("truk_pages", publicationLiee.getPages());
set("_etat_", "");
set("_role_", this.get("id_role"));
} else {
set("cpu_fmt_auteur", publicationLiee.getAuteur());
set("cpu_titre", publicationLiee.getTitre());
set("cpu_collection", publicationLiee.getCollection());
set("_editeur_", "");
set("_annee_", "");
set("cpu_indication_nvt", publicationLiee.getIndicationNvt());
set("cpu_fascicule", publicationLiee.getFascicule());
set("cpu_truk_pages", publicationLiee.getPages());
set("_etat_", "");
set("_role_", this.get("id_role"));
}
}
81,21 → 130,34
public Personne getPersonne() {
return personneLiee;
}
public void setPersonne(Personne personne) {
setPersonne(personne, false);
}
public void setPersonne(Personne personne, boolean integrerProprietes) {
personneLiee = personne;
if (personne != null) {
setIdPersonne(personne.getId());
}
Map<String, Object> a = personne.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 = cle.replaceFirst("^"+Personne.PREFIXE+"_", "");
this.set(cleObjet, a.get(cle));
if (integrerProprietes) {
Map<String, Object> a = personne.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 = "";
if (removePrefix) {
cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", "");
}
else {
cleObjet = cle;
}
this.set(cleObjet, a.get(cle));
}
}
}
}
114,10 → 176,12
// ID PUBLICATION
public String getIdPublication() {
return renvoyerValeurCorrecte("id_publication");
if (removePrefix) return renvoyerValeurCorrecte("id_publication");
else return renvoyerValeurCorrecte("cpuap_id_publication");
}
public void setIdPublication(String id) {
set("id_publication", id);
if (removePrefix) set("id_publication", id);
else set("cpuap_id_publication", id);
}
// PUBLICATION LIEE
143,10 → 207,12
// ID PERSONNE
public String getIdPersonne() {
return renvoyerValeurCorrecte("id_personne");
if (removePrefix) return renvoyerValeurCorrecte("id_personne");
else return renvoyerValeurCorrecte("cpuap_id_personne");
}
public void setIdPersonne(String id) {
set("id_personne", id);
if (removePrefix) set("id_personne", id);
else set(PREFIXE+"_id_personne", id);
}
// ID RôLE
170,11 → 236,15
// ORDRE DES AUTEURS
public String getOrdreAuteurs() {
return renvoyerValeurCorrecte("ordre");
if (removePrefix) return renvoyerValeurCorrecte("ordre");
else return renvoyerValeurCorrecte(PREFIXE+"_ordre");
}
public void setOrdreAuteurs(String ordre) {
if (ordre.matches("[0-9]+")) {
this.set("ordre", ordre);
if (removePrefix) this.set("ordre", ordre);
else this.set(PREFIXE+"_ordre", ordre);
this.set("_ordre_", ordre);
}
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonne.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAPersonne.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneListe.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneAsyncDao.java
8,6 → 8,7
import org.tela_botanica.client.http.JsonRestRequestCallback;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
import org.tela_botanica.client.synchronisation.Reponse;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilDAO;
33,51 → 34,112
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
public void selectionner(String publicationId, String personnesId, String roleId, final Integer seqId) {
public void selectionner(final boolean paginationProgressive, String publicationId, String personnesId, String roleId, final String recherche, final int start, final int nbElements, final Integer seqId) {
 
String[] parametres = {publicationId, personnesId, roleId};
HashMap<String, String> restrictions = new HashMap<String, String>();
restrictions.put("orderby", "ordre");
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, réception d'un objet ou d'un tableau
if (responseValue.isObject() != null) {
final JSONObject reponse = responseValue.isObject();
// Transformation du tableau JSON réponse en ListeInstitution
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
// et on met à jour le demandeur des données
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publicationAPersonne, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publicationAPersonne);
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
restrictions.put("orderby", "cpuap_ordre");
 
/** 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("<-- PublicationAPersonneAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAPersonneAsyncDao > 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();
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("publicationsAPersonne").isArray() != null) {
 
final JSONArray reponse = responseObject.get("publicationsAPersonne").isArray();
// Transformation du tableau JSON réponse en ListeInstitution
PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
// et on met à jour le demandeur des données
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAPersonneAsyncDao > Liste non paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(publicationsAPersonneListe, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAPersonneAsyncDao > Liste non paginée, retour au sequenceur");
vueARafraichir.rafraichir(publicationsAPersonneListe);
}
// Si la réponse est un objet, alors c'est une unique collection qui a été retournée
} else if (responseObject.get("publicationsAPersonne").isObject() != null) {
final JSONObject reponse = responseObject.get("publicationsAPersonne").isObject();
// Transformation du tableau JSON réponse en ListeInstitution
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(reponse);
// et on met à jour le demandeur des données
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publicationAPersonne, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publicationAPersonne);
}
} else {
GWT.log("La réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null);
}
}
} else if (responseValue.isArray() != null) {
final JSONArray reponse = responseValue.isArray();
PublicationAPersonneListe publicationsAPersonneListe = new PublicationAPersonneListe(reponse);
} else {
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publicationsAPersonneListe, seqId);
Reponse reponseRequete = new Reponse(publicationAPersonneListe, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publicationsAPersonneListe);
vueARafraichir.rafraichir(publicationAPersonneListe);
}
} else {
GWT.log("La réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null);
}
} else {
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
PublicationAPersonneListe publicationAPersonneListe = new PublicationAPersonneListe(0);
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publicationAPersonneListe, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publicationAPersonneListe);
}
}
}
});
});
}
}
public void ajouter(String publicationId, String personnesId, String ordreAuteurs, String roleId, final Integer seqId) {
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAPersonneAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/publication/Publication.java
1,9 → 1,17
package org.tela_botanica.client.modeles.publication;
 
import java.util.ArrayList;
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.collection.CollectionAPublication;
import org.tela_botanica.client.modeles.structure.Structure;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;
 
public class Publication extends aDonnee {
10,19 → 18,77
 
private static final long serialVersionUID = 4142843068041690126L;
 
private static final String PREFIXE = "cpu";
public static final String PREFIXE = "cpu";
private boolean removePrefix = true;
private Structure editeur = null;
public static String[] champsObligatoires = {"cpu_id_publication"};
public ArrayList<String> cles = null;
public Publication() {
public Publication() {
}
public Publication(boolean removePrefix) {
this.removePrefix = removePrefix;
cles = new ArrayList<String>();
cles.add("id_publication");
}
public Publication(JSONObject publication) {
initialiserModele(publication);
editeur = new Structure(publication);
cles = new ArrayList<String>();
cles.add("id_publication");
}
@Override
public Publication(ModelData model, boolean removePrefix)
{
this.removePrefix = removePrefix;
cles = new ArrayList<String>();
cles.add("id_publication");
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 = "";
if (removePrefix) {
cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
}
else {
cleObjet=cle;
String valeur = "";
if (a.get(cle) instanceof Integer) valeur = String.valueOf(a.get(cle));
else if (a.get(cle) instanceof String) valeur = (String)a.get(cle);
traiterClesEtrangeres(cle, valeur);
}
this.set(cleObjet, a.get(cle));
}
}
}
// Action
//--------
// cette méthode sert dans le cas suivant : le contructeur reçoit un object ModelData
// qui contient cpuap_id_publication mais pas cpu_id_publication ou id_publication. Sans
// la méthode ci-dessous, on aurait des problèmes. Celle-ci affecte à id_publication la
// valeur des clés étrangères rencontrées (cpuap_id_publication, cpuac_id_publication, etc.)
private void traiterClesEtrangeres(String cle, String valeur) {
// on recupere le nom de la clé de la propriété (sans son prefixe)
String nomSansPrefixe = cle.replaceFirst("^[a-zA-Z]+_", "");
// on regarde si cette clé est une clé primaire de la table Publication
if (cles.contains(nomSansPrefixe)) {
// si c'est le cas et que la valeur est non nulle
if (valeur != null && !UtilString.isEmpty(valeur)) {
// on affecte la valeur de la clés étrangère à la clé primaire
if (removePrefix) this.set(nomSansPrefixe, valeur);
else this.set(PREFIXE+"_"+nomSansPrefixe, valeur);
}
}
}
protected String getPrefixe() {
return PREFIXE;
}
36,52 → 102,66
}
public String getId() {
return renvoyerValeurCorrecte("id_publication");
if (removePrefix) return renvoyerValeurCorrecte("id_publication");
else return renvoyerValeurCorrecte(PREFIXE+"_id_publication");
}
public void setId(String idPublication) {
this.set("id_publication", idPublication);
if (removePrefix) this.set("id_publication", idPublication);
else this.set(PREFIXE+"_id_publication", idPublication);
}
public String getIdProjet() {
return renvoyerValeurCorrecte("ce_projet");
if (removePrefix) return renvoyerValeurCorrecte("ce_projet");
else return renvoyerValeurCorrecte(PREFIXE+"_ce_projet");
}
public void setIdProjet(String idProjet) {
this.set("ce_projet", idProjet);
if (removePrefix) this.set("ce_projet", idProjet);
else this.set(PREFIXE+"_ce_projet", idProjet);
}
public String getNomComplet() {
return renvoyerValeurCorrecte("fmt_nom_complet");
if (removePrefix) return renvoyerValeurCorrecte("fmt_nom_complet");
else return renvoyerValeurCorrecte(PREFIXE+"_fmt_nom_complet");
}
public void setNomComplet(String nomComplet) {
this.set("fmt_nom_complet", nomComplet);
if (removePrefix) this.set("fmt_nom_complet", nomComplet);
else this.set(PREFIXE+"_fmt_nom_complet", nomComplet);
}
public String getURI() {
return renvoyerValeurCorrecte("uri");
if (removePrefix) return renvoyerValeurCorrecte("uri");
else return renvoyerValeurCorrecte(PREFIXE+"_uri");
}
public void setUri(String uri) {
this.set("uri", uri);
if (removePrefix) this.set("uri", uri);
else this.set(PREFIXE+"_uri", uri);
}
 
public String getAuteur() {
return renvoyerValeurCorrecte("fmt_auteur");
if (removePrefix) return renvoyerValeurCorrecte("fmt_auteur");
else return renvoyerValeurCorrecte(PREFIXE+"_fmt_auteur");
}
public void setAuteur(String auteurFormate) {
this.set("fmt_auteur", auteurFormate);
if (removePrefix) this.set("fmt_auteur", auteurFormate);
else this.set(PREFIXE+"_fmt_auteur", auteurFormate);
}
 
public String getCollection() {
return renvoyerValeurCorrecte("collection");
if (removePrefix) return renvoyerValeurCorrecte("collection");
else return renvoyerValeurCorrecte(PREFIXE+"_collection");
}
public void setCollection(String collection) {
this.set("collection", collection);
if (removePrefix) this.set("collection", collection);
else this.set(PREFIXE+"_collection", collection);
}
public String getTitre() {
return renvoyerValeurCorrecte("titre");
if (removePrefix) return renvoyerValeurCorrecte("titre");
else return renvoyerValeurCorrecte(PREFIXE+"_titre");
}
public void setTitre(String titre) {
this.set("titre", UtilString.ucFirst(titre));
if (removePrefix) this.set("titre", UtilString.ucFirst(titre));
else this.set(PREFIXE+"_titre", UtilString.ucFirst(titre));
}
 
public String getNomEditeur() {
92,41 → 172,57
return editeurNom;
}
public String getEditeur() {
return getChaineDenormaliseUnique("ce_truk_editeur");
if (removePrefix) return getChaineDenormaliseUnique("ce_truk_editeur");
else return getChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur");
}
public void setEditeur(String editeur) {
setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur);
if (removePrefix) setChaineDenormaliseUnique("ce_truk_editeur", "AUTRE", editeur);
else setChaineDenormaliseUnique(PREFIXE+"_ce_truk_editeur", "AUTRE", editeur);
}
 
public String getAnneeParution() {
return renvoyerValeurCorrecte("date_parution").substring(0, 4);
String date;
if (removePrefix) date = renvoyerValeurCorrecte("date_parution");
else date = renvoyerValeurCorrecte(PREFIXE+"_date_parution");
if (date != null && !UtilString.isEmpty(date))
return date.substring(0, 4);
else
return null;
}
public String getDateParution() {
return renvoyerValeurCorrecte("date_parution");
if (removePrefix) return renvoyerValeurCorrecte("date_parution");
else return renvoyerValeurCorrecte(PREFIXE+"_date_parution");
}
public void setDateParution(String date) {
this.set("date_parution", date);
if (removePrefix) this.set("date_parution", date);
else this.set(PREFIXE+"_date_parution", date);
}
 
public String getIndicationNvt() {
return renvoyerValeurCorrecte("indication_nvt");
if (removePrefix) return renvoyerValeurCorrecte("indication_nvt");
else return renvoyerValeurCorrecte(PREFIXE+"_indication_nvt");
}
public void setIndicationNvt(String nvt) {
this.set("indication_nvt", nvt);
if (removePrefix) this.set("indication_nvt", nvt);
else this.set(PREFIXE+"_indication_nvt", nvt);
}
public String getFascicule() {
return renvoyerValeurCorrecte("fascicule");
if (removePrefix) return renvoyerValeurCorrecte("fascicule");
else return renvoyerValeurCorrecte(PREFIXE+"_fascicule");
}
public void setFascicule(String fascicule) {
this.set("fascicule", fascicule);
if (removePrefix) this.set("fascicule", fascicule);
else this.set(PREFIXE+"_fascicule", fascicule);
}
public String getPages() {
return renvoyerValeurCorrecte("truk_pages");
if (removePrefix) return renvoyerValeurCorrecte("truk_pages");
else return renvoyerValeurCorrecte(PREFIXE+"_truk_pages");
}
public void setPages(String pages) {
this.set("truk_pages", pages);
if (removePrefix) this.set("truk_pages", pages);
else this.set(PREFIXE+"_truk_pages", pages);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/Publication.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/publication/Publication.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationListe.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationListe.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/modeles/publication/PublicationListe.java:r11-934
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java
8,6 → 8,8
import org.tela_botanica.client.http.JsonRestRequestCallback;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.projet.Projet;
import org.tela_botanica.client.modeles.projet.ProjetListe;
import org.tela_botanica.client.modeles.structure.StructureListe;
import org.tela_botanica.client.synchronisation.Reponse;
import org.tela_botanica.client.util.Debug;
31,66 → 33,120
utilisateurId = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).getUtilisateurId();
}
 
public void selectionner(final String publicationId, String projetId, String nomComplet, final int nbElements, final int pageCourante, final Integer seqId) {
String[] parametres = {projetId, publicationId, nomComplet};
 
/**
* @param paginationProgressive : définit le mode de consultation de la base de données
* - True : la consultation des données est progressive, ce qui signifie que la liste est chargée (paginée) au
* fur et à mesure de la consultation des données par l'utilisateur.
* - False : la consultation des données est classique : un seul appel à la base de données est effectué, le retour
* 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 efficacement (on ne voit pas les enregistrement suivants)
*/
public void selectionner(final boolean paginationProgressive, final String publicationId, String projetId, String nomComplet, final int start, final int nbElements, final Integer seqId) {
String nom = (nomComplet == null) ? "%" : nomComplet+"%";
String[] param = {publicationId, projetId, nom};
HashMap<String, String> restrictions = new HashMap<String, String>();
restrictions.put("orderby", "cpu_titre");
restrictions.put("start", String.valueOf(pageCourante*nbElements));
if (nbElements != -1) {
restrictions.put("orderby", "cpu_fmt_nom_complet");
if (nbElements != -1) {
restrictions.put("limit", String.valueOf(nbElements));
}
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
// Si la requête est un succès, réception d'un objet ou d'un tableau
JSONArray responseArray = responseValue.isArray();
if (responseArray.get(1).isObject() != null) {
final JSONObject reponse = responseArray.get(1).isObject();
// Transformation du tableau JSON réponse en ListeInstitution
Publication publication = new Publication(reponse);
// et on met à jour le demandeur des données
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publication, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publication);
}
/** 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, param, 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("<-- PublicationAsyncDao > Liste paginée, retour au sequenceur");
Reponse reponseRequete = new Reponse(responseValue, seqId);
vueARafraichir.rafraichir(reponseRequete);
}
else {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > 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, param, restrictions);
rb.envoyerRequete(null, new JsonRestRequestCallback() {
public void surReponse(JSONValue responseValue) {
if (responseValue != null) {
} else if (responseArray.get(1).isArray() != null) {
final JSONArray reponse = responseValue.isArray();
PublicationListe publications;
if (reponse.get(1).isObject() != null) {
publications = new PublicationListe(reponse.get(1).isArray());
} else {
publications = new PublicationListe(reponse.get(1).isArray(), reponse.get(0).isNumber(), vueARafraichir);
}
JSONObject responseObject = responseValue.isObject();
publications.setTaillePage(nbElements);
publications.setPageCourante(pageCourante);
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publications, seqId);
vueARafraichir.rafraichir(reponseRequete);
if (responseObject != null) {
// Si la réponse est un tableau, alors c'est une liste de projets qui a été retournée
if (responseObject.get("publications").isArray() != null) {
 
JSONArray reponse = responseObject.get("publications").isArray();
PublicationListe publications;
publications = new PublicationListe(reponse, responseObject.get("nbElements").isNumber(), vueARafraichir);
publications.setTaillePage(nbElements);
publications.setPageCourante(start);
 
if (seqId != null) {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > Liste non paginée, retour au sequenceur");
Reponse retourRequete = new Reponse(publications, seqId);
vueARafraichir.rafraichir(retourRequete);
} else {
if (Mediateur.DEBUG) System.out.println("<-- PublicationAsyncDao > Liste non paginée, retour à "+vueARafraichir.getClass().toString());
vueARafraichir.rafraichir(publications);
}
// Si la réponse est un objet, alors c'est un unique projet qui a été retourné
} else if (responseObject.get("publications").isObject() != null) {
JSONObject reponse = responseObject.get("publications").isObject();
// Transformation du tableau JSON réponse en ListeInstitution
Publication publication = new Publication(reponse);
// et on met à jour le demandeur des données
if (seqId!=null) {
Reponse reponseRequete = new Reponse(publication, seqId);
vueARafraichir.rafraichir(reponseRequete);
} else {
vueARafraichir.rafraichir(publication);
}
}
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas un objet ou un tableau JSON et vaut : "+responseValue.toString(), null);
}
} else {
if (publicationId == null) {
PublicationListe publications = new PublicationListe(0);
vueARafraichir.rafraichir(publications);
}
} else {
GWT.log("La réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
}
} else {
// Dans le cas, où nous demandons toutes les publication et qu'il n'y en a pas, nous retournons un objet vide
if (publicationId == null) {
PublicationListe publications = new PublicationListe(0);
vueARafraichir.rafraichir(publications);
}
}
}
});
});
}
}
 
public void ajouter(Publication publication, final Integer seqId) {
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/publication/PublicationAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/Valeur.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/Valeur.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/Valeur.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles/ValeurListe.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles/ValeurListe.java:r11-68
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/ValeurListe.java:r1417-1511
/trunk/src/org/tela_botanica/client/modeles
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/modeles:r11-50
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles:r1417-1511
/trunk/src/org/tela_botanica/client/Mediateur.java
27,6 → 27,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;
93,7 → 94,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;
public static final boolean DEBUG_CHARGEMENT = true;
private EnteteVue panneauNord = null;
private NavigationVue panneauOuest = null;
310,6 → 311,10
else fileDAttenteChargement.put(caller, fileDAttenteChargement.get(caller)-1);
if (!chargementsEnCours()) desactiverChargement();
else if (DEBUG_CHARGEMENT) {
System.out.println("[CHARGEMENT] Patienter, il y a encore un chargement en cours.");
debugFileAttente();
}
}
private void desactiverChargement() {
335,7 → 340,7
Iterator<Object> it = fileDAttenteChargement.keySet().iterator();
while (it.hasNext()) {
Object o = it.next();
System.out.println(" ==> ["+o+"] = "+fileDAttenteChargement.get(o));
System.out.println(" ["+o+"] = "+fileDAttenteChargement.get(o));
}
}
1118,6 → 1123,16
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de la relation COLLECTION A PUBLICATION
public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, String recherche, int start, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionAPublication");
Integer seqId = null;
if (sequenceur!=null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollectionAPublication(vueARafraichir, collectionId, recherche, start, nbElements, seqId);
}
public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionAPublication");
Integer seqId = null;
1170,6 → 1185,16
modele.selectionnerCollectionACommentaire(vueARafraichir, collectionId, seqId);
}
public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner CollectionACommentaire");
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCollectionACommentaire(vueARafraichir, collectionId, recherche, pageCourante, nbElements, seqId);
}
/** AJOUTER **/
public void ajouterCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, CollectionACommentaireListe commentairesAjoutees) {
if (commentairesAjoutees != null && commentairesAjoutees.size() > 0) {
1464,9 → 1489,19
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerPublication(vueARafraichir, publicationId, projetId, nomComplet, nbElements, pageCourante, seqId);
modele.selectionnerPublication(vueARafraichir, publicationId, projetId, nomComplet, pageCourante, nbElements, seqId);
}
public void selectionnerPublication(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Publication");
Integer seqId = null;
if (sequenceur!=null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerPublication(vueARafraichir, recherche, start, nbElements, seqId);
}
/** AJOUTER **/
public void ajouterPublication(Rafraichissable vueARafraichir, Publication publication, Integer seqId) {
modele.ajouterPublication(vueARafraichir, publication, seqId);
1532,6 → 1567,35
}
modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleIds, seqId);
}
public void selectionnerPublicationsAPersonne(Rafraichissable vueARafraichir, String personneId, List<Valeur> roleId, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner PublicationAPersonne");
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
String roleIds = "";
Iterator<Valeur> itRole = roleId.iterator();
while (itRole.hasNext()) {
roleIds+= itRole.next().getId();
if (itRole.hasNext()) {
roleIds+=",";
}
}
modele.selectionPublicationsAPersonne(vueARafraichir, personneId, roleIds, recherche, pageCourante, nbElements, seqId);
}
public void selectionnerPersonnesAPublication(Rafraichissable vueARafraichir, String publicationId, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner PublicationAPersonne");
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionPersonnesAPublication(vueARafraichir, publicationId, recherche, pageCourante, nbElements, seqId);
}
 
/** AJOUTER **/
// Lier une publication à plusieurs personnes
1688,6 → 1752,16
modele.selectionnerCommentaire(vueARafraichir, commentaireId, getProjetId(), titre, pageCourante, nbElements, seqId);
}
public void selectionnerCommentaire(Rafraichissable vueARafraichir, String recherche, int pageCourante, int nbElements, Sequenceur sequenceur) {
if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner Commentaire");
Integer seqId = null;
if (sequenceur != null) {
seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
vueARafraichir = sequenceur;
}
modele.selectionnerCommentaire(vueARafraichir, recherche, pageCourante, nbElements, seqId);
}
/** Cette méthode est un wrapper **/
public void selectionnerCommentaireParTitre(Rafraichissable vueARafraichir, String titre, Sequenceur sequenceur) {
selectionnerCommentaire(vueARafraichir, null, titre, 0, nbElements, sequenceur);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/Mediateur.java:r11-59
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/Mediateur.java:r1417-1511
/trunk/src/org/tela_botanica/client
Property changes:
Added: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client:r1209-1382
Merged /branches/v1.1-aramon/src/org/tela_botanica/client:r1383-1511
Merged /branches/v1.0-syrah/src/org/tela_botanica/client:r1136-1208