/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonneListe.java |
---|
24,7 → 24,7 |
if (publicationAPersonneCourante != null) { |
PublicationAPersonne publicationAPersonne = new PublicationAPersonne(publicationAPersonneCourante); |
this.put(publicationAPersonne.getIdAuteur(), publicationAPersonne); |
this.put(publicationAPersonne.getPersonne().getId(), publicationAPersonne); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/aDonnee.java |
---|
15,6 → 15,7 |
import com.extjs.gxt.ui.client.data.BaseModelData; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.http.client.URL; |
import com.google.gwt.json.client.JSONObject; |
/** |
* @author jpm |
29,6 → 30,27 |
protected abstract String getPrefixe(); |
protected void initialiserModele(JSONObject jsonObjet) { |
// l'objet JSON est une table de hachage |
Set<String> im = jsonObjet.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(getPrefixe()+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (jsonObjet.get(cle).isString() != null) { |
valeur = jsonObjet.get(cle).isString().stringValue(); |
} |
this.set(cleObjet, valeur); |
} |
} |
} |
/** |
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par |
* cette fonction qui retire les charactères nuls qui font planter |
/trunk/src/org/tela_botanica/client/modeles/PublicationAPersonne.java |
---|
11,8 → 11,11 |
public static final String PREFIXE = "cpuap"; |
public static final String ROLE_AUTEUR = "2360"; |
private Personne personneLiee = null; |
public PublicationAPersonne(JSONObject pubAPersListe) { |
personneLiee = new Personne(pubAPersListe); |
// l'objet JSON est une table de hachage |
Set<String> im = pubAPersListe.keySet(); |
38,23 → 41,11 |
return PREFIXE; |
} |
public String getIdAuteur() { |
return renvoyerValeurCorrecte("id_personne"); |
public Personne getPersonne() { |
return personneLiee; |
} |
public String getNomCompletAuteur() { |
return renvoyerValeurCorrecte("cp_fmt_nom_complet"); |
public void setPersonne(Personne personne) { |
personneLiee = personne; |
} |
public String getNomAuteur() { |
return renvoyerValeurCorrecte("cp_nom"); |
} |
public String getPrenomAuteur() { |
return renvoyerValeurCorrecte("cp_prenom"); |
} |
public String getPublication() { |
return renvoyerValeurCorrecte("id_publication"); |
} |
} |
} |
/trunk/src/org/tela_botanica/client/modeles/Personne.java |
---|
22,30 → 22,8 |
public Personne() { |
} |
public Personne(JSONObject liste) { |
// l'objet JSON est une table de hachage |
Set<String> im = liste.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^" + PREFIXE + "_", ""); |
if (liste.get(cle).isString() != null) { |
String valeur = liste.get(cle).isString().stringValue(); |
this.set(cleObjet, valeur); |
} else { |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = " "; |
this.set(cleObjet, valeur); |
} |
} |
} |
public Personne(JSONObject personne) { |
initialiserModele(personne); |
//Ajout du champ courriel principal |
this.set("courriel_princ", this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1)); |
} |
/trunk/src/org/tela_botanica/client/modeles/Collection.java |
---|
1,8 → 1,5 |
package org.tela_botanica.client.modeles; |
import java.util.Iterator; |
import java.util.Set; |
import com.google.gwt.json.client.JSONObject; |
public class Collection extends aDonnee { |
16,24 → 13,7 |
} |
public Collection(JSONObject collection) { |
// l'objet JSON est une table de hachage |
Set<String> im = collection.keySet(); |
// Parcourt pour chaque clé |
for (Iterator<String> it = im.iterator(); it.hasNext();) { |
// Si elle est associée à une valeur, nous l'ajoutons |
String cle = it.next(); |
if (cle.startsWith(PREFIXE+"_")) { |
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet |
String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", ""); |
// Sinon, nous ajoutons la clé avec une valeur vide |
String valeur = ""; |
if (collection.get(cle).isString() != null) { |
valeur = collection.get(cle).isString().stringValue(); |
} |
this.set(cleObjet, valeur); |
} |
} |
initialiserModele(collection); |
} |
@Override |
/trunk/src/org/tela_botanica/client/modeles/PersonneAsyncDao.java |
---|
84,7 → 84,7 |
public void modifier(Personne personne) { |
String postDonneesEncodees = personne.obtenirChainePOST(); |
postDonneesEncodees += "&cmhl_ce_modifier_par=" + utilisateurId; |
GWT.log(postDonneesEncodees, null); |
String[] parametres = {personne.getId()}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequetePost(SERVICE_NOM, parametres); |
rb.envoyerRequete(postDonneesEncodees, new JsonRestRequestCallback() { |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
425,6 → 425,10 |
modele.selectionnerStructure(vueARafraichir, getProjetId(), structureId); |
} |
public void selectionnerStructureParProjet(Rafraichissable vueARafraichir, String projetId) { |
modele.selectionnerStructure(vueARafraichir, projetId, null); |
} |
public void ajouterStructure(Rafraichissable vueARafraichir, Structure structure, StructureConservation conservation, StructureValorisation valorisation) { |
modele.ajouterStructure(vueARafraichir, structure, conservation, valorisation); |
} |
504,8 → 508,7 |
} |
public void clicAjouterCollection() { |
// TODO Auto-generated method stub |
afficherFormCollection(null); |
} |
public void clicModifierCollection(List<Collection> selection) { |
521,8 → 524,7 |
} |
public void clicSupprimerCollection(CollectionListeVue collectionListeVue, List<Collection> collectionsASupprimer) { |
// TODO Auto-generated method stub |
// TODO Auto-generated method stub |
} |
public void selectionnerCollection(Rafraichissable vueARafraichir, String collectionId) { |
529,6 → 531,10 |
modele.selectionnerCollection(vueARafraichir, getProjetId(), collectionId); |
} |
public void selectionnerCollectionParProjet(Rafraichissable vueARafraichir, String projetId) { |
modele.selectionnerCollection(vueARafraichir, projetId, null); |
} |
public void ajouterCollection(Rafraichissable vueARafraichir, Collection collection) { |
modele.ajouterCollection(vueARafraichir, getUtilisateurId(), collection); |
} |
569,7 → 575,7 |
} |
public void clicModifierPersonne(Personne personne) { |
if (personne!=null) { |
if (personne != null) { |
panneauCentre.removeAll(); |
PersonneForm formulairePersonneVue = new PersonneForm(PersonneForm.MODE_MODIFIER); |
panneauCentre.add(formulairePersonneVue); |
579,20 → 585,7 |
panneauCentre.layout(); |
} |
} |
public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId) { |
int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage")); |
selectionnerPersonne(vue, personne, projetId, 0, nbElements); |
} |
public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId, int start, int nbElements) { |
String personneId = null; |
if (personne!=null) { |
personneId = personne.getId(); |
} |
modele.selectionnerPersonne(vue, personneId, projetId, null, start, nbElements); |
} |
public void clicSupprimerPersonne(final Rafraichissable vue,final List<Personne> personneSelection) { |
//Empecher suppression utilisateur |
636,10 → 629,27 |
} |
} |
public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId) { |
int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage")); |
selectionnerPersonne(vue, personne, projetId, 0, nbElements); |
} |
public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId, int start, int nbElements) { |
String personneId = null; |
if (personne != null) { |
personneId = personne.getId(); |
} |
modele.selectionnerPersonne(vue, personneId, projetId, null, start, nbElements); |
} |
public void selectionnerPersonneParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) { |
modele.selectionnerPersonne(vueARafraichir, null, projetId, nomComplet, 0, -1); |
} |
public void selectionnerPersonneParProjet(Rafraichissable vueARafraichir, String projetId) { |
modele.selectionnerPersonne(vueARafraichir, null, projetId, null, 0, -1); |
} |
public void enregistrerPersonne(Rafraichissable vue, Personne personne){ |
if (personne.getId() != null && !personne.getId().trim().equals("")) { |
modele.modifierPersonne(vue, personne); |
653,7 → 663,6 |
//+----------------------------------------------------------------------------------------------------------------+ |
public void afficherListePublication(PublicationListe nouvelleDonnees) { |
if (!(panneauCentre.getContenu() instanceof PublicationVue)) { |
panneauCentre.removeAll(); |
PublicationVue publicationVue = new PublicationVue(this) ; |
667,42 → 676,43 |
panneauCentre.getContenu().rafraichir(nouvelleDonnees); |
} |
public void rechargerListePublication() { |
if (!(panneauCentre.getContenu() instanceof PublicationVue)) { |
panneauCentre.removeAll(); |
PublicationVue publicationVue = new PublicationVue(this) ; |
panneauCentre.setId(ComposantId.PANNEAU_PUBLICATION_LISTE); |
panneauCentre.add(publicationVue); |
panneauCentre.layout(true); |
} |
masquerPopinChargement(); |
modele.selectionnerPublication(panneauCentre.getContenu(),null,null,null); |
public void afficherFormPublication(String publicationId) { |
String mode = Formulaire.MODE_AJOUTER; |
if (publicationId != null) { |
mode = Formulaire.MODE_MODIFIER; |
} |
panneauCentre.removeAll(); |
PublicationForm publicationForm = new PublicationForm(this, mode); |
panneauCentre.add(publicationForm); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
selectionnerPublication(publicationForm, publicationId); |
selectionnerAuteurAPublication(publicationForm, publicationId); |
} |
panneauCentre.layout(); |
} |
public void clicListePublication(Publication publication) { |
if(publication != null) { |
if (publication != null) { |
panneauCentre.getContenu().rafraichir(publication); |
} |
} |
public void clicAjouterPublication() { |
panneauCentre.removeAll(); |
PublicationForm publicationForm = new PublicationForm(); |
panneauCentre.add(publicationForm); |
panneauCentre.layout(); |
afficherFormPublication(null); |
} |
public void clicModifierPublication(List<Publication> publicationListe) { |
if(publicationListe.size() <= 0) { |
MessageBox.alert("Attention", "Vous devez sélectionner une publication", null); |
public void clicModifierPublication(List<Publication> selection) { |
if (selection.size() == 0) { |
Info.display("Information", "Veuillez sélectionner une publication."); |
} else if (selection.size() > 1) { |
Info.display("Information", "Veuillez sélectionner une seule publication à la fois."); |
} else if (selection.size() == 1) { |
afficherFormPublication(selection.get(0).getId()); |
} else { |
Publication pubAModifier = publicationListe.get(publicationListe.size() -1); |
panneauCentre.removeAll(); |
PublicationForm publicationForm = new PublicationForm(); |
panneauCentre.add(publicationForm); |
panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION); |
panneauCentre.layout(); |
publicationForm.rafraichir(pubAModifier); |
Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierPublication() du Médiateur."); |
} |
} |
711,7 → 721,7 |
MessageBox.alert("Attention", "Vous devez sélectionner une publication", null); |
} else { |
String message = "Voulez-vous vraiment supprimer ces publications ?"; |
if(publicationListe.size() == 1) { |
if (publicationListe.size() == 1) { |
message = "Voulez-vous vraiment supprimer cette publication ?"; |
} |
747,12 → 757,11 |
} |
public void clicObtenirListeEditeurs(Rafraichissable vueARafraichir) { |
modele.selectionnerStructure(vueARafraichir, null, null); |
selectionnerStructureParProjet(vueARafraichir, null); |
} |
public void clicObtenirListeAuteurs(Rafraichissable vueARafraichir) { |
//modele.selectionnerPersonne(vueARafraichir, null, null, null); |
selectionnerPersonne(vueARafraichir, null, null); |
selectionnerPersonneParProjet(vueARafraichir, null); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
779,19 → 788,16 |
((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide(); |
} |
public void ajouterAuteurPublication(Rafraichissable vueArafraichir, |
String idAuteurs, String role, String idPublication) { |
public void ajouterAuteurPublication(Rafraichissable vueArafraichir, String idAuteurs, String role, String idPublication) { |
modele.ajouterAuteurPublication(vueArafraichir, idAuteurs, role, idPublication); |
} |
public void modifierAuteurPublication(Rafraichissable vueArafraichir, |
String idAuteurs, String idPublication) { |
public void modifierAuteurPublication(Rafraichissable vueArafraichir, String idAuteurs, String idPublication) { |
modele.modifierAuteurPublication(vueArafraichir, idAuteurs, idPublication); |
} |
public void selectionnerAuteurAPublication(Rafraichissable vueARafraichir, |
String idPublication) { |
public void selectionnerAuteurAPublication(Rafraichissable vueARafraichir, String idPublication) { |
modele.selectionPublicationAPersonne(vueARafraichir, null, idPublication, "2360"); |
} |
/trunk/src/org/tela_botanica/client/Coel.java |
---|
15,7 → 15,7 |
mediateur = getMediateur(); |
// J'appelle directement la page où je travaille |
mediateur.clicMenu(MenuApplicationId.STRUCTURE); |
mediateur.clicMenu(MenuApplicationId.COLLECTION); |
} |
protected Mediateur getMediateur() { |
/trunk/src/org/tela_botanica/client/vues/CollectionFormGeneral.java |
---|
123,7 → 123,7 |
structuresCombo.setTriggerAction(TriggerAction.ALL); |
structuresCombo.setStore(structuresStore); |
liaisonFieldSet.add(structuresCombo, new FormData(450, 0)); |
mediateur.selectionnerStructure(this, null); |
mediateur.selectionnerStructureParProjet(this, null); |
collectionsStore = new ListStore<Collection>(); |
collectionsCombo = new ComboBox<Collection>(); |
150,7 → 150,7 |
collectionsCombo.setTriggerAction(TriggerAction.ALL); |
collectionsCombo.setStore(collectionsStore); |
liaisonFieldSet.add(collectionsCombo, new FormData(450, 0)); |
mediateur.selectionnerCollection(this, null); |
mediateur.selectionnerCollectionParProjet(this, null); |
this.add(liaisonFieldSet); |
} |
/trunk/src/org/tela_botanica/client/vues/CollectionForm.java |
---|
74,6 → 74,7 |
private HashMap<String,ComboBox<Valeur>> champsCbv = new HashMap<String,ComboBox<Valeur>>(); |
private HashMap<String,ListStore<Valeur>> champsLsv = new HashMap<String,ListStore<Valeur>>(); |
private TabPanel onglets = null; |
private TabItem generalOnglet = null; |
private TabItem auteurOnglet = null; |
private TabItem publicationOnglet = null; |
84,39 → 85,42 |
public CollectionForm(Mediateur mediateurCourrant, String modeDeCreation) { |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.COLLECTION); |
// Création des onglets |
onglets = creerOnglets(); |
// Ajout des onglets au formulaire général |
panneauFormulaire.add(onglets); |
} |
protected void creerOnglets() { |
onglets = new TabPanel(); |
protected TabPanel creerOnglets() { |
TabPanel ongletsCollection = new TabPanel(); |
// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner) |
onglets.setHeight("100%"); |
ongletsCollection.setHeight("100%"); |
// Onlget formulaire GENERAL |
onglets.add(creerOngletGeneral()); |
ongletsCollection.add(creerOngletGeneral()); |
// Onlget formulaire AUTEUR |
onglets.add(creerOngletAuteur()); |
ongletsCollection.add(creerOngletAuteur()); |
// Onlget formulaire PUBLICATION |
onglets.add(creerOngletPublication()); |
ongletsCollection.add(creerOngletPublication()); |
// Onlget formulaire DESCRIPTION |
onglets.add(creerOngletDescription()); |
ongletsCollection.add(creerOngletDescription()); |
// Onlget formulaire CONTENU |
onglets.add(creerOngletContenu()); |
ongletsCollection.add(creerOngletContenu()); |
// Onlget formulaire DOCUMENT |
onglets.add(creerOngletDocument()); |
ongletsCollection.add(creerOngletDocument()); |
// Onlget formulaire INVENTAIRE |
onglets.add(creerOngletInventaire()); |
ongletsCollection.add(creerOngletInventaire()); |
// Sélection de l'onglet par défaut |
onglets.setSelection(auteurOnglet); |
ongletsCollection.setSelection(auteurOnglet); |
// Ajout des onglets au formulaire général |
panneauFormulaire.add(onglets); |
return ongletsCollection; |
} |
private TabItem creerOngletGeneral() { |
225,23 → 229,20 |
} |
@Override |
protected SelectionListener<ButtonEvent> creerEcouteurBoutonFormulaire(final String code) { |
protected SelectionListener<ButtonEvent> creerEcouteurValidation() { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
if (code.equals(Formulaire.CODE_BOUTON_VALIDER)) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
soumettreFormulaire(); |
clicBoutonvalidation = true; |
} else if (code.equals(Formulaire.CODE_BOUTON_APPLIQUER)) { |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
soumettreFormulaire(); |
} else if (code.equals(Formulaire.CODE_BOUTON_ANNULER)) { |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
mediateur.clicMenu(menuIdCourant); |
} else if (code.equals(Formulaire.CODE_BOUTON_REINITIALISER)) { |
if (mode.equals(StructureForm.MODE_MODIFIER)) { |
mediateur.afficherFormCollection(collection.getId()); |
} else { |
mediateur.afficherFormCollection(null); |
} |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
reinitialiserFormulaire(); |
} |
} |
}; |
267,6 → 268,14 |
} |
} |
protected void reinitialiserFormulaire() { |
if (mode.equals(StructureForm.MODE_MODIFIER)) { |
mediateur.afficherFormCollection(collection.getId()); |
} else { |
mediateur.afficherFormCollection(null); |
} |
} |
private Collection collecterCollection() { |
collectionCollectee = (Collection) collection.cloner(new Collection()); |
288,10 → 297,4 |
private Boolean verifierFormulaire() { |
return true; |
} |
@Override |
protected void afficherChampSupplementaire(Radio radioBtn) { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/client/vues/StructureForm.java |
---|
87,6 → 87,7 |
private static int decompteRafraichissementPersonnel = 0; |
private TabPanel onglets = null; |
private TabItem identificationOnglet = null; |
private TabItem personnelOnglet = null; |
private TabItem conservationOnglet = null; |
206,44 → 207,50 |
public StructureForm(Mediateur mediateurCourrant, String modeDeCreation) { |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.STRUCTURE); |
// Ajout du titre |
panneauFormulaire.setHeading(i18nC.titreAjoutFormStructurePanneau()); |
// Création des onglets |
onglets = creerOnglets(); |
// Ajout des onglets au formulaire général |
panneauFormulaire.add(onglets); |
} |
protected void creerOnglets() { |
onglets = new TabPanel(); |
protected TabPanel creerOnglets() { |
TabPanel ongletsStructure = new TabPanel(); |
// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner) |
onglets.setHeight("100%"); |
ongletsStructure.setHeight("100%"); |
// Onlget formulaire IDENTIFICATION |
onglets.add(creerOngletIdentification()); |
ongletsStructure.add(creerOngletIdentification()); |
// Onlget formulaire PERSONNEL |
onglets.add(creerOngletPersonnel()); |
ongletsStructure.add(creerOngletPersonnel()); |
// Onlget formulaire CONSERVATION |
onglets.add(creerOngletConservation()); |
ongletsStructure.add(creerOngletConservation()); |
// Onlget formulaire VALORISATION |
onglets.add(creerOngletValorisation()); |
ongletsStructure.add(creerOngletValorisation()); |
// Sélection de l'onglet par défaut |
//onglets.setSelection(personnelOnglet); |
//ongletsStructure(personnelOnglet); |
// Ajout des onglets au formulaire général |
panneauFormulaire.add(onglets); |
return ongletsStructure; |
} |
protected SelectionListener<ButtonEvent> creerEcouteurBoutonFormulaire(final String code) { |
protected SelectionListener<ButtonEvent> creerEcouteurValidation() { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
if (code.equals(Formulaire.CODE_BOUTON_VALIDER)) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
soumettreFormulaire(); |
clicBoutonvalidation = true; |
} else if (code.equals(Formulaire.CODE_BOUTON_APPLIQUER)) { |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
soumettreFormulaire(); |
} else if (code.equals(Formulaire.CODE_BOUTON_ANNULER)) { |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
mediateur.clicMenu(menuIdCourant); |
} else if (code.equals(Formulaire.CODE_BOUTON_REINITIALISER)) { |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
if (mode.equals(StructureForm.MODE_MODIFIER)) { |
mediateur.afficherFormStructure(identification.getId()); |
} else { |
255,7 → 262,7 |
return ecouteur; |
} |
protected void soumettreFormulaire() { |
// Vérification de la validité des champs du formulaire |
if (verifierFormulaire()) { |
/trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java |
---|
New file |
0,0 → 1,75 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.images.Images; |
import com.extjs.gxt.ui.client.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
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.toolbar.FillToolItem; |
import com.google.gwt.user.client.ui.AbstractImagePrototype; |
public class FormulaireBarreValidation extends ButtonBar { |
private SelectionListener<ButtonEvent> ecouteur = null; |
public static final String CODE_BOUTON_VALIDER = "VA"; |
public static final String CODE_BOUTON_APPLIQUER = "AP"; |
public static final String CODE_BOUTON_ANNULER = "AN"; |
public static final String CODE_BOUTON_REINITIALISER = "RE"; |
public FormulaireBarreValidation(SelectionListener<ButtonEvent> ecouteurCourrant) { |
ecouteur = ecouteurCourrant; |
creerBarreOutilsValidation(); |
} |
private void creerBarreOutilsValidation() { |
this.setAlignment(HorizontalAlignment.LEFT); |
this.add(creerBouton(CODE_BOUTON_REINITIALISER)); |
this.add(new FillToolItem()); |
this.add(creerBouton(CODE_BOUTON_APPLIQUER)); |
this.add(creerBouton(CODE_BOUTON_ANNULER)); |
this.add(creerBouton(CODE_BOUTON_VALIDER)); |
} |
private Button creerBouton(final String code) { |
String nom = getNom(code); |
Button bouton = new Button(nom); |
bouton.setData("code", code); |
bouton.setIcon(getIcone(code)); |
bouton.addSelectionListener(ecouteur); |
return bouton; |
} |
private AbstractImagePrototype getIcone(final String code) { |
AbstractImagePrototype icone = null; |
if (code.equals(CODE_BOUTON_VALIDER)) { |
icone = Images.ICONES.valider(); |
} else if (code.equals(CODE_BOUTON_APPLIQUER)) { |
icone = Images.ICONES.appliquer(); |
} else if (code.equals(CODE_BOUTON_ANNULER)) { |
icone = Images.ICONES.annuler(); |
} else if (code.equals(CODE_BOUTON_REINITIALISER)) { |
icone = Images.ICONES.reinitialiser(); |
} |
return icone; |
} |
private String getNom(final String code) { |
String nom = null; |
if (code.equals(CODE_BOUTON_VALIDER)) { |
nom = Mediateur.i18nC.valider(); |
} else if (code.equals(CODE_BOUTON_APPLIQUER)) { |
nom = Mediateur.i18nC.appliquer(); |
} else if (code.equals(CODE_BOUTON_ANNULER)) { |
nom = Mediateur.i18nC.annuler(); |
} else if (code.equals(CODE_BOUTON_REINITIALISER)) { |
nom = Mediateur.i18nC.reinitialiser(); |
} |
return nom; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/PublicationForm.java |
---|
9,6 → 9,7 |
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.MenuApplicationId; |
import org.tela_botanica.client.modeles.Personne; |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.Publication; |
22,7 → 23,9 |
import com.extjs.gxt.ui.client.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
34,6 → 37,7 |
import com.extjs.gxt.ui.client.widget.form.DateField; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.Radio; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
45,26 → 49,24 |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Label; |
public class PublicationForm extends LayoutContainer implements Rafraichissable { |
private Mediateur mediateur = null; |
public class PublicationForm extends Formulaire implements Rafraichissable { |
FormPanel panel = null; |
private Publication publi; |
private PublicationAPersonneListe pubAPersonneListeAuteur = null; |
private String idStructureEdition = ""; |
private String idPublication = ""; |
private String idProjet = ""; |
private PersonneListe listePersonneAuteur = null; |
private PublicationAPersonneListe pubAPersonneListeAuteur = null; |
private ListStore<Personne> storeAuteurs = null; |
private ArrayList<ComboBox<Personne>> listeAuteurs = null; |
private String idAuteurs = ""; |
private FieldSet auteursFieldset = null; |
private ArrayList<ComboBox<Personne>> auteurComboboxListe = null; |
private PersonneListe listePersonneAuteur = null; |
private LayoutContainer conteneurChamps; |
private ListStore<Personne> auteursStorePartage = null; |
private FieldSet generalitesFieldset = null; |
private TextField<String> nomArticle = null; |
private TextField<String> intituleCollPub = null; |
private TextField<String> uriPub = null; |
private FieldSet editionFieldset = null; |
private ComboBox<Structure> comboListeEditeurs = null; |
private ListStore<Structure> storeEditeurs = null; |
private TextField<String> datePub = null; |
71,76 → 73,150 |
private TextField<String> tomPub = null; |
private TextField<String> fasciculePub = null; |
private TextField<String> pagesPub = null; |
private String mode = "AJOUT"; |
private String idStructureEdition = ""; |
private String idPublication = ""; |
private String idProjet = ""; |
private String idAuteurs = ""; |
private boolean formValide = false; |
private boolean validationPublication = false; |
private boolean validationAuteurs = false; |
FieldSet fieldSetAuteurs = null; |
private Publication publi; |
protected boolean listeAuteurInitialisee = false; |
protected boolean listeAuteurPublicationInitialisee = false; |
private LayoutContainer conteneurChamps; |
public PublicationForm(Mediateur mediateurCourrant, String modeDeCreation) { |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.PUBLICATION); |
panneauFormulaire.setLayout(new FlowLayout()); |
String titre = (modeDeCreation.equals(Formulaire.MODE_AJOUTER) ? "Ajout d'une publication" : "Modification d'une publication"); |
panneauFormulaire.setHeading(titre); |
private Button annulerBtn; |
private Button validerBtn; |
public PublicationForm() { |
setId("x-form-pub"); |
setLayout(new FitLayout()); |
mediateur = Registry.get(RegistreId.MEDIATEUR); |
creerZoneAuteurs(); |
panneauFormulaire.add(auteursFieldset); |
storeAuteurs = new ListStore<Personne>(); |
listePersonneAuteur = new PersonneListe(); |
creerZoneGeneralites(); |
panneauFormulaire.add(generalitesFieldset); |
// Création de la disposition : FIELDSET |
FormLayout layoutFieldset = new FormLayout(); |
layoutFieldset.setLabelWidth(200); |
//layoutFieldset.setPadding(4); |
creerZoneEdition(); |
panneauFormulaire.add(editionFieldset); |
mediateur.clicObtenirListeEditeurs(this); |
mediateur.clicObtenirListeAuteurs(this); |
} |
private void creerZoneAuteurs() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Auteur |
auteursFieldset = new FieldSet(); |
auteursFieldset.setHeading("Auteur(s)"); |
auteursFieldset.setCollapsible(true); |
auteursFieldset.setLayout(layout); |
auteurComboboxListe = new ArrayList<ComboBox<Personne>>(0); |
auteursStorePartage = new ListStore<Personne>(); |
genererChampsAuteur(false); |
} |
private void genererChampsAuteur(boolean vider) { |
auteursFieldset.removeAll(); |
conteneurChamps = new LayoutContainer(); |
Button ajoutAuteurBtn = new Button("Ajouter un auteur"); |
ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
//+-----------------------------------------------------------------------------------------------------------+ |
// Création du panneau Formulaire |
panel = new FormPanel(); |
panel.setFrame(true); |
panel.setIconStyle("icone-form-ajouter"); |
panel.setCollapsible(false); |
panel.setHeading("Ajout d'une publication"); |
panel.setButtonAlign(HorizontalAlignment.CENTER); |
panel.setLayout(new FlowLayout()); |
@Override |
public void componentSelected(ButtonEvent be) { |
creerTextFieldEtBouton(null); |
int nbAuteurs = 0; |
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) { |
if (auteurComboboxListe.size() > 1) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
} |
auteursFieldset.layout(true); |
} |
}); |
add(panel); |
auteursFieldset.add(conteneurChamps); |
auteursFieldset.add(ajoutAuteurBtn); |
auteursFieldset.layout(true); |
// Fieldset Auteur |
fieldSetAuteurs = new FieldSet(); |
fieldSetAuteurs.setHeading("Auteur(s)"); |
fieldSetAuteurs.setCollapsible(true); |
fieldSetAuteurs.setLayout(layoutFieldset); |
if (!vider) { |
creerTextFieldEtBouton(null); |
} |
} |
public void creerTextFieldEtBouton(Personne auteur) { |
final HorizontalPanel panneauHorizontal = new HorizontalPanel(); |
panneauHorizontal.setLayout(new FormLayout()); |
listeAuteurs = new ArrayList<ComboBox<Personne>>(0); |
final ComboBox<Personne> auteursSaisisComboBox = creerComboBoxAuteursSaisis(); |
if (auteur != null) { |
GWT.log(auteur.getId(), null); |
auteursSaisisComboBox.setValue(auteursStorePartage.findModel("id_personne", auteur.getId())); |
} |
auteurComboboxListe.add(auteursSaisisComboBox); |
panel.add(fieldSetAuteurs); |
LayoutContainer lc = new LayoutContainer(); |
lc.setLayout(new FormLayout()); |
lc.add(auteursSaisisComboBox); |
genererChampsAuteur(false); |
Button supp = new Button("-"); |
supp.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
int nbAuteurs = 0; |
if (auteurComboboxListe.size() != 1) { |
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
} |
auteurComboboxListe.remove(auteursSaisisComboBox); |
conteneurChamps.remove(panneauHorizontal); |
auteursFieldset.layout(true); |
} |
}); |
panneauHorizontal.add(lc); |
panneauHorizontal.add(supp); |
conteneurChamps.add(panneauHorizontal); |
auteursFieldset.layout(true); |
} |
private ComboBox<Personne> creerComboBoxAuteursSaisis() { |
ComboBox<Personne> comboBox = new ComboBox<Personne>(); |
comboBox.setSize(200, 20); |
comboBox.setEmptyText(i18nC.chercherAuteurSaisi()); |
comboBox.setEditable(true); |
comboBox.setForceSelection(true); |
comboBox.setDisplayField("fmt_nom_complet"); |
comboBox.setTriggerAction(TriggerAction.ALL); |
comboBox.setStore(auteursStorePartage); |
return comboBox; |
} |
private void creerZoneGeneralites() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Création de la disposition : FIELDSET |
FormLayout layoutFieldset2 = new FormLayout(); |
layoutFieldset.setLabelWidth(200); |
//layoutFieldset.setPadding(4); |
// Fieldset Infos Générales |
FieldSet fieldSetInfosGen = new FieldSet(); |
fieldSetInfosGen.setHeading("Informations générales"); |
fieldSetInfosGen.setCollapsible(true); |
fieldSetInfosGen.setLayout(layoutFieldset2); |
generalitesFieldset = new FieldSet(); |
generalitesFieldset.setHeading("Informations générales"); |
generalitesFieldset.setCollapsible(true); |
generalitesFieldset.setLayout(layout); |
panel.add(fieldSetInfosGen); |
nomArticle = new TextField<String>(); |
nomArticle.setName("cpu"); |
nomArticle.setFieldLabel("Titre de l'article ou de l'ouvrage"); |
151,22 → 227,21 |
uriPub = new TextField<String>(); |
uriPub.setFieldLabel("URI de la publication"); |
fieldSetInfosGen.add(nomArticle); |
fieldSetInfosGen.add(intituleCollPub); |
fieldSetInfosGen.add(uriPub); |
// Création de la disposition : FIELDSET |
FormLayout layoutFieldset3 = new FormLayout(); |
//layoutFieldset.setPadding(4); |
generalitesFieldset.add(nomArticle); |
generalitesFieldset.add(intituleCollPub); |
generalitesFieldset.add(uriPub); |
} |
private void creerZoneEdition() { |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(200); |
// Fieldset Edition |
FieldSet fieldSetEdition = new FieldSet(); |
fieldSetEdition.setHeading("Edition"); |
fieldSetEdition.setCollapsible(true); |
fieldSetEdition.setLayout(layoutFieldset3); |
editionFieldset = new FieldSet(); |
editionFieldset.setHeading("Edition"); |
editionFieldset.setCollapsible(true); |
editionFieldset.setLayout(layout); |
panel.add(fieldSetEdition); |
storeEditeurs = new ListStore<Structure>(); |
comboListeEditeurs = new ComboBox<Structure>(); |
comboListeEditeurs.setEmptyText("Sélectionner un editeur..."); |
176,62 → 251,33 |
comboListeEditeurs.setEditable(true); |
comboListeEditeurs.setTypeAhead(true); |
comboListeEditeurs.setTriggerAction(TriggerAction.QUERY); |
editionFieldset.add(comboListeEditeurs, new FormData(500, 20)); |
datePub = new TextField<String>(); |
datePub.setMaxLength(4); |
datePub.setMinLength(4); |
datePub.setFieldLabel("Année de publication"); |
editionFieldset.add(datePub, new FormData(40, 20)); |
tomPub = new TextField<String>(); |
tomPub.setFieldLabel("Tome"); |
editionFieldset.add(tomPub, new FormData(75, 20)); |
fasciculePub = new TextField<String>(); |
fasciculePub.setFieldLabel("Fascicule"); |
editionFieldset.add(fasciculePub, new FormData(75, 20)); |
pagesPub = new TextField<String>(); |
pagesPub.setFieldLabel("Pages"); |
fieldSetEdition.add(comboListeEditeurs, new FormData(500, 20)); |
fieldSetEdition.add(datePub, new FormData(40, 20)); |
fieldSetEdition.add(tomPub, new FormData(75, 20)); |
fieldSetEdition.add(fasciculePub, new FormData(75, 20)); |
fieldSetEdition.add(pagesPub, new FormData(100, 20)); |
// Ajout des boutons au panneau formulaire |
annulerBtn = new Button("Annuler"); |
annulerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
mediateur.clicMenu("Publications"); |
} |
}); |
panel.addButton(annulerBtn); |
validerBtn = new Button("Valider"); |
validerBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
soumettreFormulaire(); |
} |
}); |
panel.addButton(validerBtn); |
mediateur.clicObtenirListeEditeurs(this); |
mediateur.clicObtenirListeAuteurs(this); |
editionFieldset.add(pagesPub, new FormData(100, 20)); |
} |
public void rafraichir(Object nouvellesDonnees) { |
// Si on a reçu les details d'une publication |
if (nouvellesDonnees instanceof Publication) { |
mode = "MODIF" ; |
publi = (Publication) nouvellesDonnees; |
genererChampsAuteur(true); |
publi = (Publication) nouvellesDonnees; |
mediateur.selectionnerAuteurAPublication(this,publi.getId()); |
mediateur.clicObtenirListeAuteurs(this); |
nomArticle.setValue(publi.getTitre()); |
intituleCollPub.setValue(publi.getCollection()); |
uriPub.setValue(publi.getURI()); |
239,38 → 285,35 |
tomPub.setValue(publi.getIndicationNvt()); |
fasciculePub.setValue(publi.getFascicule()); |
pagesPub.setValue(publi.getPages()); |
idPublication = publi.getId(); |
idStructureEdition = publi.getEditeur(); |
idProjet = publi.getProjet() ; |
panel.setHeading("Modification d'une publication"); |
} |
// Si on a reçu une liste des editeurs |
if(nouvellesDonnees instanceof StructureListe) { |
if (nouvellesDonnees instanceof StructureListe) { |
storeEditeurs.removeAll(); |
StructureListe listeStructure = (StructureListe) nouvellesDonnees; |
storeEditeurs.add((List<Structure>) listeStructure.toList()); |
if (mode.equals("MODIF")) { |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
comboListeEditeurs.setValue((Structure) listeStructure.get(idStructureEdition)); |
} |
comboListeEditeurs.expand(); |
} |
if(nouvellesDonnees instanceof PublicationAPersonneListe) { |
pubAPersonneListeAuteur = (PublicationAPersonneListe)nouvellesDonnees; |
if (nouvellesDonnees instanceof PublicationAPersonneListe) { |
pubAPersonneListeAuteur = (PublicationAPersonneListe) nouvellesDonnees; |
if(listeAuteurInitialisee) { |
if (listeAuteurInitialisee) { |
Iterator<String> itap = pubAPersonneListeAuteur.keySet().iterator(); |
for(;itap.hasNext();){ |
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getIdAuteur()); |
while (itap.hasNext()) { |
creerTextFieldEtBouton(pubAPersonneListeAuteur.get(itap.next()).getPersonne()); |
} |
int nbAuteurs = 0; |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
if(listeAuteurs.size() > 1) { |
for (Iterator<ComboBox<Personne>> it = auteurComboboxListe.iterator(); it.hasNext();) { |
if (auteurComboboxListe.size() > 1) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
282,14 → 325,12 |
if (nouvellesDonnees instanceof Information) { |
Information nouvellesInfos = (Information)nouvellesDonnees; |
if(nouvellesInfos.getType().equals("liste_personne")) { |
listePersonneAuteur = (PersonneListe)nouvellesInfos.getDonnee(0); |
storeAuteurs.removeAll(); |
for (Iterator<String> it = listePersonneAuteur.keySet().iterator(); it.hasNext();) { |
Personne p = listePersonneAuteur.get(it.next()); |
storeAuteurs.add(p); |
} |
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; |
} |
297,33 → 338,33 |
validationPublication = true; |
idPublication = ""+nouvellesInfos.getDonnee(0); |
if(mode.equals("AJOUT")) { |
mediateur.ajouterAuteurPublication(this,idAuteurs,"2360",idPublication); |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
mediateur.ajouterAuteurPublication(this, idAuteurs, "2360", idPublication); |
} else if (mode.equals(Formulaire.MODE_MODIFIER)) { |
mediateur.modifierAuteurPublication(this, idAuteurs, idPublication); |
} |
if(mode.equals("MODIF")) { |
mediateur.modifierAuteurPublication(this,idAuteurs,idPublication); |
} |
} |
if (nouvellesInfos.getType().equals("auteur_valide")) { |
validationAuteurs = true; |
} |
if(formValide && validationPublication && validationAuteurs) { |
mediateur.rechargerListePublication(); |
if (formValide && validationPublication && validationAuteurs && clicBoutonvalidation) { |
clicBoutonvalidation = false; |
panneauFormulaire.setEnabled(false); |
mediateur.clicMenu(MenuApplicationId.PUBLICATION); |
} |
} |
} |
private void soumettreFormulaire() { |
public void soumettreFormulaire() { |
String auteur = ""; |
String idAuteur = ""; |
for (int i = 0; i < listeAuteurs.size(); i++) { |
if(listeAuteurs.get(i).getValue() != null) { |
idAuteur += listeAuteurs.get(i).getValue().getId(); |
auteur += listeAuteurs.get(i).getValue().getNom()+ " "+listeAuteurs.get(i).getValue().getPrenom(); |
if (i != listeAuteurs.size() -1) { |
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 += ","; |
} |
332,7 → 373,7 |
String erreurs = ""; |
if(idAuteur == null || idAuteur.equals("")) { |
if (idAuteur == null || idAuteur.equals("")) { |
erreurs += "Veuillez entrer au moins un auteur ! "; |
} else { |
idAuteurs = idAuteur; |
339,7 → 380,7 |
} |
String nomArt = nomArticle.getValue(); |
if(nomArt == null || nomArt.equals("")) { |
if (nomArt == null || nomArt.equals("")) { |
erreurs += "Veuillez entrer le nom de l'article ! "; |
} |
351,7 → 392,7 |
String editeur = ""; |
if(comboListeEditeurs.getValue() == null) { |
if (comboListeEditeurs.getValue() == null) { |
//erreurs += "Veuillez sélectionner un éditeur ! "; |
} else { |
editeur = comboListeEditeurs.getValue().getId(); |
361,11 → 402,11 |
} |
String datePar = datePub.getRawValue(); |
if(datePar == null || datePar.equals("")) { |
if (datePar == null || datePar.equals("")) { |
erreurs += "Veuillez entrer une date ! "; |
} else { |
String resDate = analyserDate(datePar); |
if(resDate.equals("")) { |
if (resDate.equals("")) { |
datePar = datePar+"-00-00"; |
} else { |
erreurs += resDate; |
377,27 → 418,31 |
String pages = pagesPub.getValue(); |
if(erreurs.length() > 0) { |
if (erreurs.length() > 0) { |
MessageBox.alert("Erreur dans la saisie des champs", erreurs, null); |
return; |
} 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); |
} |
} |
formValide = true; |
this.setEnabled(false); |
mediateur.afficherPopinChargement(); |
if (mode.equals("AJOUT")) { |
Publication publi = new Publication(pub,uri,auteur, collPub,nomArt,editeur,datePar,tome,fascicule,pages); |
mediateur.ajouterPublication(this, publi); |
} else if (mode.equals("MODIF")) { |
Publication publi = new Publication(idPublication,idProjet,pub,uri,auteur, collPub,nomArt,editeur,datePar,tome,fascicule,pages); |
mediateur.modifierPublication(this, publi); |
} |
protected void reinitialiserFormulaire() { |
if (mode.equals(StructureForm.MODE_MODIFIER)) { |
mediateur.afficherFormPublication(publi.getId()); |
} else { |
mediateur.afficherFormPublication(null); |
} |
} |
private String analyserDate(String datePar) { |
if(datePar.matches("^[0-2][0-9]{3}$")) { |
if (datePar.matches("^[0-2][0-9]{3}$")) { |
return ""; |
} else { |
return "Format de date incorrect "; |
405,99 → 450,32 |
} |
private String reduireDateParAnnee(String datePar) { |
if(datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) { |
if (datePar.matches("^[0-2][0-9]{3}(-[0-9]{2}){2}$")) { |
return datePar.split("-")[0]; |
} else { |
return ""; |
} |
} |
private void genererChampsAuteur(boolean vider) { |
fieldSetAuteurs.removeAll(); |
conteneurChamps = new LayoutContainer(); |
Button ajoutAuteurBtn = new Button("Ajouter un auteur"); |
ajoutAuteurBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
creerTextFieldEtBouton(""); |
int nbAuteurs = 0; |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
if(listeAuteurs.size() > 1) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
} |
fieldSetAuteurs.layout(true); |
} |
}); |
fieldSetAuteurs.add(conteneurChamps); |
fieldSetAuteurs.add(ajoutAuteurBtn); |
fieldSetAuteurs.layout(true); |
if(!vider) { |
creerTextFieldEtBouton(""); |
} |
} |
public HorizontalPanel creerTextFieldEtBouton(String valeurDefaut) { |
final HorizontalPanel p = new HorizontalPanel(); |
// Création de la disposition : FIELDSET |
FormLayout layoutPanelTF = new FormLayout(); |
p.setLayout(layoutPanelTF); |
final ComboBox<Personne> tf = new ComboBox<Personne>(); |
tf.setDisplayField("fmt_nom_complet"); |
tf.setStore(storeAuteurs); |
tf.setEmptyText("Selectionnez un auteur..."); |
String label = "Auteur "; |
tf.setFieldLabel(label); |
if(valeurDefaut != null && !valeurDefaut.equals("") ) { |
Personne auteur = listePersonneAuteur.get(valeurDefaut); |
tf.setValue(auteur); |
} |
listeAuteurs.add(tf); |
tf.setSize(200, 20); |
LayoutContainer lc = new LayoutContainer(); |
lc.setLayout(new FormLayout()); |
lc.add(tf); |
Button supp = new Button("-"); |
supp.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
protected SelectionListener<ButtonEvent> creerEcouteurValidation() { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent be) { |
int nbAuteurs = 0; |
if(listeAuteurs.size() != 1) { |
for(Iterator<ComboBox<Personne>> it = listeAuteurs.iterator(); it.hasNext();) { |
it.next().setFieldLabel("Auteur "+nbAuteurs); |
nbAuteurs++; |
} |
public void componentSelected(ButtonEvent ce) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
soumettreFormulaire(); |
clicBoutonvalidation = true; |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
soumettreFormulaire(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
mediateur.clicMenu(menuIdCourant); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
reinitialiserFormulaire(); |
} |
listeAuteurs.remove(tf); |
conteneurChamps.remove(p); |
fieldSetAuteurs.layout(true); |
} |
}); |
p.add(lc); |
p.add(supp); |
conteneurChamps.add(p); |
fieldSetAuteurs.layout(true); |
}; |
return p; |
return ecouteur; |
} |
public void obtenirListeAuteurs() { |
mediateur.clicObtenirListeAuteurs(this); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/CollectionFormAuteur.java |
---|
11,10 → 11,11 |
import org.tela_botanica.client.modeles.PersonneListe; |
import org.tela_botanica.client.modeles.ValeurListe; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.EventType; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.GridEvent; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
23,8 → 24,8 |
import com.extjs.gxt.ui.client.store.StoreEvent; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.MessageBox; |
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.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; |
37,6 → 38,7 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.KeyCodes; |
public class CollectionFormAuteur extends FormulaireOnglet implements Rafraichissable { |
50,6 → 52,7 |
private ComboBox<Personne> auteursSaisisComboBox = null; |
private Button auteursBoutonSupprimer = null; |
private Button auteursBoutonModifier = null; |
private Button ajouterAuteurSaisiBouton = null; |
private static final String ETAT_AJOUTE = "A"; |
private static final String ETAT_SUPPRIME = "S"; |
116,7 → 119,7 |
auteursSaisisComboBox = creerComboBoxAuteursSaisis(); |
barreOutils.add(auteursSaisisComboBox); |
Button ajouterAuteurSaisiBouton = creerBoutonAjouterAuteurSaisi(); |
ajouterAuteurSaisiBouton = creerBoutonAjouterAuteurSaisi(); |
barreOutils.add(ajouterAuteurSaisiBouton); |
return barreOutils; |
128,14 → 131,7 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
PersonneForm formulairePersonne = new PersonneForm(Formulaire.MODE_AJOUTER); |
formulairePersonne.setHeaderVisible(false); |
formulairePersonne.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
//formulairePersonne.setBottomComponent(null); |
final FenetreForm fenetre = new FenetreForm(i18nC.personneModeAjout()); |
fenetre.add(formulairePersonne); |
FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER); |
fenetre.show(); |
} |
}); |
149,24 → 145,10 |
@Override |
public void componentSelected(ButtonEvent ce) { |
Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
if (auteurSaisiSelectionne == null) { |
Info.display("Info", "Veuillez selectionner un auteur"); |
} else { |
PersonneForm formulairePersonne = new PersonneForm(Formulaire.MODE_MODIFIER); |
formulairePersonne.setHeaderVisible(false); |
formulairePersonne.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
//formulairePersonne.setBottomComponent(null); |
// TODO : simplifier la gestion de l'ajout des données d'une Personne au form pour la modification... (pas besoin de passer par une liste). |
Information info = new Information("liste_personne"); |
PersonneListe personnes = new PersonneListe(); |
personnes.put(auteurSaisiSelectionne.getId(), auteurSaisiSelectionne); |
info.setDonnee(0, personnes); |
formulairePersonne.rafraichir(info); |
final FenetreForm fenetre = new FenetreForm(i18nC.personneModeModifier()); |
fenetre.add(formulairePersonne); |
FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER); |
fenetre.show(); |
} |
} |
173,7 → 155,65 |
}); |
return bouton; |
} |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
final FenetreForm fenetre = new FenetreForm(""); |
final PersonneForm formulaire = creerFormulairePersonne(fenetre); |
fenetre.add(formulaire); |
return fenetre; |
} |
private PersonneForm creerFormulairePersonne(final FenetreForm fenetre) { |
PersonneForm formulaire = new PersonneForm(mode); |
fenetre.setHeading(formulaire.getHeading()); |
formulaire.setHeaderVisible(false); |
formulaire.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire); |
final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur); |
formulaire.setBottomComponent(barreValidation); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
// TODO : simplifier la gestion de l'ajout des données d'une Personne au form pour la modification... (pas besoin de passer par une liste). |
Information info = new Information("liste_personne"); |
PersonneListe personnes = new PersonneListe(); |
Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
personnes.put(auteurSaisiSelectionne.getId(), auteurSaisiSelectionne); |
info.setDonnee(0, personnes); |
formulaire.rafraichir(info); |
} |
return formulaire; |
} |
private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
Boolean ok = formulaire.enregistrer(); |
if (ok == true) { |
// Fermer fenêtre et ajouter/modifier l'élément dans la liste |
} |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
Boolean ok = formulaire.enregistrer(); |
if (ok == true) { |
// Fermer fenêtre et ajouter/modifier l'élément dans la liste |
} |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
formulaire.reinitialiser(); |
} |
} |
}; |
return ecouteur; |
} |
private Button creerBoutonSupprimer() { |
Button bouton = new Button(i18nC.supprimer()); |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
216,12 → 256,21 |
comboBox.setStore(personnesSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
ComboBox<Personne> comboBox = (ComboBox<Personne>) ce.getComponent(); |
if (!ce.isNavKeyPress() && comboBox.getRawValue() != null && comboBox.getRawValue().length() > 0) { |
obtenirAuteursSaisis(comboBox.getRawValue()); |
if (auteursSaisisComboBox.getRawValue() != null && auteursSaisisComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirAuteursSaisis(auteursSaisisComboBox.getRawValue()); |
} |
} |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
if (auteursSaisisComboBox.getValue() instanceof Personne) { |
ajouterAuteurSaisiBouton.fireEvent(Events.Select); |
} |
} |
}); |
return comboBox; |
} |
232,6 → 281,7 |
public void componentSelected(ButtonEvent ce) { |
Personne auteurSaisiSelectionne = auteursSaisisComboBox.getValue(); |
ajouterDansGrille(auteurSaisiSelectionne); |
auteursSaisisComboBox.setValue(null); |
} |
}); |
return bouton; |
/trunk/src/org/tela_botanica/client/vues/Formulaire.java |
---|
26,7 → 26,6 |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.TabPanel; |
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.CheckBox; |
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup; |
40,9 → 39,7 |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig; |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.user.client.ui.AbstractImagePrototype; |
public abstract class Formulaire extends LayoutContainer implements Rafraichissable { |
49,11 → 46,6 |
public static final String MODE_AJOUTER = "AJOUT"; |
public static final String MODE_MODIFIER = "MODIF"; |
public static final String CODE_BOUTON_VALIDER = "VA"; |
public static final String CODE_BOUTON_APPLIQUER = "AP"; |
public static final String CODE_BOUTON_ANNULER = "AN"; |
public static final String CODE_BOUTON_REINITIALISER = "RE"; |
protected Constantes i18nC = null; |
protected Mediateur mediateur = null; |
protected Configuration config = null; |
63,10 → 55,13 |
protected FormPanel panneauFormulaire = null; |
protected ButtonBar barreOutilsValidation = null; |
protected TabPanel onglets = null; |
protected String menuIdCourant = null; |
protected static Boolean clicBoutonvalidation = false; |
public FormPanel getFormulaire() { |
return panneauFormulaire; |
} |
public void initialiserFormulaire(Mediateur mediateurCourrant, String modeDeCreation, String idMenuCourrant) { |
// Initialisation de variables |
84,20 → 79,26 |
panneauFormulaire = new FormPanel(); |
panneauFormulaire.setBodyBorder(false); |
panneauFormulaire.setFrame(true); |
panneauFormulaire.setIcon(Images.ICONES.formAjouter()); |
panneauFormulaire.setCollapsible(false); |
panneauFormulaire.setHeading(i18nC.titreAjoutFormStructurePanneau()); |
panneauFormulaire.setCollapsible(false); |
panneauFormulaire.setButtonAlign(HorizontalAlignment.CENTER); |
panneauFormulaire.setLayout(new FitLayout()); |
if (modeDeCreation.equals(MODE_AJOUTER)) { |
panneauFormulaire.setIcon(Images.ICONES.formAjouter()); |
} else if (modeDeCreation.equals(MODE_AJOUTER)) { |
panneauFormulaire.setIcon(Images.ICONES.formModifier()); |
} |
creerOnglets(); |
creerBarreOutilsValidation(); |
barreOutilsValidation = new FormulaireBarreValidation(creerEcouteurValidation()); |
panneauFormulaire.setBottomComponent(barreOutilsValidation); |
add(panneauFormulaire); |
} |
protected abstract void creerOnglets(); |
protected abstract SelectionListener<ButtonEvent> creerEcouteurValidation(); |
protected abstract void soumettreFormulaire(); |
protected TabItem creerOnglet(String nom, String id) { |
TabItem onglet = new TabItem(); |
onglet.setId(id); |
105,42 → 106,6 |
FormulaireOnglet.parametrer(onglet); |
return onglet; |
} |
protected void creerBarreOutilsValidation() { |
barreOutilsValidation = new ButtonBar(); |
barreOutilsValidation.setAlignment(HorizontalAlignment.LEFT); |
barreOutilsValidation.add(creerBoutonFormulaire(i18nC.reinitialiser(), Images.ICONES.reinitialiser(), CODE_BOUTON_REINITIALISER)); |
barreOutilsValidation.add(new FillToolItem()); |
barreOutilsValidation.add(creerBoutonFormulaire(i18nC.appliquer(), Images.ICONES.appliquer(), CODE_BOUTON_APPLIQUER)); |
barreOutilsValidation.add(creerBoutonFormulaire(i18nC.annuler(), Images.ICONES.annuler(), CODE_BOUTON_ANNULER)); |
barreOutilsValidation.add(creerBoutonFormulaire(i18nC.valider(), Images.ICONES.valider(), CODE_BOUTON_VALIDER)); |
panneauFormulaire.setBottomComponent(barreOutilsValidation); |
} |
protected Button creerBoutonFormulaire(String nom, AbstractImagePrototype icone, final String code) { |
SelectionListener<ButtonEvent> ecouteur = creerEcouteurBoutonFormulaire(code); |
Button bouton = creerBouton(nom, icone, ecouteur); |
return bouton; |
} |
protected abstract SelectionListener<ButtonEvent> creerEcouteurBoutonFormulaire(final String code); |
protected Button creerBouton(String nom, AbstractImagePrototype icone, SelectionListener<ButtonEvent> ecouteur) { |
Button bouton = new Button(nom); |
bouton.setIcon(icone); |
bouton.addSelectionListener(ecouteur); |
return bouton; |
} |
protected abstract void soumettreFormulaire(); |
protected void verifierApresRafraichissement() { |
// Si le bouton Valider a été cliqué, nous affichons la liste des structures |
214,9 → 179,10 |
} |
} |
protected abstract void afficherChampSupplementaire(Radio radioBtn); |
protected void afficherChampSupplementaire(Radio radioBtn) { |
GWT.log("Vous devez redéfinir la méthode afficherChampSupplementaire(Radio radioBtn) dans votre classe formulaire.", null); |
}; |
/** Méthode simplifiant la création de choix multiple sous forme de case à cocher. |
* Apelle un service retournant la liste des valeurs représentant les cases à cocher. |
* Ajoute ou pas un champ "Autre". |
/trunk/src/org/tela_botanica/client/vues/CollectionFormPublication.java |
---|
13,8 → 13,10 |
import org.tela_botanica.client.modeles.PublicationListe; |
import org.tela_botanica.client.modeles.ValeurListe; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.KeyListener; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
25,7 → 27,9 |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.InfoConfig; |
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.FormPanel; |
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; |
51,6 → 55,7 |
private ComboBox<Publication> publicationsSaisiesComboBox = null; |
private Button publicationsBoutonSupprimer = null; |
private Button publicationsBoutonModifier = null; |
private Button ajouterPublicationSaisieBouton = null; |
private static final String ETAT_AJOUTE = "A"; |
private static final String ETAT_SUPPRIME = "S"; |
117,7 → 122,7 |
publicationsSaisiesComboBox = creerComboBoxPublicationsSaisis(); |
barreOutils.add(publicationsSaisiesComboBox); |
Button ajouterPublicationSaisieBouton = creerBoutonAjouterPublicationSaisi(); |
ajouterPublicationSaisieBouton = creerBoutonAjouterPublicationSaisi(); |
barreOutils.add(ajouterPublicationSaisieBouton); |
return barreOutils; |
129,14 → 134,7 |
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
PublicationForm formulairePublication = new PublicationForm(); |
//formulairePersonne.setHeaderVisible(false); |
//formulairePersonne.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
//formulairePersonne.setBottomComponent(null); |
final FenetreForm fenetre = new FenetreForm(i18nC.publicationTitreFormAjout()); |
fenetre.add(formulairePublication); |
final FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER); |
fenetre.show(); |
} |
}); |
154,15 → 152,7 |
if (publicationSaisieSelectionnee == null) { |
Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication()); |
} else { |
PublicationForm formulairePublication = new PublicationForm(); |
//formulairePublication.setHeaderVisible(false); |
//formulairePublication.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
//formulairePersonne.setBottomComponent(null); |
formulairePublication.rafraichir(publicationSaisieSelectionnee); |
final FenetreForm fenetre = new FenetreForm(i18nC.publicationTitreFormModif()); |
fenetre.add(formulairePublication); |
final FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER); |
fenetre.show(); |
} |
} |
169,7 → 159,55 |
}); |
return bouton; |
} |
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) { |
final FenetreForm fenetre = new FenetreForm(""); |
final PublicationForm formulaire = creerFormulairePublication(fenetre, mode); |
fenetre.add(formulaire); |
return fenetre; |
} |
private PublicationForm creerFormulairePublication(final FenetreForm fenetre, final String mode) { |
PublicationForm formulairePublication = new PublicationForm(mediateur, mode); |
FormPanel panneauFormulaire = formulairePublication.getFormulaire(); |
fenetre.setHeading(panneauFormulaire.getHeading()); |
panneauFormulaire.setHeaderVisible(false); |
panneauFormulaire.setTopComponent(null); |
// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale |
SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePublication(fenetre, formulairePublication); |
final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur); |
panneauFormulaire.setBottomComponent(barreValidation); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
Publication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem(); |
formulairePublication.rafraichir(publicationSaisiSelectionne); |
} |
return formulairePublication; |
} |
private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePublication(final FenetreForm fenetre, final PublicationForm formulaire) { |
SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() { |
@Override |
public void componentSelected(ButtonEvent ce) { |
String code = ((Button) ce.getComponent()).getData("code"); |
if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) { |
formulaire.soumettreFormulaire(); |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) { |
formulaire.soumettreFormulaire(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) { |
fenetre.hide(); |
} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) { |
formulaire.reinitialiserFormulaire(); |
} |
} |
}; |
return ecouteur; |
} |
private Button creerBoutonSupprimer() { |
Button bouton = new Button(i18nC.supprimer()); |
bouton.setIcon(Images.ICONES.vcardSupprimer()); |
211,12 → 249,21 |
comboBox.setStore(publicationsSaisiesStore); |
comboBox.addKeyListener(new KeyListener() { |
public void componentKeyUp(ComponentEvent ce) { |
ComboBox<Publication> comboBox = (ComboBox<Publication>) ce.getComponent(); |
if (!ce.isNavKeyPress() && comboBox.getRawValue() != null && comboBox.getRawValue().length() > 0) { |
obtenirPublicationsSaisies(comboBox.getRawValue()); |
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) { |
if (!ce.isNavKeyPress()) { |
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue()); |
} |
} |
} |
}); |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() { |
@Override |
public void handleEvent(BaseEvent be) { |
if (publicationsSaisiesComboBox.getValue() instanceof Publication) { |
ajouterPublicationSaisieBouton.fireEvent(Events.Select); |
} |
} |
}); |
return comboBox; |
} |
227,6 → 274,7 |
public void componentSelected(ButtonEvent ce) { |
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue(); |
ajouterDansGrille(publicationSaisieSelectionne); |
publicationsSaisiesComboBox.setValue(null); |
} |
}); |
return bouton; |