Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 900 → Rev 901

/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonne.java
13,6 → 13,8
public static final String ROLE_AUTEUR = "2360";
private Personne personneLiee = null;
public PublicationAPersonne() {}
public PublicationAPersonne(JSONObject pubAPersListe) {
personneLiee = new Personne(pubAPersListe);
46,6 → 48,55
}
public void setPersonne(Personne personne) {
personneLiee = personne;
if (personne != null) {
setIdPersonne(personne.getId());
}
}
// ID
public String getId() {
String idPublication = getIdPublication();
String idPersonne = getIdPersonne();
String idRole = getIdRole();
if (idPublication.equals("") && idPersonne.equals("") && idRole.equals("")) {
return null;
} else {
return (idPublication+"-"+idPersonne+"-"+idRole);
}
}
// ID PUBLICATION
public String getIdPublication() {
return renvoyerValeurCorrecte("id_publication");
}
public void setIdPublication(String id) {
set("id_publication", id);
}
// ID PERSONNE
public String getIdPersonne() {
return renvoyerValeurCorrecte("id_personne");
}
public void setIdPersonne(String id) {
set("id_personne", id);
}
// ID RôLE
public String getIdRole() {
return renvoyerValeurCorrecte("id_role");
}
public void setIdRole(String id) {
set("id_role", id);
}
// TYPE
public String getType() {
return renvoyerValeurCorrecte("ce_truk_type");
}
public void setType(String type) {
set("ce_truk_type", type);
}
public void setFonction(String type, String valeur) {
setChaineDenormaliseUnique("ce_truk_type", type, valeur);
}
}
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonneListe.java
24,7 → 24,7
if (publicationAPersonneCourante != null) {
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(publicationAPersonneCourante);
this.put(publicationAPersonne.getPersonne().getId(), publicationAPersonne);
this.put(publicationAPersonne.getId(), publicationAPersonne);
}
}
}
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonneAsyncDao.java
58,7 → 58,7
public void ajouter(String publicationId, String personnesId, String roleId) {
String postDonneesEncodees = "cpuap_id_publication="+URL.encodeComponent(publicationId)
+"&cpuap_id_auteur="+personnesId
+"&cpuap_id_auteur="+URL.encodeComponent(personnesId)
+"&cpuap_id_role="+URL.encodeComponent(roleId)
+"&cmhl_ce_modifier_par="+utilisateurId;
66,7 → 66,7
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "auteur_valide");
traiterReponse(reponseValeur, "ajout_publication_a_personne");
}
}) ;
}
82,11 → 82,28
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue reponseValeur) {
traiterReponse(reponseValeur, "auteur_valide");
traiterReponse(reponseValeur, "modif_publication_a_personne");
}
}) ;
}
public void supprimer(String idPublicationAPersonne) {
String[] parametres = {utilisateurId, idPublicationAPersonne};
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres);
rb.envoyerRequeteSuppression(new JsonRestRequestCallback() {
@Override
public void surReponse(JSONValue responseValue) {
if (responseValue.isString() != null) {
Information info = new Information("suppression_publication_a_personne");
info.setMessage(responseValue.isString().stringValue());
vueARafraichir.rafraichir(info);
} else {
GWT.log(rb.getUrl()+"\n\tLa réponse n'est pas une chaine JSON.", null);
}
}
});
}
private void traiterReponse(JSONValue reponseValeur, String type) {
Information info = new Information(type);
// Si la requête est un succès, réception d'une chaîne
/trunk/src/org/tela_botanica/client/Mediateur.java
23,6 → 23,8
import org.tela_botanica.client.modeles.Projet;
import org.tela_botanica.client.modeles.ProjetListe;
import org.tela_botanica.client.modeles.Publication;
import org.tela_botanica.client.modeles.PublicationAPersonne;
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
import org.tela_botanica.client.modeles.PublicationListe;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureAPersonne;
487,7 → 489,10
if (personnelSupprime != null && personnelSupprime.size() > 0) {
String idStructureAPersonneSepareParVirgule = "" ;
for (Iterator<String> it = personnelSupprime.keySet().iterator(); it.hasNext();) {
idStructureAPersonneSepareParVirgule += personnelSupprime.get(it.next()).getId()+"," ;
idStructureAPersonneSepareParVirgule += personnelSupprime.get(it.next()).getId();
if (it.hasNext()) {
idStructureAPersonneSepareParVirgule += ",";
}
}
modele.supprimerStructureAPersonne(vueARafraichir, idStructureAPersonneSepareParVirgule);
}
589,7 → 594,10
if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
String idCollectionAPersonneSeparesParVirgule = "" ;
for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
idCollectionAPersonneSeparesParVirgule += personnesSupprimees.get(it.next()).getId()+"," ;
idCollectionAPersonneSeparesParVirgule += personnesSupprimees.get(it.next()).getId();
if (it.hasNext()) {
idCollectionAPersonneSeparesParVirgule += ",";
}
}
modele.supprimerCollectionAPersonne(vueARafraichir, idCollectionAPersonneSeparesParVirgule);
}
622,7 → 630,10
if (publicationsSupprimees != null && publicationsSupprimees.size() > 0) {
String idCollectionAPublicationSeparesParVirgule = "" ;
for (Iterator<String> it = publicationsSupprimees.keySet().iterator(); it.hasNext();) {
idCollectionAPublicationSeparesParVirgule += publicationsSupprimees.get(it.next()).getId()+"," ;
idCollectionAPublicationSeparesParVirgule += publicationsSupprimees.get(it.next()).getId();
if (it.hasNext()) {
idCollectionAPublicationSeparesParVirgule += ",";
}
}
modele.supprimerCollectionAPublication(vueARafraichir, idCollectionAPublicationSeparesParVirgule);
}
848,12 → 859,30
modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleId);
}
public void ajouterPublicationAPersonne(Rafraichissable vueArafraichir, String publicationId, String personnesId, String roleId) {
modele.ajouterAuteurPublication(vueArafraichir, publicationId, personnesId, roleId);
public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, PublicationAPersonneListe personnesAjoutees, String roleId) {
if (personnesAjoutees != null && personnesAjoutees.size() > 0) {
String idPublicationAPersonneSepareParVirgule = "" ;
for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {
idPublicationAPersonneSepareParVirgule += personnesAjoutees.get(it.next()).getIdPersonne();
if (it.hasNext()) {
idPublicationAPersonneSepareParVirgule += ",";
}
}
modele.ajouterPublicationAPersonne(vueARafraichir, publicationId, idPublicationAPersonneSepareParVirgule, roleId);
}
}
 
public void modifierPublicationAPersonne(Rafraichissable vueArafraichir, String publicationId, String personnesId, String roleId) {
modele.modifierAuteurPublication(vueArafraichir, publicationId, personnesId, roleId);
public void supprimerPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe personnesSupprimees) {
if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
String idPublicationAPersonneSepareParVirgule = "" ;
for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
idPublicationAPersonneSepareParVirgule += personnesSupprimees.get(it.next()).getId();
if (it.hasNext()) {
idPublicationAPersonneSepareParVirgule += ",";
}
}
modele.supprimerPublicationAPersonne(vueARafraichir, idPublicationAPersonneSepareParVirgule);
}
}
//+----------------------------------------------------------------------------------------------------------------+
/trunk/src/org/tela_botanica/client/vues/PublicationForm.java
14,6 → 14,7
import org.tela_botanica.client.modeles.Publication;
import org.tela_botanica.client.modeles.PublicationAPersonne;
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
import org.tela_botanica.client.modeles.PublicationListe;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.util.Pattern;
41,13 → 42,15
private Publication publication;
private PublicationAPersonneListe publicationAPersonneListe = null;
private boolean publicationAPersonneListeChargementOk = false;
private static boolean publicationAPersonneListeChargementOk = false;
private PublicationAPersonneListe auteursAjoutes = null;
private PublicationAPersonneListe auteursSupprimes = null;
private FieldSet auteursFieldset = null;
private ArrayList<ComboBox<Personne>> auteurComboboxListe = null;
private LayoutContainer conteneurChamps;
private ListStore<Personne> auteursStorePartage = null;
private boolean auteurStorePartageChargementOk = false;
private static boolean auteurStorePartageChargementOk = false;
private FieldSet generalitesFieldset = null;
private TextField<String> titreChp = null;
62,11 → 65,12
private TextField<String> pagesChp = null;
private String idStructureEdition = "";
private String idAuteurs = "";
 
private boolean formulaireValideOk = false;
private boolean publicationValideOk = false;
private boolean auteursValideOk = false;
private static boolean formulaireValideOk = false;
private static boolean publicationValideOk = false;
private static boolean auteursValideOk = false;
private static boolean attenteAjoutAuteursOk = true;
private static boolean attenteSuppressionAuteursOk = true;
 
public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
initialiserPublicationForm(mediateurCourrant, publicationId);
78,6 → 82,9
}
private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
initialiserValidation();
initialiserAffichageAuteurs();
publication = new Publication();
publication.setId(publicationId);
157,11 → 164,13
final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis();
if (auteur != null) {
GWT.log(auteur.getId(), null);
GWT.log("Auteur peuplé : "+auteur.getId(), null);
auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId()));
auteursSaisisComboBox.validate();
}
auteurComboboxListe.add(auteursSaisisComboBox);
auteursSaisisComboBox.setFieldLabel("Auteur "+auteurComboboxListe.size());
GWT.log("Nbre de combobox auteur dans liste : "+auteurComboboxListe.size(), null);
LayoutContainer panneauChampTxtEtBouton = new LayoutContainer();
panneauChampTxtEtBouton.setLayout(new FormLayout());
285,6 → 294,7
}
if (etrePretAAfficherAuteurs()) {
initialiserAffichageAuteurs();
afficherAuteurs();
}
294,7 → 304,25
controlerFermetureApresRafraichissement();
}
}
 
private void miseAJourPublicationAPersonneListe() {
GWT.log("Mise à jour liste publication à personne", null);
Iterator<String> clesAjoutees = auteursAjoutes.keySet().iterator();
while (clesAjoutees.hasNext()) {
String id = clesAjoutees.next();
publicationAPersonneListe.put(id, auteursAjoutes.get(id));
GWT.log("Auteurs ajouté :"+publicationAPersonneListe.get(id).getPersonne().getNomComplet(), null);
}
Iterator<String> clesSupprimees = auteursSupprimes.keySet().iterator();
while (clesSupprimees.hasNext()) {
String id = clesSupprimees.next();
publicationAPersonneListe.remove(id);
GWT.log("Personne surpprimé :"+id, null);
}
GWT.log("Nbre auteurs après maj :"+publicationAPersonneListe.size(), null);
}
private void rafraichirPublication(Publication publi) {
publication = publi;
peuplerFormulaire();
329,21 → 357,38
publication.setId((String) info.getDonnee(0));
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierPublicationAPersonne(this, publication.getId(), idAuteurs, PublicationAPersonne.ROLE_AUTEUR);
attenteAjoutAuteursOk = true;
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
}
} else if (info.getType().equals("auteur_valide")) {
} else if (info.getType().equals("ajout_publication_a_personne")) {
attenteAjoutAuteursOk = false;
GWT.log("attenteAjoutAuteursOk", null);
} else if (info.getType().equals("suppression_publication_a_personne")) {
attenteSuppressionAuteursOk = false;
GWT.log("attenteSuppressionAuteursOk", null);
}
if (avoirAuteursMiseAJourCorrectement()) {
auteursValideOk = true;
miseAJourPublicationAPersonneListe();
initialiserAuteurs();
}
}
private boolean avoirAuteursMiseAJourCorrectement() {
boolean ok = false;
if (attenteAjoutAuteursOk == false && attenteSuppressionAuteursOk == false) {
ok = true;
}
return ok;
}
private void afficherAuteurs() {
Iterator<String> itap = publicationAPersonneListe.keySet().iterator();
GWT.log("Auteur"+publicationAPersonneListe.size(), null);
while (itap.hasNext()) {
creerChampAuteurEtBoutonSupprimer(publicationAPersonneListe.get(itap.next()).getPersonne());
}
initialiserAffichageAuteurs();
}
 
private void initialiserAffichageAuteurs() {
371,9 → 416,17
private void initialiserValidation() {
formulaireValideOk = false;
publicationValideOk = false;
initialiserAuteurs();
auteursValideOk = false;
}
private void initialiserAuteurs() {
attenteAjoutAuteursOk = true;
auteursAjoutes = new PublicationAPersonneListe();
attenteSuppressionAuteursOk = true;
auteursSupprimes = new PublicationAPersonneListe();
}
private void repandreRafraichissement() {
if (vueExterneARafraichirApresValidation != null) {
String type = "publication_modifiee";
390,17 → 443,94
formulaireValideOk = verifierFormulaire();
GWT.log("Form?"+formulaireValideOk, null);
if (formulaireValideOk) {
Publication publicationCollectee = collecterPublication();
if (publicationCollectee != null) {
GWT.log("Info collectée ? ok", null);
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterPublication(this, publicationCollectee);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierPublication(this, publicationCollectee);
soumettrePublication();
soumettreAuteurs();
}
return formulaireValideOk;
}
private void soumettrePublication() {
Publication publicationCollectee = collecterPublication();
if (publicationCollectee != null) {
GWT.log("Info public collectée ? ok", null);
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterPublication(this, publicationCollectee);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierPublication(this, publicationCollectee);
}
}
}
private void soumettreAuteurs() {
attenteAjoutAuteursOk = false;
attenteSuppressionAuteursOk = false;
PersonneListe personnesInitiales = new PersonneListe();
if (publicationAPersonneListe != null) {
GWT.log("Nbre auteur initial :"+publicationAPersonneListe.size(), null);
Iterator<String> itap = publicationAPersonneListe.keySet().iterator();
while (itap.hasNext()) {
Personne personne = publicationAPersonneListe.get(itap.next()).getPersonne();
GWT.log("Auteur initial :"+personne.getNomComplet(), null);
personnesInitiales.put(personne.getId(), personne);
}
}
PersonneListe personnesActuelles = new PersonneListe();
GWT.log("Nbre auteur actuel :"+auteurComboboxListe.size(), null);
for (int i = 0; i < auteurComboboxListe.size(); i++) {
if (auteurComboboxListe.get(i).getValue() != null) {
Personne personne = auteurComboboxListe.get(i).getValue();
personnesActuelles.put(personne.getId(), personne);
}
}
// Auteurs ajoutés
Iterator<String> clesActuelles = personnesActuelles.keySet().iterator();
while (clesActuelles.hasNext()) {
String idActuel = clesActuelles.next();
if (personnesInitiales.size() == 0 || personnesInitiales.get(idActuel) == null) {
Personne personne = personnesActuelles.get(idActuel);
GWT.log("Auteur ajouté :"+personne.getNomComplet(), null);
PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
if (mode.equals(Formulaire.MODE_MODIFIER)) {
publicationAAuteur.setIdPublication(publication.getId());
}
publicationAAuteur.setPersonne(personne);
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
auteursAjoutes.put(publicationAAuteur.getId(), publicationAAuteur);
attenteAjoutAuteursOk = true;
}
}
return formulaireValideOk;
 
// Auteurs supprimés
if (mode.equals(Formulaire.MODE_MODIFIER)) {
Iterator<String> clesInitiales = personnesInitiales.keySet().iterator();
while (clesInitiales.hasNext()) {
String idInitial = clesInitiales.next();
if (personnesActuelles.size() == 0 || personnesActuelles.get(idInitial) == null) {
Personne personne = personnesInitiales.get(idInitial);
GWT.log("Auteur supprimé :"+personne.getNomComplet(), null);
PublicationAPersonne publicationAAuteur = new PublicationAPersonne();
publicationAAuteur.setIdPublication(publication.getId());
publicationAAuteur.setPersonne(personne);
publicationAAuteur.setIdRole(PublicationAPersonne.ROLE_AUTEUR);
auteursSupprimes.put(publicationAAuteur.getId(), publicationAAuteur);
attenteSuppressionAuteursOk = true;
}
}
}
// Execution de les mise à jour pour le mode MODIFICATION
if (mode.equals(Formulaire.MODE_MODIFIER)) {
if (auteursAjoutes != null && auteursAjoutes.size() != 0) {
mediateur.ajouterPublicationAPersonne(this, publication.getId(), auteursAjoutes, PublicationAPersonne.ROLE_AUTEUR);
}
if (auteursSupprimes != null && auteursSupprimes.size() != 0) {
mediateur.supprimerPublicationAPersonne(this, auteursSupprimes);
}
}
}
protected boolean verifierFormulaire() {
479,16 → 609,13
for (int i = 0; i < auteursNombre; i++) {
if (auteurComboboxListe.get(i).getValue() != null) {
Personne auteur = auteurComboboxListe.get(i).getValue();
idAuteurs += auteur.getId();
auteurIntituleFormate += auteur.getNom()+ " "+auteur.getPrenom();
if (i != (auteursNombre - 1)) {
auteurIntituleFormate += ", ";
idAuteurs += ",";
}
}
}
GWT.log("Auteurs formaté :"+auteurIntituleFormate, null);
GWT.log("Auteurs ids :"+idAuteurs, null);
publicationCollectee.setAuteur(auteurIntituleFormate);
String titre = titreChp.getValue();
/trunk/src/org/tela_botanica/client/Modele.java
16,6 → 16,7
import org.tela_botanica.client.modeles.Projet;
import org.tela_botanica.client.modeles.ProjetAsyncDao;
import org.tela_botanica.client.modeles.Publication;
import org.tela_botanica.client.modeles.PublicationAPersonne;
import org.tela_botanica.client.modeles.PublicationAPersonneAsyncDao;
import org.tela_botanica.client.modeles.PublicationAsyncDao;
import org.tela_botanica.client.modeles.Structure;
112,7 → 113,22
ProjetAsyncDao projetsDao = new ProjetAsyncDao(vueARafraichir);
projetsDao.selectionner();
}
public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.selectionnerProjet(projetId);
}
 
public void ajouterProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.ajouter(projetCollecte);
}
 
public void modifierProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.modifier(projetCollecte);
}
 
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DES STRUCTURES
//+----------------------------------------------------------------------------------------------------------------+
303,33 → 319,14
paDao.selectionner(publicationId, personnesId, roleId);
}
public void ajouterAuteurPublication(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId) {
public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId) {
PublicationAPersonneAsyncDao paDao = new PublicationAPersonneAsyncDao(vueARafraichir);
paDao.ajouter(publicationId, personnesId, roleId);
}
 
public void modifierAuteurPublication(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId) {
PublicationAPersonneAsyncDao paDao = new PublicationAPersonneAsyncDao(vueARafraichir);
paDao.modifier(publicationId, personnesId, roleId);
public void supprimerPublicationAPersonne(Rafraichissable vueARafraichir, String publicationsAPersonneId) {
PublicationAPersonneAsyncDao publicationAPersonneDao = new PublicationAPersonneAsyncDao(vueARafraichir);
publicationAPersonneDao.supprimer(publicationsAPersonneId);
}
 
public void selectionnerProjet(Rafraichissable vueARafraichir,
String projetId) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.selectionnerProjet(projetId);
}
 
public void ajouterProjet(Rafraichissable vueARafraichir,
Projet projetCollecte) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.ajouter(projetCollecte);
}
 
public void modifierProjet(Rafraichissable vueARafraichir,
Projet projetCollecte) {
ProjetAsyncDao pADAO = new ProjetAsyncDao(vueARafraichir);
pADAO.modifier(projetCollecte);
}
 
}