10,13 → 10,16 |
import org.tela_botanica.client.modeles.Projet; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.Pattern; |
import org.tela_botanica.client.util.UtilArray; |
import org.tela_botanica.client.util.UtilString; |
|
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.store.ListStore; |
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.form.CheckBox; |
27,9 → 30,7 |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormData; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.google.gwt.core.client.GWT; |
|
|
public class ProjetForm extends Formulaire implements Rafraichissable { |
|
private Projet projet; |
96,8 → 97,7 |
initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET); |
|
panneauFormulaire.setLayout(new FlowLayout()); |
String titre = genererTitreFormulaire(); |
panneauFormulaire.setHeading(titre); |
actualiserTitreFormulaire(); |
|
creerZoneGeneralites(); |
panneauFormulaire.add(generalitesFieldset); |
111,20 → 111,20 |
creerTabIndex(); |
|
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) { |
mediateurCourant.selectionnerProjet(this, projetId); |
mediateur.selectionnerProjet(this, projetId); |
} |
|
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId); |
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId); |
mediateurCourant.obtenirListeValeurEtRafraichir(this, listeLanguesId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId); |
} |
|
private String genererTitreFormulaire() { |
String titre = "Ajout d'un projet"; |
private void actualiserTitreFormulaire() { |
String titre = i18nC.projetTitreFormAjout(); |
if (mode.equals(Formulaire.MODE_MODIFIER)) { |
titre = "Modification d'un projet - "+i18nC.id()+": "+projet.getId(); |
titre = i18nC.projetTitreFormModif()+" - "+i18nC.id()+": "+projet.getId(); |
} |
return titre; |
panneauFormulaire.setHeading(titre); |
} |
|
private void creerZoneGeneralites() { |
133,7 → 133,7 |
|
// Fieldset Infos Générales |
generalitesFieldset = new FieldSet(); |
generalitesFieldset.setHeading("Informations générales"); |
generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale()); |
generalitesFieldset.setCollapsible(true); |
generalitesFieldset.setLayout(layout); |
|
163,25 → 163,22 |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(100); |
|
// Fieldset Edition |
// Fieldset Complément |
complementFieldset = new FieldSet(); |
complementFieldset.setHeading("Informations complémentaires"); |
complementFieldset.setHeading(i18nC.projetTitreComplement()); |
complementFieldset.setCollapsible(true); |
complementFieldset.setLayout(layout); |
|
motsClesChp = new TextField<String>(); |
motsClesChp.setFieldLabel("Mots Clés"); |
|
complementFieldset.add(motsClesChp); |
|
citationChp = new TextField<String>(); |
citationChp.setFieldLabel("Citation"); |
|
complementFieldset.add(citationChp); |
|
licenceChp = new TextField<String>(); |
licenceChp.setFieldLabel("Licence"); |
|
complementFieldset.add(licenceChp); |
|
listeLangue = new ListStore<Valeur>(); |
192,12 → 189,10 |
langueChp.setForceSelection(true); |
langueChp.setTypeAhead(true); |
langueChp.setFieldLabel("Langue"); |
|
complementFieldset.add(langueChp); |
|
markPublicChp = new CheckBox(); |
markPublicChp.setFieldLabel("Public"); |
|
complementFieldset.add(markPublicChp); |
} |
|
205,15 → 200,14 |
FormLayout layout = new FormLayout(); |
layout.setLabelWidth(100); |
|
// Fieldset Edition |
// Fieldset Indexation |
indexationFieldset = new FieldSet(); |
indexationFieldset.setHeading("Indexation"); |
indexationFieldset.setHeading(i18nC.projetTitreIndexation()); |
indexationFieldset.setCollapsible(true); |
indexationFieldset.setLayout(layout); |
|
indexationHeureChp = new TextField<String>(); |
indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure()); |
|
indexationFieldset.add(indexationHeureChp, new FormData(80, 0)); |
|
// liste 1073 |
225,7 → 219,6 |
indexationFrequenceChp.setForceSelection(true); |
indexationFrequenceChp.setTypeAhead(true); |
indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence()); |
|
indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0)); |
|
// liste 1072 |
237,13 → 230,11 |
indexationDureeChp.setForceSelection(true); |
indexationDureeChp.setTypeAhead(true); |
indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree()); |
|
indexationFieldset.add(indexationDureeChp, new FormData(80, 0)); |
|
} |
|
private void creerTabIndex() { |
|
nomChp.setTabIndex(1); |
abreviationChp.setTabIndex(2); |
descriptionChp.setTabIndex(3); |
264,18 → 255,63 |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof Projet) { |
// Si on a reçu les details d'une projet |
rafraichirProjet((Projet) nouvellesDonnees); |
GWT.log("Un projet est arrivé : "+((Projet) nouvellesDonnees).getNom(), null); |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe nValeurListe = (ValeurListe)nouvellesDonnees; |
ValeurListe valeursListe = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(valeursListe); |
Debug.log("une liste de valeurs est arrivée "+valeursListe.getId()); |
} |
|
if (nValeurListe.getId() == listeValeurIndexationDureeInt) { |
valeurListeIndexationDuree = nValeurListe; |
if (etreValide()) { |
initialiserValidation(); |
repandreRafraichissement(); |
controlerFermetureApresRafraichissement(); |
} |
} |
|
for (Iterator<String> it = nValeurListe.keySet().iterator(); it.hasNext();) { |
listeIndexationDuree.add(nValeurListe.get(it.next())); |
private void rafraichirInformation(Information info) { |
final String type = info.getType(); |
|
// Gestion des problèmes |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
Debug.log("MESSAGES:\n"+info.getMessages().toString()); |
} |
|
// Gestion des actions |
if (type.equals("selection_projet")) { |
if (info.getDonnee(0) != null) { |
projet = (Projet) info.getDonnee(0); |
} |
peuplerFormulaire(); |
actualiserTitreFormulaire(); |
} else if (type.equals("modif_projet") || type.equals("ajout_projet") ) { |
if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) { |
String projetId = (String) info.getDonnee(0); |
projet.setId(projetId); |
projetValideOk = true; |
} |
} |
|
// Gestion des messages |
if (type.equals("selection_projet")) { |
Info.display(i18nC.projetTitreFormModif(), info.toString()); |
} else if (type.equals("modif_projet")) { |
Info.display(i18nC.projetTitreFormModif(), info.toString()); |
} else if (type.equals("ajout_projet")) { |
if (!UtilString.isEmpty(projet.getId())) { |
info.setMessage("Le projet '"+projet.getId()+"' a bien été ajouté"); |
} |
Info.display(i18nC.projetTitreFormAjout(), info.toString()); |
} |
} |
|
private void rafraichirValeurListe(ValeurListe valeursListe) { |
if (valeursListe.getId() == listeValeurIndexationDureeInt) { |
valeurListeIndexationDuree = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeIndexationDuree.add(valeursListe.get(it.next())); |
listeIndexationDuree.sort("id_valeur", SortDir.ASC); |
} |
listeIndexationDureeChargee = true; |
287,10 → 323,10 |
} |
} |
indexationDureeChp.expand(); |
} else if (nValeurListe.getId() == listeValeurIndexationFrequenceInt) { |
valeurListeIndexationFrequence = nValeurListe; |
for (Iterator<String> it = nValeurListe.keySet().iterator(); it.hasNext();) { |
listeIndexationFrequence.add(nValeurListe.get(it.next())); |
} else if (valeursListe.getId() == listeValeurIndexationFrequenceInt) { |
valeurListeIndexationFrequence = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeIndexationFrequence.add(valeursListe.get(it.next())); |
listeIndexationFrequence.sort("id_valeur", SortDir.ASC); |
} |
listeIndexationFrequenceChargee = true; |
302,15 → 338,12 |
} |
} |
indexationFrequenceChp.expand(); |
} else if (nValeurListe.getId() == listeLanguesInt) { |
|
valeurListeLangue = nValeurListe; |
|
for (Iterator<String> it = nValeurListe.keySet().iterator(); it.hasNext();) { |
listeLangue.add(nValeurListe.get(it.next())); |
} else if (valeursListe.getId() == listeLanguesInt) { |
valeurListeLangue = valeursListe; |
for (Iterator<String> it = valeursListe.keySet().iterator(); it.hasNext();) { |
listeLangue.add(valeursListe.get(it.next())); |
listeLangue.sort("id_valeur", SortDir.ASC); |
} |
|
listeLangueChargee = true; |
|
if (mode.equals(MODE_MODIFIER)) { |
320,25 → 353,10 |
} |
} |
} |
|
GWT.log("une liste de valeurs est arrivée "+nValeurListe.getId(), null); |
} |
|
if (etreValide()) { |
initialiserValidation(); |
repandreRafraichissement(); |
controlerFermetureApresRafraichissement(); |
} |
} |
|
private void rafraichirProjet(Projet proj) { |
projet = proj; |
peuplerFormulaire(); |
} |
|
private Boolean etreValide() { |
Boolean valide = false; |
GWT.log("formulaire"+formulaireValideOk+" - Projet :"+projetValideOk, null); |
if (formulaireValideOk && projetValideOk) { |
valide = true; |
} |
364,11 → 382,9 |
|
public boolean soumettreFormulaire() { |
formulaireValideOk = verifierFormulaire(); |
GWT.log("Form?"+formulaireValideOk, null); |
if (formulaireValideOk) { |
Projet projetCollecte = collecterProjet(); |
if (projetCollecte != null) { |
GWT.log("Info collectée ? ok", null); |
if (mode.equals(Formulaire.MODE_AJOUTER)) { |
mediateur.ajouterProjet(this, projetCollecte); |
} else if (mode.equals(Formulaire.MODE_MODIFIER)) { |
409,11 → 425,9 |
} |
|
String heure = indexationHeureChp.getValue(); |
if (heure != null && ! heure.isEmpty() && !heure.matches(Pattern.heureMinute)) { |
if (!UtilString.isEmpty(heure)) { |
if (!heure.matches(Pattern.heureMinute)) { |
messages.add("L'heureMinute d'indexation saisie n'est pas valide !"); |
} else { |
if(heure.matches(Pattern.heureMinute)) { |
heure += ":00"; |
} |
} |
|
476,35 → 490,36 |
} |
|
private Projet collecterProjet() { |
Projet projetARetourner = new Projet(); |
Projet projetCollecte = (Projet) projet.cloner(new Projet()); |
|
projetARetourner.setNom(nomChp.getValue()); |
projetARetourner.setAbreviation(abreviationChp.getValue()); |
projetARetourner.setDescription(descriptionChp.getValue()); |
projetARetourner.setResume(resumeChp.getValue()); |
projetARetourner.setUrl(urlChp.getValue()); |
projetCollecte.setNom(nomChp.getValue()); |
projetCollecte.setAbreviation(abreviationChp.getValue()); |
projetCollecte.setDescription(descriptionChp.getValue()); |
projetCollecte.setResume(resumeChp.getValue()); |
projetCollecte.setUrl(urlChp.getValue()); |
|
projetARetourner.setMotsCles(motsClesChp.getValue()); |
projetARetourner.setCitation(citationChp.getValue()); |
projetARetourner.setLicence(licenceChp.getValue()); |
projetCollecte.setMotsCles(motsClesChp.getValue()); |
projetCollecte.setCitation(citationChp.getValue()); |
projetCollecte.setLicence(licenceChp.getValue()); |
if (langueChp.getValue() != null) { |
projetCollecte.setLangue(langueChp.getValue().getId()); |
} |
String markPublic = (markPublicChp.getValue()) ? "1" : "0"; |
projetCollecte.setMarkPublic(markPublic); |
|
if (markPublicChp.getValue()) { |
projetCollecte.setMarkPublic("1"); |
} else { |
projetCollecte.setMarkPublic("0"); |
projetCollecte.setIndexationHeure(indexationHeureChp.getValue()); |
if (indexationFrequenceChp.getValue() != null) { |
projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId()); |
} |
if (indexationDureeChp.getValue() != null) { |
projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId()); |
} |
|
projetARetourner.setIndexationHeure(indexationHeureChp.getValue()); |
projetARetourner.setIndexationDuree(indexationDureeChp.getValue().getId()); |
projetARetourner.setIndexationFreq(indexationFrequenceChp.getValue().getId()); |
|
Projet projetARetourner = null; |
if (!projetCollecte.comparer(projet)) { |
projetARetourner = projet = projetCollecte; |
Debug.log(projetARetourner.toString()); |
} |
|
//GWT.log(projetARetourner.toString()+" "+projetARetourner., null) |
|
return projetARetourner; |
} |
|