1,15 → 1,13 |
package org.tela_botanica.client.vues.projet; |
|
import java.util.ArrayList; |
import java.util.Iterator; |
|
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs; |
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.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.projet.Projet; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.Pattern; |
17,13 → 15,10 |
import org.tela_botanica.client.util.UtilString; |
import org.tela_botanica.client.vues.Formulaire; |
|
import com.extjs.gxt.ui.client.Style.SortDir; |
import com.extjs.gxt.ui.client.event.Events; |
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.form.CheckBox; |
import com.extjs.gxt.ui.client.widget.form.ComboBox; |
import com.extjs.gxt.ui.client.widget.form.FieldSet; |
import com.extjs.gxt.ui.client.widget.form.TextArea; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
36,25 → 31,9 |
private Projet projet; |
|
private String listeValeurIndexationDureeId = "dureesIndexation"; |
private int listeValeurIndexationDureeInt = 1072; |
private String listeValeurIndexationFrequenceId = "frequencesIndexation"; |
private int listeValeurIndexationFrequenceInt = 1073; |
private String listeLanguesId = "langues"; |
private int listeLanguesInt = 1071; |
|
private ListStore<Valeur> listeIndexationDuree = null; |
private ListStore<Valeur> listeIndexationFrequence = null; |
private ListStore<Valeur> listeLangue = null; |
|
private ValeurListe valeurListeIndexationDuree = null; |
private ValeurListe valeurListeIndexationFrequence = null; |
private ValeurListe valeurListeLangue = null; |
|
private boolean listeIndexationDureeChargee = false; |
private boolean listeIndexationFrequenceChargee = false; |
private boolean listeLangueChargee = false; |
|
|
private FieldSet generalitesFieldset = null; |
private TextField<String> nomChp = null; |
private TextField<String> abreviationChp = null; |
66,13 → 45,13 |
private TextField<String> motsClesChp = null; |
private TextField<String> citationChp = null; |
private TextField<String> licenceChp = null; |
private ComboBox<Valeur> langueChp = null; |
private ChampComboBoxListeValeurs langueChp = null; |
private CheckBox markPublicChp = null; |
|
private FieldSet indexationFieldset = null; |
private TextField<String> indexationHeureChp = null; |
private ComboBox<Valeur> indexationDureeChp = null; |
private ComboBox<Valeur> indexationFrequenceChp = null; |
private ChampComboBoxListeValeurs indexationDureeChp = null; |
private ChampComboBoxListeValeurs indexationFrequenceChp = null; |
|
private boolean formulaireValideOk = false; |
private boolean projetValideOk = false; |
116,7 → 95,6 |
|
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId); |
mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId); |
} |
|
private void genererTitreFormulaire() { |
181,26 → 159,19 |
complementFieldset.setLayout(layout); |
|
motsClesChp = new TextField<String>(); |
motsClesChp.setFieldLabel("Mots Clés"); |
complementFieldset.add(motsClesChp); |
motsClesChp.setFieldLabel(i18nC.projetMotsCles()); |
complementFieldset.add(motsClesChp, new FormData(450, 0)); |
|
citationChp = new TextField<String>(); |
citationChp.setFieldLabel("Citation"); |
complementFieldset.add(citationChp); |
citationChp.setFieldLabel(i18nC.projetCitation()); |
complementFieldset.add(citationChp, new FormData(450, 0)); |
|
licenceChp = new TextField<String>(); |
licenceChp.setFieldLabel("Licence"); |
complementFieldset.add(licenceChp); |
licenceChp.setFieldLabel(i18nC.projetLicence()); |
complementFieldset.add(licenceChp, new FormData(450, 0)); |
|
listeLangue = new ListStore<Valeur>(); |
langueChp = new ComboBox<Valeur>(); |
langueChp.setStore(listeLangue); |
langueChp.setDisplayField("nom"); |
langueChp.setEditable(true); |
langueChp.setForceSelection(true); |
langueChp.setTypeAhead(true); |
langueChp.setFieldLabel("Langue"); |
complementFieldset.add(langueChp); |
langueChp = new ChampComboBoxListeValeurs(i18nC.projetLangue(), listeLanguesId); |
complementFieldset.add(langueChp, new FormData(200, 0)); |
|
markPublicChp = new CheckBox(); |
markPublicChp.setFieldLabel("Public"); |
219,28 → 190,13 |
|
indexationHeureChp = new TextField<String>(); |
indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure()); |
indexationHeureChp.setToolTip(i18nC.projetMessageHeureMinute()); |
indexationFieldset.add(indexationHeureChp, new FormData(80, 0)); |
|
// liste 1073 |
listeIndexationFrequence = new ListStore<Valeur>(); |
indexationFrequenceChp = new ComboBox<Valeur>(); |
indexationFrequenceChp.setStore(listeIndexationFrequence); |
indexationFrequenceChp.setDisplayField("nom"); |
indexationFrequenceChp.setEditable(true); |
indexationFrequenceChp.setForceSelection(true); |
indexationFrequenceChp.setTypeAhead(true); |
indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence()); |
indexationFrequenceChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationFrequence(), listeValeurIndexationFrequenceId); |
indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0)); |
|
// liste 1072 |
listeIndexationDuree = new ListStore<Valeur>(); |
indexationDureeChp = new ComboBox<Valeur>(); |
indexationDureeChp.setStore(listeIndexationDuree); |
indexationDureeChp.setDisplayField("nom"); |
indexationDureeChp.setEditable(true); |
indexationDureeChp.setForceSelection(true); |
indexationDureeChp.setTypeAhead(true); |
indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree()); |
indexationDureeChp = new ChampComboBoxListeValeurs(i18nC.projetIndexationDuree(), listeValeurIndexationDureeId); |
indexationFieldset.add(indexationDureeChp, new FormData(80, 0)); |
|
} |
269,9 → 225,8 |
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
rafraichirInformation(info); |
} else if (nouvellesDonnees instanceof ValeurListe) { |
ValeurListe valeursListe = (ValeurListe) nouvellesDonnees; |
rafraichirValeurListe(valeursListe); |
} else { |
Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass())); |
} |
|
if (etreValide()) { |
321,54 → 276,6 |
} |
} |
} |
|
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; |
|
if (mode.equals(MODE_MODIFIER)) { |
if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) { |
indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree())); |
indexationDureeChp.validate(); |
} |
} |
indexationDureeChp.expand(); |
} 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; |
|
if (mode.equals(MODE_MODIFIER)) { |
if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) { |
indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq())); |
indexationFrequenceChp.validate(); |
} |
} |
indexationFrequenceChp.expand(); |
} 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)) { |
if (valeurListeLangue.get(projet.getLangue()) != null) { |
langueChp.setValue(valeurListeLangue.get(projet.getLangue())); |
langueChp.validate(); |
} |
} |
} |
} |
|
private Boolean etreValide() { |
Boolean valide = false; |
416,33 → 323,33 |
|
String titre = nomChp.getValue(); |
if (titre == null || titre.equals("")) { |
messages.add("Veuillez saisir le nom du projet !"); |
messages.add(i18nC.projetMessageNom()); |
} |
|
String abr = abreviationChp.getValue(); |
if (abr == null || abr.equals("")) { |
messages.add("Veuillez saisir l'abréviation du projet !"); |
if (abr == null || abr.equals(i18nC.projetMessageAbreviation())) { |
messages.add(i18nC.projetMessageAbreviation()); |
} |
|
String desc = descriptionChp.getValue(); |
if (desc == null || desc.equals("")) { |
messages.add("Veuillez saisir la description du projet !"); |
if (desc == null || desc.equals(i18nC.projetMessageDescription())) { |
messages.add(i18nC.projetDescription()); |
} |
|
String resume = resumeChp.getValue(); |
if (resume == null || resume.equals("")) { |
messages.add("Veuillez saisir le résumé du projet !"); |
if (resume == null || resume.equals(i18nC.projetMessageResume())) { |
messages.add(i18nC.projetMessageResume()); |
} |
|
String uri = urlChp.getValue(); |
if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) { |
messages.add("L'URL saisie n'est pas valide !"); |
messages.add(i18nC.messageUrlNonValide()); |
} |
|
String heure = indexationHeureChp.getValue(); |
if (!UtilString.isEmpty(heure)) { |
if (!heure.matches(Pattern.heureMinute)) { |
messages.add("L'heureMinute d'indexation saisie n'est pas valide !"); |
messages.add(i18nC.projetMessageHeureMinute()); |
} |
} |
|
449,7 → 356,7 |
if (messages.size() != 0) { |
String[] tableauDeMessages = {}; |
tableauDeMessages = messages.toArray(tableauDeMessages); |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null); |
MessageBox.alert(i18nC.erreurSaisieTitre(), UtilArray.implode(tableauDeMessages, "<br />"), null); |
valide = false; |
} |
return valide; |
465,7 → 372,7 |
motsClesChp.setValue(projet.getMotsCles()); |
citationChp.setValue(projet.getCitation()); |
licenceChp.setValue(projet.getLicence()); |
|
langueChp.peupler(projet.getLangue()); |
if (projet.getMarkPublic().equals("1")) { |
markPublicChp.setValue(true); |
} else { |
472,27 → 379,6 |
markPublicChp.setValue(false); |
} |
|
if (listeLangueChargee) { |
if(valeurListeLangue.get(projet.getLangue()) != null) { |
langueChp.setValue(valeurListeLangue.get(projet.getLangue())); |
langueChp.validate(); |
} |
} |
|
if (listeIndexationFrequenceChargee) { |
if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) { |
indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq())); |
indexationFrequenceChp.validate(); |
} |
} |
|
if (listeIndexationDureeChargee) { |
if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) { |
indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree())); |
indexationDureeChp.validate(); |
} |
} |
|
String[] heureTab = projet.getIndexationHeure().split(":"); |
if (heureTab.length > 1) { |
String heure = heureTab[0]+":"+heureTab[1]; |
500,6 → 386,8 |
indexationHeureChp.setValue(heure); |
} |
} |
indexationFrequenceChp.peupler(projet.getIndexationFreq()); |
indexationDureeChp.peupler(projet.getIndexationDuree()); |
|
doLayout(true); |
} |
516,19 → 404,13 |
projetCollecte.setMotsCles(motsClesChp.getValue()); |
projetCollecte.setCitation(citationChp.getValue()); |
projetCollecte.setLicence(licenceChp.getValue()); |
if (langueChp.getValue() != null) { |
projetCollecte.setLangue(langueChp.getValue().getId()); |
} |
projetCollecte.setLangue(langueChp.getValeur()); |
String markPublic = (markPublicChp.getValue()) ? "1" : "0"; |
projetCollecte.setMarkPublic(markPublic); |
|
projetCollecte.setIndexationHeure(indexationHeureChp.getValue()); |
if (indexationFrequenceChp.getValue() != null) { |
projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId()); |
} |
if (indexationDureeChp.getValue() != null) { |
projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId()); |
} |
projetCollecte.setIndexationFreq(indexationFrequenceChp.getValeur()); |
projetCollecte.setIndexationDuree(indexationDureeChp.getValeur()); |
|
Projet projetARetourner = null; |
if (!projetCollecte.comparer(projet)) { |