/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/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/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); |
} |
} |