/trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java |
---|
480,18 → 480,17 |
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()); |
Log.debug("Récupération info combo :"+personneSaisieSelectionnee.toString()); |
PublicationAPersonne pap = new PublicationAPersonne(aDonnee.GARDER_PREFIXE); |
pap.setPersonne(personneSaisieSelectionnee, aDonnee.INTEGRER_PROPRIETES); |
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); |
pap.setIdPublication(publicationId); |
} |
pap.setIdRole(PublicationAPersonne.ROLE_AUTEUR); |
Log.debug("Récupération info combo pap id :"+pap.getId()); |
if (ajouterDansGrille(pap)) { |
if (grilleAuteurs.getStore().findModel(pap) != null) { |
Info.display("Information", "La personne est déjà présente dans la liste d'auteurs"); |
} else { |
ajouterDansGrille(pap); |
personnesSaisiesComboBox.getCombo().setValue(null); |
} |
} |
499,42 → 498,35 |
}); |
} |
private boolean ajouterDansGrille(PublicationAPersonne pap) { |
return ajouterDansGrille(pap, grilleAuteurs.getStore().getCount()); |
private void ajouterDansGrille(PublicationAPersonne pap) { |
ajouterDansGrille(pap, grilleAuteurs.getStore().getCount()); |
} |
private boolean ajouterDansGrille(PublicationAPersonne pap, int index) { |
boolean ok = false; |
private void ajouterDansGrille(PublicationAPersonne pap, int index) { |
if (pap != null) { |
Log.debug("Début ajout dans grille :"+pap.toString()); |
if (grilleAuteurs.getStore().contains((ModelData) pap)) { |
InfoLogger.display("Information", "La personne choisie existe déjà dans la liste d'auteurs."); |
if (grilleAuteurs.getStore().contains(pap)) { |
InfoLogger.display("Information", "La personne choisie existe déjà dans la liste."); |
} else { |
// 1) si elle ne fait pas partie des initiaux, ajouter à la liste à ajouter |
if (!auteursInitialListe.containsValue(pap)) { |
auteursAjoutes.put(pap.getId(), pap); |
Log.debug("Ajout dans grille -> auteur '"+pap.getId()+"' a été ajouté à la liste des ajoutés (il ne fait pas parti de la liste initiale)."); |
} |
// L'enlever de la liste à supprimer |
if (auteursSupprimes.containsValue(pap)) { |
auteursSupprimes.remove(pap); |
Log.debug("Ajout dans grille -> auteur '"+pap.getId()+"' a été retiré de la liste des supprimés."); |
} |
// 2) Ajouter a la grille |
grilleAuteurs.getStore().insert((ModelData) pap, index); |
grilleAuteurs.getStore().insert(pap, index); |
grilleAuteurs.getSelectionModel().select(index, false); |
ok = true; |
} |
} |
return ok; |
} |
private void supprimerDansGrille() { |
ModelData donneeSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem(); |
PublicationAPersonne personneSelectionnee = new PublicationAPersonne(donneeSelectionnee, aDonnee.GARDER_PREFIXE); |
Log.debug("Début supprimer auteur dans grille : "+personneSelectionnee.toString()); |
PublicationAPersonne personneSelectionnee = new PublicationAPersonne(donneeSelectionnee, false); |
if (personneSelectionnee.getId() == null) { |
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerAuteur()); |
} else { |
544,12 → 536,12 |
Log.debug("Ajout Personne à supprimer : "+auteursSupprimes.toString()); |
} |
if (auteursAjoutes.containsKey(personneSelectionnee.getId())) { |
auteursAjoutes.remove(personneSelectionnee.getId()); |
if (auteursAjoutes.containsValue(personneSelectionnee)) { |
auteursAjoutes.remove(personneSelectionnee); |
} |
if (auteursModifies.containsKey(personneSelectionnee.getId())) { |
auteursModifies.remove(personneSelectionnee.getId()); |
if (auteursModifies.containsValue(personneSelectionnee)) { |
auteursModifies.remove(personneSelectionnee); |
} |
// 2) Supprimer la personne de la liste |
620,9 → 612,8 |
Iterator<ModelData> itAuteurs = auteurs.iterator(); |
while (itAuteurs.hasNext()) { |
ModelData selection = itAuteurs.next(); |
PublicationAPersonne pap = new PublicationAPersonne(selection, aDonnee.GARDER_PREFIXE); |
auteursInitialListe.put(pap.getId(), pap); |
Log.debug("PublicationAPersonne ajoutée à la liste initiale avec l'id :"+pap.getId()+pap.toString()+selection.getProperties().toString()); |
PublicationAPersonne auteur = new PublicationAPersonne(selection, false); |
auteursInitialListe.put(auteur.getId(), auteur); |
} |
Log.debug("Initialisation liste auteur :"+auteursInitialListe.size()); |
} |
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationAPersonne.java |
---|
7,7 → 7,6 |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Log; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.google.gwt.json.client.JSONObject; |
72,20 → 71,21 |
Iterator<String> it = cles.iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
Object valeur = modeleProprietes.get(cle); |
if (modeleProprietes.get(cle) != null) { |
String cleObjet = ""; |
if (removePrefix) { |
cleObjet = cle.replaceFirst("^"+Personne.PREFIXE+"_", ""); |
cleObjet = cle.replaceFirst("^"+Publication.PREFIXE+"_", ""); |
cleObjet = cleObjet.replaceFirst("^"+getPrefixe()+"_", ""); |
} else { |
cleObjet = cle; |
} |
this.set(cleObjet, valeur); |
this.set(cleObjet, modeleProprietes.get(cle)); |
} |
} |
setPersonne(new Personne(modele, removePrefix)); |
setPublicationLiee(new Publication(modele, removePrefix)); |
initialiserChampsPourGrille(); |
this.set("_role_", modeleProprietes.get("_role_")); |
this.set("_etat_", modeleProprietes.get("_etat_")); |
} else { |
139,7 → 139,6 |
public void setPersonne(Personne personne, boolean integrerProprietes) { |
personneLiee = personne; |
if (personne != null) { |
Log.debug("Tentative ajout id personne : "+personne.getId()); |
setIdPersonne(personne.getId()); |
} |
177,8 → 176,7 |
// ID PUBLICATION |
public String getIdPublication() { |
String valeur = renvoyerValeurCorrecte("id_publication"); |
return UtilString.isEmpty(valeur) ? "0" : valeur; |
return renvoyerValeurCorrecte("id_publication"); |
} |
public void setIdPublication(String id) { |
setValeurCorrecte("id_publication", id); |
197,8 → 195,7 |
// ID PERSONNE |
public String getIdPersonne() { |
String valeur = renvoyerValeurCorrecte("id_personne"); |
return UtilString.isEmpty(valeur) ? "0" : valeur; |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setIdPersonne(String id) { |
setValeurCorrecte("id_personne", id); |
206,8 → 203,7 |
// ID RôLE |
public String getIdRole() { |
String valeur = renvoyerValeurCorrecte("id_role"); |
return UtilString.isEmpty(valeur) ? "0" : valeur; |
return renvoyerValeurCorrecte("id_role"); |
} |
public void setIdRole(String id) { |
setValeurCorrecte("id_role", id); |
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java |
---|
29,9 → 29,6 |
private static final long serialVersionUID = 3527760464061629791L; |
public static final boolean SUPPRIMER_PREFIXE = true; |
public static final boolean GARDER_PREFIXE = false; |
public static final boolean INTEGRER_PROPRIETES = true; |
public static final String TYPE_AUTRE = "AUTRE"; |
public static final String TYPE_TOTAL = "TOTAL"; |
public static final String SEPARATEUR_TYPE_VALEUR = "##"; |
103,7 → 100,7 |
*/ |
protected String renvoyerValeurCorrecte(String cle) { |
String sortie = ""; |
cle = gererPrefixe(cle); |
cle = (removePrefix) ? cle : getPrefixe()+"_"+cle; |
if (this.get(cle) != null) { |
String valeur = ""+this.get(cle); |
if (! valeur.equals("null")) { |
124,7 → 121,7 |
* @param la valeur associé à la clé |
*/ |
protected void setValeurCorrecte(String cle, String valeur) { |
cle = gererPrefixe(cle); |
cle = (removePrefix) ? cle : getPrefixe()+"_"+cle; |
set(cle, valeur); |
} |
202,7 → 199,7 |
* @param valeur la valeur à ajouter |
*/ |
protected void setChaineDenormaliseUnique(String champ, String type, String valeur) { |
champ = gererPrefixe(champ); |
champ = (removePrefix) ? champ : getPrefixe()+"_"+champ; |
if (valeur == null || UtilString.isEmpty(valeur)) { |
this.set(champ, ""); |
} else if (valeur instanceof String) { |
214,17 → 211,6 |
} |
} |
private String gererPrefixe(String champ) { |
String champMisAJour = null; |
String prefixe = getPrefixe()+"_"; |
if (removePrefix) { |
champMisAJour = champ.replaceFirst(prefixe, ""); |
} else { |
champMisAJour = (champ.startsWith(prefixe)) ? champ : prefixe+champ ; |
} |
return champMisAJour; |
} |
/** |
* Permet de récupérer pour l'affichage une chaine dénormalisée unique (champ de type "ce_truk"). |
* |
/trunk/src/org/tela_botanica/client/modeles/personne/Personne.java |
---|
10,7 → 10,6 |
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.Log; |
import org.tela_botanica.client.util.UtilString; |
import com.extjs.gxt.ui.client.data.ModelData; |
23,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"; |
32,7 → 32,8 |
private PublicationAPersonneListe publicationsLiees= null; |
public Personne() {} |
public Personne() { |
} |
public Personne(ModelData model) { |
creerPersonne(model, false); |
43,6 → 44,7 |
} |
private void creerPersonne(ModelData model, boolean removePrefix) { |
this.removePrefix = removePrefix; |
Map<String, Object> a = model.getProperties(); |
132,8 → 134,8 |
// ID PERSONNE |
public String getId() { |
Log.debug("Dans getId() Personne : "+this.toString()); |
return renvoyerValeurCorrecte("id_personne"); |
if (removePrefix) return renvoyerValeurCorrecte("id_personne"); |
else return renvoyerValeurCorrecte(PREFIXE+"_id_personne"); |
} |
public void setId(String personneId) { |
if (removePrefix) this.set("id_personne", personneId); |