934 |
jpm |
1 |
package org.tela_botanica.client.vues.collection;
|
858 |
jpm |
2 |
|
954 |
jpm |
3 |
import java.util.HashMap;
|
|
|
4 |
import java.util.Iterator;
|
|
|
5 |
|
858 |
jpm |
6 |
import org.tela_botanica.client.Mediateur;
|
|
|
7 |
import org.tela_botanica.client.composants.ChampCaseACocher;
|
|
|
8 |
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
|
|
|
9 |
import org.tela_botanica.client.composants.ChampSliderPourcentage;
|
|
|
10 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
954 |
jpm |
11 |
import org.tela_botanica.client.modeles.aDonnee;
|
|
|
12 |
import org.tela_botanica.client.modeles.collection.Collection;
|
|
|
13 |
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
|
|
|
14 |
import org.tela_botanica.client.util.Debug;
|
|
|
15 |
import org.tela_botanica.client.util.Pattern;
|
|
|
16 |
import org.tela_botanica.client.util.UtilString;
|
934 |
jpm |
17 |
import org.tela_botanica.client.vues.Formulaire;
|
|
|
18 |
import org.tela_botanica.client.vues.FormulaireOnglet;
|
858 |
jpm |
19 |
|
|
|
20 |
import com.extjs.gxt.ui.client.widget.Text;
|
|
|
21 |
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
|
|
22 |
import com.extjs.gxt.ui.client.widget.form.TextArea;
|
|
|
23 |
import com.extjs.gxt.ui.client.widget.layout.FormData;
|
|
|
24 |
|
|
|
25 |
public class CollectionFormContenu extends FormulaireOnglet implements Rafraichissable {
|
|
|
26 |
|
1083 |
jpm |
27 |
public static final String ID = "contenu";
|
954 |
jpm |
28 |
private Collection collection = null;
|
|
|
29 |
private CollectionBotanique collectionBotanique = null;
|
|
|
30 |
private Collection collectionCollectee = null;
|
|
|
31 |
private CollectionBotanique collectionBotaniqueCollectee = null;
|
|
|
32 |
|
858 |
jpm |
33 |
private ChampCaseACocher natureChp = null;
|
|
|
34 |
private TextArea specialiteChp = null;
|
|
|
35 |
private TextArea annotationClassementChp = null;
|
|
|
36 |
private ChampComboBoxListeValeurs etatClassementCombo = null;
|
|
|
37 |
private ChampComboBoxListeValeurs precisionDateCombo = null;
|
|
|
38 |
private ChampComboBoxListeValeurs precisionLocaliteCombo = null;
|
|
|
39 |
private TextArea etiquetteAnnotationChp = null;
|
|
|
40 |
private ChampComboBoxListeValeurs integreCollectionCombo = null;
|
|
|
41 |
private ChampComboBoxListeValeurs infoIntegreCollectionCombo = null;
|
|
|
42 |
private ChampSliderPourcentage auteurTitrePourcentChp;
|
|
|
43 |
private ChampSliderPourcentage famillePourcentChp;
|
|
|
44 |
private ChampSliderPourcentage genrePourcentChp;
|
|
|
45 |
private ChampSliderPourcentage spPourcentChp;
|
|
|
46 |
private ChampSliderPourcentage auteurSpPourcentChp;
|
|
|
47 |
private ChampSliderPourcentage localitePourcentChp;
|
|
|
48 |
private ChampSliderPourcentage datePourcentChp;
|
|
|
49 |
|
|
|
50 |
public CollectionFormContenu(Formulaire formulaireCourrant) {
|
|
|
51 |
initialiserOnglet(formulaireCourrant);
|
1083 |
jpm |
52 |
setId(ID);
|
858 |
jpm |
53 |
setText(Mediateur.i18nC.collectionContenu());
|
|
|
54 |
|
|
|
55 |
creerFieldsetNature();
|
|
|
56 |
// TODO : réaliser un champ couverture géographique détaillé
|
|
|
57 |
creerFieldsetClassement();
|
|
|
58 |
creerFieldsetEtiquette();
|
|
|
59 |
creerFieldsetIntegration();
|
|
|
60 |
}
|
|
|
61 |
|
|
|
62 |
private void creerFieldsetNature() {
|
|
|
63 |
FieldSet natureFieldSet = new FieldSet();
|
1680 |
raphael |
64 |
natureFieldSet.setHeadingHtml(i18nC.collectionNatureTitre());
|
858 |
jpm |
65 |
natureFieldSet.setCollapsible(true);
|
|
|
66 |
natureFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
|
|
|
67 |
|
|
|
68 |
natureChp = new ChampCaseACocher(i18nC.natureVegetaleContenu(), "natureVegetale", false);
|
|
|
69 |
natureFieldSet.add(natureChp);
|
|
|
70 |
|
|
|
71 |
specialiteChp = new TextArea();
|
|
|
72 |
specialiteChp.setFieldLabel(i18nC.specialiteCollection());
|
|
|
73 |
specialiteChp.setToolTip(i18nC.specialiteCollectionInfo());
|
|
|
74 |
natureFieldSet.add(specialiteChp, new FormData(550, 0));
|
|
|
75 |
|
|
|
76 |
add(natureFieldSet);
|
|
|
77 |
}
|
|
|
78 |
|
1925 |
delphine |
79 |
|
858 |
jpm |
80 |
|
|
|
81 |
private void creerFieldsetClassement() {
|
|
|
82 |
FieldSet classementFieldSet = new FieldSet();
|
1680 |
raphael |
83 |
classementFieldSet.setHeadingHtml(i18nC.collectionClassementTitre());
|
858 |
jpm |
84 |
classementFieldSet.setCollapsible(true);
|
|
|
85 |
classementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
|
859 |
jpm |
86 |
|
975 |
jpm |
87 |
etatClassementCombo = new ChampComboBoxListeValeurs(i18nC.etatClassementCollection(), "etatClassement", tabIndex++);
|
1880 |
aurelien |
88 |
classementFieldSet.add(etatClassementCombo, new FormData(550, 0));
|
859 |
jpm |
89 |
|
858 |
jpm |
90 |
annotationClassementChp = new TextArea();
|
|
|
91 |
annotationClassementChp.setFieldLabel(i18nC.annotationClassementCollection());
|
|
|
92 |
classementFieldSet.add(annotationClassementChp, new FormData(550, 0));
|
|
|
93 |
|
859 |
jpm |
94 |
Text infoClassement = new Text(i18nC.annotationClassementCollectionInfo());
|
|
|
95 |
classementFieldSet.add(infoClassement);
|
858 |
jpm |
96 |
|
|
|
97 |
add(classementFieldSet);
|
|
|
98 |
}
|
|
|
99 |
|
|
|
100 |
private void creerFieldsetEtiquette() {
|
|
|
101 |
FieldSet etiquetteFieldSet = new FieldSet();
|
1680 |
raphael |
102 |
etiquetteFieldSet.setHeadingHtml(i18nC.collectionEtiquetteTitre());
|
858 |
jpm |
103 |
etiquetteFieldSet.setCollapsible(true);
|
|
|
104 |
etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
|
|
|
105 |
|
|
|
106 |
Text renseignementPoucentLabel = new Text(i18nC.renseignementEtiquetteCollection());
|
|
|
107 |
renseignementPoucentLabel.setTagName("label");
|
|
|
108 |
renseignementPoucentLabel.setStyleName("x-form-item-label");
|
|
|
109 |
etiquetteFieldSet.add(renseignementPoucentLabel);
|
|
|
110 |
|
|
|
111 |
auteurTitrePourcentChp = new ChampSliderPourcentage(i18nC.auteurTitrePourcentCollection());
|
|
|
112 |
etiquetteFieldSet.add(auteurTitrePourcentChp, new FormData(200, 0));
|
|
|
113 |
|
|
|
114 |
famillePourcentChp = new ChampSliderPourcentage(i18nC.famillePourcentCollection());
|
|
|
115 |
etiquetteFieldSet.add(famillePourcentChp, new FormData(200, 0));
|
|
|
116 |
|
|
|
117 |
genrePourcentChp = new ChampSliderPourcentage(i18nC.genrePourcentCollection());
|
|
|
118 |
etiquetteFieldSet.add(genrePourcentChp, new FormData(200, 0));
|
|
|
119 |
|
|
|
120 |
spPourcentChp = new ChampSliderPourcentage(i18nC.spPourcentCollection());
|
|
|
121 |
etiquetteFieldSet.add(spPourcentChp, new FormData(200, 0));
|
|
|
122 |
|
|
|
123 |
auteurSpPourcentChp = new ChampSliderPourcentage(i18nC.auteurSpPourcentCollection());
|
|
|
124 |
etiquetteFieldSet.add(auteurSpPourcentChp, new FormData(200, 0));
|
|
|
125 |
|
|
|
126 |
localitePourcentChp = new ChampSliderPourcentage(i18nC.localitePourcentCollection());
|
|
|
127 |
etiquetteFieldSet.add(localitePourcentChp, new FormData(200, 0));
|
|
|
128 |
|
|
|
129 |
datePourcentChp = new ChampSliderPourcentage(i18nC.datePourcentCollection());
|
|
|
130 |
etiquetteFieldSet.add(datePourcentChp, new FormData(200, 0));
|
|
|
131 |
|
|
|
132 |
precisionLocaliteCombo = new ChampComboBoxListeValeurs(i18nC.precisionLocaliteCollection(), "onep", tabIndex++);
|
|
|
133 |
etiquetteFieldSet.add(precisionLocaliteCombo);
|
|
|
134 |
|
|
|
135 |
precisionDateCombo = new ChampComboBoxListeValeurs(i18nC.precisionDateCollection(), "onep", tabIndex++);
|
|
|
136 |
etiquetteFieldSet.add(precisionDateCombo);
|
|
|
137 |
|
|
|
138 |
etiquetteAnnotationChp = new TextArea();
|
|
|
139 |
etiquetteAnnotationChp.setFieldLabel(i18nC.etiquetteAnnotationCollection());
|
|
|
140 |
etiquetteAnnotationChp.setToolTip(i18nC.etiquetteAnnotationCollectionInfo());
|
|
|
141 |
etiquetteFieldSet.add(etiquetteAnnotationChp, new FormData(550, 0));
|
|
|
142 |
|
|
|
143 |
add(etiquetteFieldSet);
|
|
|
144 |
}
|
|
|
145 |
|
954 |
jpm |
146 |
private String collecterEtiquetteRenseignement() {
|
|
|
147 |
String renseignement = "";
|
|
|
148 |
renseignement += creerTypeValeur("AT", auteurTitrePourcentChp.getValeur());
|
|
|
149 |
renseignement += creerTypeValeur("F", famillePourcentChp.getValeur());
|
|
|
150 |
renseignement += creerTypeValeur("G", genrePourcentChp.getValeur());
|
|
|
151 |
renseignement += creerTypeValeur("SP", spPourcentChp.getValeur());
|
|
|
152 |
renseignement += creerTypeValeur("ASP", auteurSpPourcentChp.getValeur());
|
|
|
153 |
renseignement += creerTypeValeur("L", localitePourcentChp.getValeur());
|
|
|
154 |
renseignement += creerTypeValeur("D", datePourcentChp.getValeur());
|
|
|
155 |
renseignement = renseignement.replaceFirst(aDonnee.SEPARATEUR_VALEURS+"$", "");
|
|
|
156 |
return renseignement;
|
|
|
157 |
}
|
|
|
158 |
|
|
|
159 |
private String creerTypeValeur(String type, String valeur) {
|
|
|
160 |
String retour = "";
|
|
|
161 |
if (!UtilString.isEmpty(valeur)) {
|
|
|
162 |
retour = type+aDonnee.SEPARATEUR_TYPE_VALEUR+valeur+aDonnee.SEPARATEUR_VALEURS;
|
|
|
163 |
}
|
|
|
164 |
return retour;
|
|
|
165 |
}
|
|
|
166 |
|
|
|
167 |
private void peuplerEtiquetteRenseignement(String valeurTruk) {
|
|
|
168 |
HashMap<String,String> infos = parserEtiquetteRenseignement(valeurTruk);
|
|
|
169 |
if (infos != null) {
|
|
|
170 |
Iterator<String> it = infos.keySet().iterator();
|
|
|
171 |
while (it.hasNext()) {
|
|
|
172 |
String cle = it.next();
|
|
|
173 |
if (cle.equals("AT")) {
|
|
|
174 |
auteurTitrePourcentChp.peupler(infos.get(cle));
|
|
|
175 |
} else if (cle.equals("F")) {
|
|
|
176 |
famillePourcentChp.peupler(infos.get(cle));
|
|
|
177 |
} else if (cle.equals("G")) {
|
|
|
178 |
genrePourcentChp.peupler(infos.get(cle));
|
|
|
179 |
} else if (cle.equals("SP")) {
|
|
|
180 |
spPourcentChp.peupler(infos.get(cle));
|
|
|
181 |
} else if (cle.equals("ASP")) {
|
|
|
182 |
auteurSpPourcentChp.peupler(infos.get(cle));
|
|
|
183 |
} else if (cle.equals("L")) {
|
|
|
184 |
localitePourcentChp.peupler(infos.get(cle));
|
|
|
185 |
} else if (cle.equals("D")) {
|
956 |
jpm |
186 |
datePourcentChp.peupler(infos.get(cle));
|
954 |
jpm |
187 |
}
|
|
|
188 |
}
|
|
|
189 |
}
|
|
|
190 |
}
|
|
|
191 |
|
964 |
jpm |
192 |
public static HashMap<String,String> parserEtiquetteRenseignement(String valeurTruk) {
|
954 |
jpm |
193 |
HashMap<String,String> infos = null;
|
|
|
194 |
if (!UtilString.isEmpty(valeurTruk)) {
|
|
|
195 |
infos = new HashMap<String,String>();
|
|
|
196 |
String[] pourcentages = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
|
|
|
197 |
for (int i = 0; i < pourcentages.length; i++) {
|
|
|
198 |
String[] pourcentageIdValeur = pourcentages[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
|
|
|
199 |
String id = pourcentageIdValeur[0];
|
|
|
200 |
String valeur = pourcentageIdValeur[1];
|
|
|
201 |
infos.put(id, valeur);
|
|
|
202 |
}
|
|
|
203 |
}
|
|
|
204 |
return infos;
|
|
|
205 |
}
|
|
|
206 |
|
858 |
jpm |
207 |
private void creerFieldsetIntegration() {
|
|
|
208 |
FieldSet integrationFieldSet = new FieldSet();
|
1680 |
raphael |
209 |
integrationFieldSet.setHeadingHtml(i18nC.collectionIntegreeTitre());
|
858 |
jpm |
210 |
integrationFieldSet.setCollapsible(true);
|
|
|
211 |
integrationFieldSet.setLayout(Formulaire.creerFormLayout(350, alignementLabelDefaut));
|
|
|
212 |
|
|
|
213 |
integreCollectionCombo = new ChampComboBoxListeValeurs(i18nC.integreCollection(), "onpi", tabIndex++);
|
|
|
214 |
integrationFieldSet.add(integreCollectionCombo);
|
|
|
215 |
|
|
|
216 |
infoIntegreCollectionCombo = new ChampComboBoxListeValeurs(i18nC.infoIntegreCollection(), "onp", tabIndex++);
|
|
|
217 |
integrationFieldSet.add(infoIntegreCollectionCombo);
|
|
|
218 |
|
|
|
219 |
Text infoIntegration = new Text(i18nC.infoIntegrationCollection());
|
|
|
220 |
integrationFieldSet.add(infoIntegration);
|
|
|
221 |
|
|
|
222 |
add(integrationFieldSet);
|
|
|
223 |
}
|
|
|
224 |
|
954 |
jpm |
225 |
public void peupler() {
|
|
|
226 |
initialiserCollection();
|
|
|
227 |
if (collectionBotanique != null) {
|
955 |
jpm |
228 |
natureChp.peupler(collectionBotanique.getNature());
|
|
|
229 |
specialiteChp.setValue(collectionBotanique.getSpecialite());
|
954 |
jpm |
230 |
|
955 |
jpm |
231 |
etatClassementCombo.peupler(collectionBotanique.getClassementEtat());
|
|
|
232 |
annotationClassementChp.setValue(collectionBotanique.getClassementAnnotation());
|
954 |
jpm |
233 |
|
955 |
jpm |
234 |
peuplerEtiquetteRenseignement(collectionBotanique.getEtiquetteRenseignement());
|
|
|
235 |
precisionLocaliteCombo.peupler(collectionBotanique.getPrecisionLocalite());
|
|
|
236 |
precisionDateCombo.peupler(collectionBotanique.getPrecisionDate());
|
|
|
237 |
etiquetteAnnotationChp.setValue(collectionBotanique.getAnnotationsDiverses());
|
954 |
jpm |
238 |
|
955 |
jpm |
239 |
integreCollectionCombo.peupler(collectionBotanique.getCollectionIntegre());
|
|
|
240 |
infoIntegreCollectionCombo.peupler(collectionBotanique.getCollectionIntegreInfo());
|
858 |
jpm |
241 |
}
|
|
|
242 |
}
|
|
|
243 |
|
954 |
jpm |
244 |
public void collecter() {
|
|
|
245 |
initialiserCollection();
|
|
|
246 |
if (etreAccede()) {
|
|
|
247 |
collectionBotaniqueCollectee.setNature(natureChp.getValeur());
|
|
|
248 |
collectionBotaniqueCollectee.setSpecialite(specialiteChp.getValue());
|
858 |
jpm |
249 |
|
954 |
jpm |
250 |
collectionBotaniqueCollectee.setClassementEtat(etatClassementCombo.getValeur());
|
|
|
251 |
collectionBotaniqueCollectee.setClassementAnnotation(annotationClassementChp.getValue());
|
|
|
252 |
|
|
|
253 |
collectionBotaniqueCollectee.setEtiquetteRenseignement(collecterEtiquetteRenseignement());
|
|
|
254 |
collectionBotaniqueCollectee.setPrecisionLocalite(precisionLocaliteCombo.getValeur());
|
|
|
255 |
collectionBotaniqueCollectee.setPrecisionDate(precisionDateCombo.getValeur());
|
|
|
256 |
collectionBotaniqueCollectee.setAnnotationsDiverses(etiquetteAnnotationChp.getValue());
|
|
|
257 |
|
|
|
258 |
collectionBotaniqueCollectee.setCollectionIntegre(integreCollectionCombo.getValeur());
|
|
|
259 |
collectionBotaniqueCollectee.setCollectionIntegreInfo(infoIntegreCollectionCombo.getValeur());
|
858 |
jpm |
260 |
}
|
|
|
261 |
}
|
954 |
jpm |
262 |
|
|
|
263 |
private void initialiserCollection() {
|
|
|
264 |
collection = ((CollectionForm) formulaire).collection;
|
|
|
265 |
if (collection != null) {
|
|
|
266 |
collectionBotanique = collection.getBotanique();
|
|
|
267 |
}
|
|
|
268 |
|
|
|
269 |
collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
|
|
|
270 |
if (collectionCollectee != null) {
|
|
|
271 |
collectionBotaniqueCollectee = collectionCollectee.getBotanique();
|
|
|
272 |
}
|
|
|
273 |
}
|
|
|
274 |
|
|
|
275 |
public void rafraichir(Object nouvellesDonnees) {
|
|
|
276 |
Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
|
|
|
277 |
}
|
|
|
278 |
}
|