Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 781 → Rev 782

/trunk/src/org/tela_botanica/client/vues/Formulaire.java
97,8 → 97,8
protected abstract SelectionListener<ButtonEvent> creerEcouteurValidation();
protected abstract void soumettreFormulaire(Rafraichissable vueARafraichir);
protected abstract void soumettreFormulaire();
protected TabItem creerOnglet(String nom, String id) {
TabItem onglet = new TabItem();
onglet.setId(id);
107,14 → 107,19
return onglet;
}
 
protected void verifierApresRafraichissement() {
protected void controlerFermetureApresRafraichissement() {
// Si le bouton Valider a été cliqué, nous affichons la liste des structures
if (clicBoutonvalidation) {
mediateur.clicMenu(menuIdCourant);
clicBoutonvalidation = false;
fermerFormulaire();
}
}
protected void fermerFormulaire() {
clicBoutonvalidation = false;
panneauFormulaire.setEnabled(false);
mediateur.clicMenu(menuIdCourant);
}
/** Méthode simplifiant la création de FormLayout.
* Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
*
/trunk/src/org/tela_botanica/client/vues/CollectionFormPublication.java
192,10 → 192,10
public void componentSelected(ButtonEvent ce) {
String code = ((Button) ce.getComponent()).getData("code");
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
formulaire.soumettreFormulaire(renvoyerCollectionFormPublication());
formulaire.soumettreFormulaire();
fenetre.hide();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
formulaire.soumettreFormulaire(renvoyerCollectionFormPublication());
formulaire.soumettreFormulaire();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
fenetre.hide();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
209,10 → 209,6
return ecouteur;
}
private CollectionFormPublication renvoyerCollectionFormPublication() {
return this;
}
private Button creerBoutonSupprimer() {
Button bouton = new Button(i18nC.supprimer());
bouton.setIcon(Images.ICONES.vcardSupprimer());
/trunk/src/org/tela_botanica/client/vues/CollectionForm.java
197,7 → 197,7
} catch (Exception e) {
GWT.log("rafraichir()", e);
}
verifierApresRafraichissement();
controlerFermetureApresRafraichissement();
}
 
private void rafraichirInformation(Information info) {
235,10 → 235,10
public void componentSelected(ButtonEvent ce) {
String code = ((Button) ce.getComponent()).getData("code");
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
soumettreFormulaire(renvoyerCollectionForm());
soumettreFormulaire();
clicBoutonvalidation = true;
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
soumettreFormulaire(renvoyerCollectionForm());
soumettreFormulaire();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
mediateur.clicMenu(menuIdCourant);
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
250,11 → 250,7
return ecouteur;
}
private CollectionForm renvoyerCollectionForm() {
return this;
}
protected void soumettreFormulaire(Rafraichissable vueARafraichir) {
protected void soumettreFormulaire() {
// Vérification de la validité des champs du formulaire
if (verifierFormulaire()) {
// Collecte des données du formulaire
261,12 → 257,12
Collection collection = collecterCollection();
if (mode.equals(MODE_AJOUTER)) {
mediateur.ajouterCollection(vueARafraichir, collection);
mediateur.ajouterCollection(this, collection);
} else if (mode.equals(MODE_MODIFIER)) {
if (collection == null) {
Info.display("Modification d'une collection", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.modifierCollection(vueARafraichir, collection);
mediateur.modifierCollection(this, collection);
}
}
}
/trunk/src/org/tela_botanica/client/vues/StructureForm.java
244,10 → 244,10
public void componentSelected(ButtonEvent ce) {
String code = ((Button) ce.getComponent()).getData("code");
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
soumettreFormulaire(renvoyerStructureForm());
soumettreFormulaire();
clicBoutonvalidation = true;
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
soumettreFormulaire(renvoyerStructureForm());
soumettreFormulaire();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
mediateur.clicMenu(menuIdCourant);
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
263,11 → 263,7
return ecouteur;
}
private StructureForm renvoyerStructureForm() {
return this;
}
protected void soumettreFormulaire(Rafraichissable vueARafraichir) {
protected void soumettreFormulaire() {
// Vérification de la validité des champs du formulaire
if (verifierFormulaire()) {
// Collecte des données du formulaire
278,7 → 274,7
if (mode.equals(MODE_AJOUTER)) {
// Ajout des informations sur la Structure
mediateur.ajouterStructure(vueARafraichir, structure, conservation, valorisation);
mediateur.ajouterStructure(this, structure, conservation, valorisation);
// L'ajout des relations StructureAPersonne se fait quand la structure a été ajoutée
// Voir la méthode rafraichir().
} else if (mode.equals(MODE_MODIFIER)) {
293,17 → 289,17
} else {
if (personnelModifie.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.modifierStructureAPersonne(vueARafraichir, personnelModifie);
mediateur.modifierStructureAPersonne(this, personnelModifie);
}
// Ajout des relations StructureAPersonne
if (personnelAjoute.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.ajouterStructureAPersonne(vueARafraichir, identification.getId(), personnelAjoute);
mediateur.ajouterStructureAPersonne(this, identification.getId(), personnelAjoute);
}
// Suppression des relations StructureAPersonne
if (personnelSupprime.size() != 0) {
decompteRafraichissementPersonnel++;
mediateur.supprimerStructureAPersonne(vueARafraichir, personnelSupprime);
mediateur.supprimerStructureAPersonne(this, personnelSupprime);
}
}
}
1858,7 → 1854,7
GWT.log("rafraichir()", e);
}
verifierApresRafraichissement();
controlerFermetureApresRafraichissement();
}
public void rafraichirInformation(Information info) {
/trunk/src/org/tela_botanica/client/vues/PublicationForm.java
18,6 → 18,7
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.UtilArray;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
84,10 → 85,21
private boolean validationPublication = false;
private boolean validationAuteurs = false;
protected boolean listeAuteurInitialisee = false;
protected boolean listePersonneAuteurInitialisee = false;
protected boolean listeAuteurPublicationInitialisee = false;
private Rafraichissable vueExterneARafraichirApresValidation = null;
 
public PublicationForm(Mediateur mediateurCourrant, String publicationId) {
initialiserPublicationForm(mediateurCourrant, publicationId);
}
 
public PublicationForm(Mediateur mediateurCourrant, String publicationId, Rafraichissable vueARafraichirApresValidation) {
initialiserPublicationForm(mediateurCourrant, publicationId);
vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
}
private void initialiserPublicationForm(Mediateur mediateurCourrant, String publicationId) {
String modeDeCreation = Formulaire.MODE_AJOUTER;
if (publicationId != null) {
modeDeCreation = Formulaire.MODE_MODIFIER;
111,7 → 123,7
mediateurCourrant.selectionnerPublication(this, publicationId);
mediateurCourrant.selectionnerAuteurAPublication(this, publicationId);
}
 
private void chargerOntologie() {
mediateur.clicObtenirListeEditeurs(this);
mediateur.clicObtenirListeAuteurs(this);
284,166 → 296,213
}
 
public void rafraichir(Object nouvellesDonnees) {
// Si on a reçu les details d'une publication
if (nouvellesDonnees instanceof Publication) {
publi = (Publication) nouvellesDonnees;
genererChampsAuteur(true);
nomArticle.setValue(publi.getTitre());
intituleCollPub.setValue(publi.getCollection());
uriPub.setValue(publi.getURI());
datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
tomPub.setValue(publi.getIndicationNvt());
fasciculePub.setValue(publi.getFascicule());
pagesPub.setValue(publi.getPages());
idPublication = publi.getId();
idStructureEdition = publi.getEditeur();
idProjet = publi.getProjet() ;
// Si on a reçu les details d'une publication
rafraichirPublication((Publication) nouvellesDonnees);
} else if (nouvellesDonnees instanceof StructureListe) {
// Si on a reçu une liste des editeurs
rafraichirListeEditeurs((StructureListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof Information) {
rafraichirInformation((Information) nouvellesDonnees);
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
// Si on a reçu une liste des editeurs
if (nouvellesDonnees instanceof StructureListe) {
storeEditeurs.removeAll();
StructureListe listeStructure = (StructureListe) nouvellesDonnees;
storeEditeurs.add((List<Structure>) listeStructure.toList());
if (mode.equals(Formulaire.MODE_MODIFIER)) {
comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition));
}
comboListeEditeurs.expand();
if (etreValide()) {
reinitialiserValidation();
repandreRafraichissement();
controlerFermetureApresRafraichissement();
}
}
 
private void rafraichirPublication(Publication publication) {
publi = publication;
if (nouvellesDonnees instanceof PublicationAPersonneListe) {
pubAPersonneListeAuteur = (PublicationAPersonneListe) nouvellesDonnees;
genererChampsAuteur(true);
nomArticle.setValue(publi.getTitre());
intituleCollPub.setValue(publi.getCollection());
uriPub.setValue(publi.getURI());
datePub.setRawValue(reduireDateParAnnee(publi.getDateParution()));
tomPub.setValue(publi.getIndicationNvt());
fasciculePub.setValue(publi.getFascicule());
pagesPub.setValue(publi.getPages());
idPublication = publi.getId();
idStructureEdition = publi.getEditeur();
idProjet = publi.getIdProjet() ;
}
private void rafraichirListeEditeurs(StructureListe editeurs) {
storeEditeurs.removeAll();
storeEditeurs.add((List<Structure>) editeurs.toList());
if (mode.equals(Formulaire.MODE_MODIFIER)) {
comboListeEditeurs.setValue((Structure) editeurs.get(idStructureEdition));
}
comboListeEditeurs.expand();
}
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
pubAPersonneListeAuteur = auteurs;
if (listePersonneAuteurInitialisee) {
Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator();
while (itap.hasNext()) {
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getPersonne());
}
if (listeAuteurInitialisee) {
Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator();
while (itap.hasNext()) {
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getPersonne());
int nbAuteurs = 0;
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
if (auteurComboboxListe.size() > 1) {
it.next().setFieldLabel("Auteur "+nbAuteurs);
nbAuteurs++;
}
int nbAuteurs = 0;
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) {
if (auteurComboboxListe.size() > 1) {
it.next().setFieldLabel("Auteur "+nbAuteurs);
nbAuteurs++;
}
}
listeAuteurPublicationInitialisee = true;
}
listeAuteurPublicationInitialisee = true;
}
if (nouvellesDonnees instanceof Information) {
Information nouvellesInfos = (Information)nouvellesDonnees;
}
private void rafraichirInformation(Information info) {
if (info.getType().equals("liste_personne")) {
listePersonneAuteurInitialisee = true;
listePersonneAuteur = (PersonneListe) info.getDonnee(0);
List<Personne> liste = listePersonneAuteur.toList();
auteursStorePartage.removeAll();
auteursStorePartage.add(liste);
} else if (info.getType().equals("publication_valide")) {
validationPublication = true;
idPublication = (String) info.getDonnee(0);
if (nouvellesInfos.getType().equals("liste_personne")) {
listePersonneAuteur = (PersonneListe) nouvellesInfos.getDonnee(0);
List<Personne> liste = listePersonneAuteur.toList();
auteursStorePartage.removeAll();
auteursStorePartage.add(liste);
GWT.log("ok", null);
listeAuteurInitialisee = true;
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterAuteurPublication(this, idAuteurs, PublicationAPersonne.ROLE_AUTEUR, idPublication);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
}
} else if (info.getType().equals("auteur_valide")) {
validationAuteurs = true;
}
}
private Boolean etreValide() {
Boolean valide = false;
if (formValide && validationPublication && validationAuteurs) {
valide = true;
}
return valide;
}
private void reinitialiserValidation() {
formValide = false;
validationPublication = false;
validationAuteurs = false;
}
private void repandreRafraichissement() {
if (vueExterneARafraichirApresValidation != null) {
Information info = new Information("");
if (nouvellesInfos.getType().equals("publication_valide")) {
validationPublication = true;
idPublication = ""+nouvellesInfos.getDonnee(0);
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterAuteurPublication(this, idAuteurs, "2360", idPublication);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierAuteurPublication(this, idAuteurs, idPublication);
vueExterneARafraichirApresValidation.rafraichir(info);
}
}
public void soumettreFormulaire() {
formValide = verifierFormulaire();
if (formValide) {
Publication publication = new Publication();
String auteur = "";
for (int i = 0; i < auteurComboboxListe.size(); i++) {
if (auteurComboboxListe.get(i).getValue() != null) {
idAuteurs += auteurComboboxListe.get(i).getValue().getId();
auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
if (i != auteurComboboxListe.size() -1) {
auteur += "|";
idAuteurs += ",";
}
}
}
if (nouvellesInfos.getType().equals("auteur_valide")) {
validationAuteurs = true;
publication.setAuteur(auteur);
String titre = nomArticle.getValue();
publication.setTitre(titre);
String collection = intituleCollPub.getValue();
publication.setCollection(collection);
String nomComplet = nomArticle.getValue()+" "+intituleCollPub.getValue();
publication.setNomComplet(nomComplet);
String uri = uriPub.getValue();
publication.setUri(uri);
String editeur = "";
if (comboListeEditeurs.getValue() != null) {
editeur = comboListeEditeurs.getValue().getId();
} else if (comboListeEditeurs.getRawValue() != "") {
editeur = comboListeEditeurs.getRawValue();
}
publication.setEditeur(editeur);
if (formValide && validationPublication && validationAuteurs && clicBoutonvalidation) {
clicBoutonvalidation = false;
panneauFormulaire.setEnabled(false);
mediateur.clicMenu(MenuApplicationId.PUBLICATION);
String datePar = datePub.getRawValue();
datePar = datePar+"-00-00";
String tome = tomPub.getValue();
publication.setIndicationNvt(tome);
String fascicule = fasciculePub.getValue();
publication.setFascicule(fascicule);
String pages = pagesPub.getValue();
publication.setPages(pages);
 
if (mode.equals(Formulaire.MODE_AJOUTER)) {
mediateur.ajouterPublication(this, publication);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.modifierPublication(this, publication);
}
}
}
public void soumettreFormulaire(Rafraichissable vueARafraichir) {
String auteur = "";
String idAuteur = "";
private boolean verifierFormulaire() {
boolean valide = true;
ArrayList<String> messages = new ArrayList<String>();
boolean auteurErreur = false;
for (int i = 0; i < auteurComboboxListe.size(); i++) {
if (auteurComboboxListe.get(i).getValue() != null) {
idAuteur += auteurComboboxListe.get(i).getValue().getId();
auteur += auteurComboboxListe.get(i).getValue().getNom()+ " "+auteurComboboxListe.get(i).getValue().getPrenom();
if (i != auteurComboboxListe.size() -1) {
auteur += "|";
idAuteur += ",";
}
auteurErreur = true;
break;
}
}
String erreurs = "";
if (idAuteur == null || idAuteur.equals("")) {
erreurs += "Veuillez entrer au moins un auteur ! ";
} else {
idAuteurs = idAuteur;
if (auteurErreur) {
messages.add("Veuillez saisir au moins un auteur !");
}
String nomArt = nomArticle.getValue();
if (nomArt == null || nomArt.equals("")) {
erreurs += "Veuillez entrer le nom de l'article ! ";
String titre = nomArticle.getValue();
if (titre == null || titre.equals("")) {
messages.add("Veuillez saisir le titre de la publication !");
}
String collPub = intituleCollPub.getValue();
String pub = nomArticle.getValue()+" "+intituleCollPub.getValue();
String uri = uriPub.getValue();
String editeur = "";
if (comboListeEditeurs.getValue() == null) {
//erreurs += "Veuillez sélectionner un éditeur ! ";
} else {
editeur = comboListeEditeurs.getValue().getId();
if(editeur == null || editeur.equals("")) {
erreurs += "Veuillez sélectionner un éditeur ! ";
}
}
String datePar = datePub.getRawValue();
if (datePar == null || datePar.equals("")) {
erreurs += "Veuillez entrer une date ! ";
messages.add("Veuillez saisir une date !");
} else {
String resDate = analyserDate(datePar);
if (resDate.equals("")) {
datePar = datePar+"-00-00";
} else {
erreurs += resDate;
if (!etreDateValide(datePar)) {
messages.add("Format de l'année saisie est incorrect");
}
}
String tome = tomPub.getValue();
 
String fascicule = fasciculePub.getValue();
String pages = pagesPub.getValue();
if (erreurs.length() > 0) {
MessageBox.alert("Erreur dans la saisie des champs", erreurs, null);
} else {
formValide = true;
if (mode.equals(Formulaire.MODE_AJOUTER)) {
Publication publi = new Publication(pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
mediateur.ajouterPublication(this, publi);
} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
Publication publi = new Publication(idPublication, idProjet, pub, uri, auteur, collPub, nomArt, editeur, datePar, tome, fascicule, pages);
mediateur.modifierPublication(this, publi);
}
if (messages.size() != 0) {
String[] tableauDeMessages = {};
tableauDeMessages = messages.toArray(tableauDeMessages);
MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "\n\n"), null);
valide = false;
}
return valide;
}
protected void reinitialiserFormulaire() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.afficherFormPublication(publi.getId());
452,12 → 511,12
}
}
private String analyserDate(String datePar) {
if (datePar.matches("^[0-2][0-9]{3}$")) {
return "";
} else {
return "Format de date incorrect ";
private boolean etreDateValide(String datePar) {
boolean valide = true;
if (!datePar.matches("^[0-2][0-9]{3}$")) {
valide = false;
}
return valide;
}
private String reduireDateParAnnee(String datePar) {
475,10 → 534,10
public void componentSelected(ButtonEvent ce) {
String code = ((Button) ce.getComponent()).getData("code");
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
soumettreFormulaire(renvoyerPublicationForm());
soumettreFormulaire();
clicBoutonvalidation = true;
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
soumettreFormulaire(renvoyerPublicationForm());
soumettreFormulaire();
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
mediateur.clicMenu(menuIdCourant);
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
490,7 → 549,4
return ecouteur;
}
private PublicationForm renvoyerPublicationForm() {
return this;
}
}