935 |
jpm |
1 |
package org.tela_botanica.client.vues.structure;
|
69 |
jpm |
2 |
|
91 |
jpm |
3 |
import java.util.ArrayList;
|
1284 |
gduche |
4 |
import java.util.Date;
|
91 |
jpm |
5 |
import java.util.Iterator;
|
1513 |
jpm |
6 |
import java.util.LinkedList;
|
69 |
jpm |
7 |
import java.util.List;
|
|
|
8 |
|
981 |
jpm |
9 |
import org.tela_botanica.client.ComposantClass;
|
119 |
jpm |
10 |
import org.tela_botanica.client.Mediateur;
|
91 |
jpm |
11 |
import org.tela_botanica.client.RegistreId;
|
1329 |
cyprien |
12 |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
|
1468 |
jpm |
13 |
import org.tela_botanica.client.composants.GrillePaginable;
|
1210 |
cyprien |
14 |
import org.tela_botanica.client.composants.InfoLogger;
|
1468 |
jpm |
15 |
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne;
|
1369 |
cyprien |
16 |
import org.tela_botanica.client.composants.pagination.ProxyPersonnes;
|
1329 |
cyprien |
17 |
import org.tela_botanica.client.composants.pagination.ProxyProjets;
|
1468 |
jpm |
18 |
import org.tela_botanica.client.composants.pagination.ProxyStructureAPersonne;
|
1329 |
cyprien |
19 |
import org.tela_botanica.client.composants.pagination.ProxyValeur;
|
569 |
jp_milcent |
20 |
import org.tela_botanica.client.images.Images;
|
69 |
jpm |
21 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
153 |
jpm |
22 |
import org.tela_botanica.client.modeles.Information;
|
100 |
jpm |
23 |
import org.tela_botanica.client.modeles.InterneValeur;
|
|
|
24 |
import org.tela_botanica.client.modeles.InterneValeurListe;
|
330 |
jp_milcent |
25 |
import org.tela_botanica.client.modeles.MenuApplicationId;
|
91 |
jpm |
26 |
import org.tela_botanica.client.modeles.Valeur;
|
|
|
27 |
import org.tela_botanica.client.modeles.ValeurListe;
|
1239 |
cyprien |
28 |
import org.tela_botanica.client.modeles.aDonnee;
|
1262 |
cyprien |
29 |
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
|
935 |
jpm |
30 |
import org.tela_botanica.client.modeles.personne.Personne;
|
|
|
31 |
import org.tela_botanica.client.modeles.personne.PersonneListe;
|
|
|
32 |
import org.tela_botanica.client.modeles.projet.Projet;
|
|
|
33 |
import org.tela_botanica.client.modeles.projet.ProjetListe;
|
|
|
34 |
import org.tela_botanica.client.modeles.structure.Structure;
|
|
|
35 |
import org.tela_botanica.client.modeles.structure.StructureAPersonne;
|
|
|
36 |
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe;
|
|
|
37 |
import org.tela_botanica.client.modeles.structure.StructureConservation;
|
|
|
38 |
import org.tela_botanica.client.modeles.structure.StructureValorisation;
|
1322 |
gduche |
39 |
import org.tela_botanica.client.synchronisation.Sequenceur;
|
1210 |
cyprien |
40 |
import org.tela_botanica.client.util.Debug;
|
1173 |
jpm |
41 |
import org.tela_botanica.client.util.Pattern;
|
243 |
jp_milcent |
42 |
import org.tela_botanica.client.util.UtilArray;
|
1043 |
gduche |
43 |
import org.tela_botanica.client.util.UtilString;
|
935 |
jpm |
44 |
import org.tela_botanica.client.vues.Formulaire;
|
1637 |
aurelien |
45 |
import org.tela_botanica.client.vues.structure.StructureFormPersonne.EtatPersonnelStructure;
|
69 |
jpm |
46 |
|
1284 |
gduche |
47 |
import com.extjs.gxt.ui.client.Style.Scroll;
|
1329 |
cyprien |
48 |
import com.extjs.gxt.ui.client.data.ModelData;
|
|
|
49 |
import com.extjs.gxt.ui.client.data.ModelType;
|
491 |
gduche |
50 |
import com.extjs.gxt.ui.client.event.Events;
|
91 |
jpm |
51 |
import com.extjs.gxt.ui.client.Registry;
|
295 |
jp_milcent |
52 |
import com.extjs.gxt.ui.client.event.BaseEvent;
|
491 |
gduche |
53 |
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
111 |
jpm |
54 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
1210 |
cyprien |
55 |
import com.extjs.gxt.ui.client.event.EventType;
|
243 |
jp_milcent |
56 |
import com.extjs.gxt.ui.client.event.KeyListener;
|
111 |
jpm |
57 |
import com.extjs.gxt.ui.client.event.Listener;
|
100 |
jpm |
58 |
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
|
|
59 |
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
103 |
jpm |
60 |
import com.extjs.gxt.ui.client.event.SelectionListener;
|
69 |
jpm |
61 |
import com.extjs.gxt.ui.client.store.ListStore;
|
245 |
jp_milcent |
62 |
import com.extjs.gxt.ui.client.store.Record;
|
|
|
63 |
import com.extjs.gxt.ui.client.store.Store;
|
|
|
64 |
import com.extjs.gxt.ui.client.store.StoreEvent;
|
111 |
jpm |
65 |
import com.extjs.gxt.ui.client.widget.Component;
|
102 |
jpm |
66 |
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
569 |
jp_milcent |
67 |
import com.extjs.gxt.ui.client.widget.Html;
|
153 |
jpm |
68 |
import com.extjs.gxt.ui.client.widget.Info;
|
69 |
jpm |
69 |
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
320 |
gduche |
70 |
import com.extjs.gxt.ui.client.widget.MessageBox;
|
100 |
jpm |
71 |
import com.extjs.gxt.ui.client.widget.TabItem;
|
|
|
72 |
import com.extjs.gxt.ui.client.widget.TabPanel;
|
69 |
jpm |
73 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
108 |
jpm |
74 |
import com.extjs.gxt.ui.client.widget.form.CheckBox;
|
|
|
75 |
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
|
69 |
jpm |
76 |
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
100 |
jpm |
77 |
import com.extjs.gxt.ui.client.widget.form.DateField;
|
119 |
jpm |
78 |
import com.extjs.gxt.ui.client.widget.form.Field;
|
100 |
jpm |
79 |
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
172 |
jp_milcent |
80 |
import com.extjs.gxt.ui.client.widget.form.HiddenField;
|
103 |
jpm |
81 |
import com.extjs.gxt.ui.client.widget.form.LabelField;
|
102 |
jpm |
82 |
import com.extjs.gxt.ui.client.widget.form.NumberField;
|
109 |
jpm |
83 |
import com.extjs.gxt.ui.client.widget.form.Radio;
|
|
|
84 |
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
|
164 |
jp_milcent |
85 |
import com.extjs.gxt.ui.client.widget.form.TextArea;
|
69 |
jpm |
86 |
import com.extjs.gxt.ui.client.widget.form.TextField;
|
1329 |
cyprien |
87 |
import com.extjs.gxt.ui.client.widget.form.Validator;
|
69 |
jpm |
88 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
|
|
89 |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
|
102 |
jpm |
90 |
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
|
|
91 |
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
|
|
|
92 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
|
|
93 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
|
|
94 |
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
|
231 |
jp_milcent |
95 |
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
|
1468 |
jpm |
96 |
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
|
231 |
jp_milcent |
97 |
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
|
69 |
jpm |
98 |
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
|
|
|
99 |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
|
|
|
100 |
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
100 |
jpm |
101 |
import com.extjs.gxt.ui.client.widget.layout.FormData;
|
110 |
jpm |
102 |
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
|
102 |
jpm |
103 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
|
|
104 |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
91 |
jpm |
105 |
import com.google.gwt.core.client.GWT;
|
100 |
jpm |
106 |
import com.google.gwt.i18n.client.DateTimeFormat;
|
102 |
jpm |
107 |
import com.google.gwt.i18n.client.NumberFormat;
|
1035 |
gduche |
108 |
import com.google.gwt.user.client.Window;
|
69 |
jpm |
109 |
|
634 |
jp_milcent |
110 |
public class StructureForm extends Formulaire implements Rafraichissable {
|
1637 |
aurelien |
111 |
|
775 |
jpm |
112 |
private TabPanel onglets = null;
|
1637 |
aurelien |
113 |
private StructureFormIdentification identificationOnglet = null;
|
|
|
114 |
private StructureFormPersonne personnelOnglet = null;
|
|
|
115 |
private StructureFormConservation conservationOnglet = null;
|
|
|
116 |
private StructureFormValorisation valorisationOnglet = null;
|
115 |
jpm |
117 |
|
206 |
jp_milcent |
118 |
// Onglet IDENTIFICATION
|
1637 |
aurelien |
119 |
public Structure identification = null;
|
192 |
jp_milcent |
120 |
|
206 |
jp_milcent |
121 |
// Onglet PERSONNEL
|
1637 |
aurelien |
122 |
// Vide suite à refactoring
|
211 |
jp_milcent |
123 |
|
206 |
jp_milcent |
124 |
// Onglet CONSERVATION
|
1637 |
aurelien |
125 |
public StructureConservation conservation = null;
|
|
|
126 |
|
206 |
jp_milcent |
127 |
// Onglet VALORISATION
|
1637 |
aurelien |
128 |
public StructureValorisation valorisation = null;
|
1322 |
gduche |
129 |
|
|
|
130 |
private Sequenceur sequenceur;
|
|
|
131 |
|
1613 |
aurelien |
132 |
private Structure structure = null;
|
|
|
133 |
|
|
|
134 |
public Rafraichissable vueExterneARafraichirApresValidation = null;
|
|
|
135 |
|
1322 |
gduche |
136 |
public StructureForm(Mediateur mediateurCourrant, String modeDeCreation, Sequenceur sequenceur) {
|
648 |
jp_milcent |
137 |
initialiserFormulaire(mediateurCourrant, modeDeCreation, MenuApplicationId.STRUCTURE);
|
1322 |
gduche |
138 |
this.sequenceur = sequenceur;
|
|
|
139 |
|
775 |
jpm |
140 |
// Ajout du titre
|
1680 |
raphael |
141 |
panneauFormulaire.setHeadingHtml(i18nC.titreAjoutFormStructurePanneau());
|
775 |
jpm |
142 |
// Création des onglets
|
|
|
143 |
onglets = creerOnglets();
|
1322 |
gduche |
144 |
|
775 |
jpm |
145 |
// Ajout des onglets au formulaire général
|
|
|
146 |
panneauFormulaire.add(onglets);
|
609 |
jp_milcent |
147 |
}
|
|
|
148 |
|
775 |
jpm |
149 |
protected TabPanel creerOnglets() {
|
|
|
150 |
TabPanel ongletsStructure = new TabPanel();
|
110 |
jpm |
151 |
// NOTE : pour faire apparaître les scrollBar il faut définir la hauteur du panneau d'onglets à 100% (autoHeight ne semble pas fonctionner)
|
775 |
jpm |
152 |
ongletsStructure.setHeight("100%");
|
69 |
jpm |
153 |
|
100 |
jpm |
154 |
// Onlget formulaire IDENTIFICATION
|
775 |
jpm |
155 |
ongletsStructure.add(creerOngletIdentification());
|
206 |
jp_milcent |
156 |
|
100 |
jpm |
157 |
// Onlget formulaire PERSONNEL
|
775 |
jpm |
158 |
ongletsStructure.add(creerOngletPersonnel());
|
91 |
jpm |
159 |
|
100 |
jpm |
160 |
// Onlget formulaire CONSERVATION
|
775 |
jpm |
161 |
ongletsStructure.add(creerOngletConservation());
|
100 |
jpm |
162 |
|
|
|
163 |
// Onlget formulaire VALORISATION
|
775 |
jpm |
164 |
ongletsStructure.add(creerOngletValorisation());
|
100 |
jpm |
165 |
|
119 |
jpm |
166 |
// Sélection de l'onglet par défaut
|
775 |
jpm |
167 |
//ongletsStructure(personnelOnglet);
|
192 |
jp_milcent |
168 |
|
775 |
jpm |
169 |
return ongletsStructure;
|
609 |
jp_milcent |
170 |
}
|
|
|
171 |
|
1613 |
aurelien |
172 |
private void repandreRafraichissement() {
|
|
|
173 |
if (vueExterneARafraichirApresValidation != null) {
|
|
|
174 |
String type = "structure_modifiee";
|
|
|
175 |
if (mode.equals(Formulaire.MODE_AJOUTER)) {
|
|
|
176 |
type = "structure_ajoutee";
|
|
|
177 |
}
|
|
|
178 |
Information info = new Information(type);
|
|
|
179 |
info.setDonnee(0, structure);
|
|
|
180 |
vueExterneARafraichirApresValidation.rafraichir(info);
|
|
|
181 |
}
|
|
|
182 |
}
|
|
|
183 |
|
934 |
jpm |
184 |
public boolean soumettreFormulaire() {
|
1210 |
cyprien |
185 |
|
243 |
jp_milcent |
186 |
// Vérification de la validité des champs du formulaire
|
786 |
jpm |
187 |
boolean fomulaireValide = verifierFormulaire();
|
1613 |
aurelien |
188 |
|
|
|
189 |
Structure identification = collecterStructureIdentification();
|
|
|
190 |
|
|
|
191 |
if(identification != null) {
|
|
|
192 |
structure = identification;
|
|
|
193 |
} else {
|
1637 |
aurelien |
194 |
structure = this.identification;
|
1613 |
aurelien |
195 |
}
|
|
|
196 |
|
|
|
197 |
|
|
|
198 |
structure.setConservation(this.conservation);
|
|
|
199 |
structure.setValorisation(this.valorisation);
|
|
|
200 |
|
786 |
jpm |
201 |
if (fomulaireValide) {
|
243 |
jp_milcent |
202 |
// Collecte des données du formulaire
|
|
|
203 |
StructureConservation conservation = collecterStructureConservation();
|
|
|
204 |
StructureValorisation valorisation = collecterStructureValorisation();
|
1613 |
aurelien |
205 |
|
|
|
206 |
if(conservation != null) {
|
|
|
207 |
structure.setConservation(conservation);
|
|
|
208 |
}
|
|
|
209 |
|
|
|
210 |
if(valorisation != null) {
|
|
|
211 |
structure.setValorisation(valorisation);
|
|
|
212 |
}
|
|
|
213 |
|
1637 |
aurelien |
214 |
EtatPersonnelStructure etatPersonnel = personnelOnglet.collecter();
|
243 |
jp_milcent |
215 |
|
1637 |
aurelien |
216 |
structure.setPersonnel(etatPersonnel.personnel);
|
1613 |
aurelien |
217 |
structure.setConservation(conservation);
|
|
|
218 |
structure.setValorisation(valorisation);
|
|
|
219 |
|
634 |
jp_milcent |
220 |
if (mode.equals(MODE_AJOUTER)) {
|
243 |
jp_milcent |
221 |
// Ajout des informations sur la Structure
|
782 |
jpm |
222 |
mediateur.ajouterStructure(this, structure, conservation, valorisation);
|
243 |
jp_milcent |
223 |
// L'ajout des relations StructureAPersonne se fait quand la structure a été ajoutée
|
|
|
224 |
// Voir la méthode rafraichir().
|
634 |
jp_milcent |
225 |
} else if (mode.equals(MODE_MODIFIER)) {
|
1210 |
cyprien |
226 |
|
243 |
jp_milcent |
227 |
// Modification des informations sur la Structure
|
306 |
jp_milcent |
228 |
if (structure == null && conservation == null && valorisation == null) {
|
1630 |
aurelien |
229 |
//InfoLogger.display("Modification d'une institution", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
|
306 |
jp_milcent |
230 |
} else {
|
1637 |
aurelien |
231 |
mediateur.modifierStructure(this, structure.getId(), structure, conservation, valorisation);
|
306 |
jp_milcent |
232 |
}
|
1210 |
cyprien |
233 |
|
1637 |
aurelien |
234 |
if (etatPersonnel.personnelModifie.size() == 0 && etatPersonnel.personnelAjoute.size() == 0 && etatPersonnel.personnelSupprime.size() == 0) {
|
1630 |
aurelien |
235 |
//InfoLogger.display("Modification du personnel", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
|
306 |
jp_milcent |
236 |
} else {
|
1637 |
aurelien |
237 |
if (etatPersonnel.personnelModifie.size() != 0) {
|
|
|
238 |
personnelOnglet.incrementerDecompteRafraichissementPersonnel();
|
|
|
239 |
mediateur.modifierStructureAPersonne(this, etatPersonnel.personnelModifie);
|
306 |
jp_milcent |
240 |
}
|
|
|
241 |
// Ajout des relations StructureAPersonne
|
1637 |
aurelien |
242 |
if (etatPersonnel.personnelAjoute.size() != 0) {
|
|
|
243 |
personnelOnglet.incrementerDecompteRafraichissementPersonnel();
|
|
|
244 |
mediateur.ajouterStructureAPersonne(this, structure.getId(), etatPersonnel.personnelAjoute);
|
306 |
jp_milcent |
245 |
}
|
|
|
246 |
// Suppression des relations StructureAPersonne
|
1637 |
aurelien |
247 |
if (etatPersonnel.personnelSupprime.size() != 0) {
|
|
|
248 |
personnelOnglet.incrementerDecompteRafraichissementPersonnel();
|
|
|
249 |
mediateur.supprimerStructureAPersonne(this, etatPersonnel.personnelSupprime);
|
306 |
jp_milcent |
250 |
}
|
|
|
251 |
}
|
243 |
jp_milcent |
252 |
}
|
|
|
253 |
}
|
1210 |
cyprien |
254 |
|
786 |
jpm |
255 |
return fomulaireValide;
|
243 |
jp_milcent |
256 |
}
|
|
|
257 |
|
934 |
jpm |
258 |
public boolean verifierFormulaire() {
|
243 |
jp_milcent |
259 |
ArrayList<String> messages = new ArrayList<String>();
|
1637 |
aurelien |
260 |
messages.addAll(verifierOnglets());
|
231 |
jp_milcent |
261 |
|
243 |
jp_milcent |
262 |
// Affichage des messages d'alerte
|
|
|
263 |
if (messages.size() != 0) {
|
|
|
264 |
String[] a = {};
|
|
|
265 |
a = messages.toArray(a);
|
320 |
gduche |
266 |
MessageBox.alert("Erreurs de saisies", UtilArray.implode(a, "\n\n"), null);
|
243 |
jp_milcent |
267 |
return false;
|
|
|
268 |
}
|
1284 |
gduche |
269 |
|
243 |
jp_milcent |
270 |
return true;
|
119 |
jpm |
271 |
}
|
1637 |
aurelien |
272 |
|
|
|
273 |
private ArrayList<String> verifierOnglets() {
|
|
|
274 |
ArrayList<String> messages = new ArrayList<String>();
|
|
|
275 |
messages.addAll(identificationOnglet.verifier());
|
|
|
276 |
messages.addAll(personnelOnglet.verifier());
|
|
|
277 |
return messages;
|
|
|
278 |
}
|
119 |
jpm |
279 |
|
192 |
jp_milcent |
280 |
private StructureValorisation collecterStructureValorisation() {
|
1637 |
aurelien |
281 |
return valorisationOnglet.collecter();
|
192 |
jp_milcent |
282 |
}
|
|
|
283 |
|
|
|
284 |
private void peuplerStructureValorisation() {
|
1637 |
aurelien |
285 |
valorisationOnglet.peupler();
|
192 |
jp_milcent |
286 |
}
|
|
|
287 |
|
|
|
288 |
private StructureConservation collecterStructureConservation() {
|
1637 |
aurelien |
289 |
return conservationOnglet.collecter();
|
188 |
jp_milcent |
290 |
}
|
|
|
291 |
|
192 |
jp_milcent |
292 |
private void peuplerStructureConservation() {
|
1637 |
aurelien |
293 |
conservationOnglet.peupler();
|
188 |
jp_milcent |
294 |
}
|
|
|
295 |
|
192 |
jp_milcent |
296 |
private Structure collecterStructureIdentification() {
|
1637 |
aurelien |
297 |
Structure structureARetourner = identificationOnglet.collecter();
|
306 |
jp_milcent |
298 |
return structureARetourner;
|
119 |
jpm |
299 |
}
|
|
|
300 |
|
111 |
jpm |
301 |
private TabItem creerOngletValorisation() {
|
1637 |
aurelien |
302 |
valorisationOnglet = new StructureFormValorisation(mediateur, this, sequenceur);
|
111 |
jpm |
303 |
return valorisationOnglet;
|
|
|
304 |
}
|
|
|
305 |
|
108 |
jpm |
306 |
private TabItem creerOngletConservation() {
|
1637 |
aurelien |
307 |
conservationOnglet = new StructureFormConservation(mediateur, this, sequenceur);
|
108 |
jpm |
308 |
return conservationOnglet;
|
|
|
309 |
}
|
|
|
310 |
|
1637 |
aurelien |
311 |
private EtatPersonnelStructure collecterStructurePersonnel() {
|
|
|
312 |
return personnelOnglet.collecter();
|
231 |
jp_milcent |
313 |
}
|
211 |
jp_milcent |
314 |
|
1637 |
aurelien |
315 |
private void peuplerStructurePersonnel(StructureAPersonneListe personnel) {
|
|
|
316 |
personnelOnglet.peupler(personnel);
|
211 |
jp_milcent |
317 |
}
|
|
|
318 |
|
103 |
jpm |
319 |
private TabItem creerOngletPersonnel() {
|
1637 |
aurelien |
320 |
personnelOnglet = new StructureFormPersonne(this, mediateur);
|
231 |
jp_milcent |
321 |
return personnelOnglet;
|
|
|
322 |
}
|
102 |
jpm |
323 |
|
110 |
jpm |
324 |
private TabItem creerOngletIdentification() {
|
1637 |
aurelien |
325 |
identificationOnglet = new StructureFormIdentification(this);
|
110 |
jpm |
326 |
return identificationOnglet;
|
|
|
327 |
}
|
1637 |
aurelien |
328 |
|
|
|
329 |
public void peuplerCasesACocher(String donnees, CheckBoxGroup groupeCac, TextField<String> champAutre) {
|
192 |
jp_milcent |
330 |
String[] valeurs = donnees.split(";;");
|
|
|
331 |
for (int i = 0; i < valeurs.length; i++) {
|
|
|
332 |
if (valeurs[i].startsWith("AUTRE##")) {
|
|
|
333 |
champAutre.setValue(valeurs[i].replaceFirst("^AUTRE##", ""));
|
|
|
334 |
} else {
|
491 |
gduche |
335 |
//TODO : check : List<CheckBox> cases = groupeCac.getAll();
|
|
|
336 |
List<Field<?>> cases = groupeCac.getAll();
|
192 |
jp_milcent |
337 |
for (int j = 0; j < cases.size(); j++) {
|
|
|
338 |
if (cases.get(j).getId().equals("val-"+valeurs[i])) {
|
491 |
gduche |
339 |
((CheckBox) cases.get(j)).setValue(true);
|
192 |
jp_milcent |
340 |
}
|
|
|
341 |
}
|
|
|
342 |
}
|
|
|
343 |
}
|
|
|
344 |
}
|
|
|
345 |
|
1637 |
aurelien |
346 |
public void peuplerBoutonsRadio(String valeur, RadioGroup groupeBr) {
|
491 |
gduche |
347 |
//List<Radio> boutons = groupeBr.getAll();
|
|
|
348 |
List<Field<?>> boutons = groupeBr.getAll();
|
192 |
jp_milcent |
349 |
String id = valeur+"_"+groupeBr.getName().replace("_grp", "");
|
|
|
350 |
for (int i = 0; i < boutons.size(); i++) {
|
|
|
351 |
if (boutons.get(i).getId().equals(id)) {
|
491 |
gduche |
352 |
((Radio) boutons.get(i)).setValue(true);
|
192 |
jp_milcent |
353 |
}
|
|
|
354 |
}
|
|
|
355 |
}
|
|
|
356 |
|
1637 |
aurelien |
357 |
public String creerChaineDenormalisee(List<CheckBox> liste) {
|
192 |
jp_milcent |
358 |
String identifiants = "";
|
306 |
jp_milcent |
359 |
if (liste != null) {
|
|
|
360 |
int taille = liste.size();
|
|
|
361 |
for (int i = 0; i < taille; i++) {
|
|
|
362 |
CheckBox cac = liste.get(i);
|
|
|
363 |
if (cac.isEnabled()) {
|
|
|
364 |
identifiants = identifiants.concat(";;"+cac.getData("id"));
|
|
|
365 |
}
|
192 |
jp_milcent |
366 |
}
|
306 |
jp_milcent |
367 |
identifiants.replaceFirst("^;;", "");
|
192 |
jp_milcent |
368 |
}
|
306 |
jp_milcent |
369 |
return identifiants;
|
192 |
jp_milcent |
370 |
}
|
|
|
371 |
|
1637 |
aurelien |
372 |
public void afficherChampSupplementaire(Radio radioBtn) {
|
|
|
373 |
valorisationOnglet.afficherChampSupplementaire(radioBtn) ;
|
|
|
374 |
conservationOnglet.afficherChampSupplementaires(radioBtn);
|
111 |
jpm |
375 |
}
|
|
|
376 |
|
639 |
jp_milcent |
377 |
public void rafraichir(Object nouvellesDonnees) {
|
|
|
378 |
try {
|
|
|
379 |
if (nouvellesDonnees instanceof Information) {
|
|
|
380 |
Information info = (Information) nouvellesDonnees;
|
|
|
381 |
rafraichirInformation(info);
|
1637 |
aurelien |
382 |
if(!info.getType().equals("selection_structure") && !info.getType().equals("selection_structure")) {
|
|
|
383 |
repandreRafraichissement();
|
|
|
384 |
}
|
639 |
jp_milcent |
385 |
} else if (nouvellesDonnees instanceof ValeurListe) {
|
|
|
386 |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
|
|
|
387 |
rafraichirValeurListe(listeValeurs);
|
|
|
388 |
} else {
|
|
|
389 |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
|
295 |
jp_milcent |
390 |
}
|
639 |
jp_milcent |
391 |
} catch (Exception e) {
|
875 |
jpm |
392 |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), e);
|
109 |
jpm |
393 |
}
|
|
|
394 |
|
1239 |
cyprien |
395 |
controlerFermeture();
|
109 |
jpm |
396 |
}
|
|
|
397 |
|
1513 |
jpm |
398 |
public void rafraichirInformation(Information info) {
|
639 |
jp_milcent |
399 |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
|
|
|
400 |
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
|
|
|
401 |
}
|
|
|
402 |
|
|
|
403 |
if (info.getType().equals("modif_structure")) {
|
1210 |
cyprien |
404 |
InfoLogger.display("Modification d'une institution", info.toString());
|
1673 |
raphael |
405 |
Structure structureMaj = (Structure)(info.getDonnee(0));
|
|
|
406 |
if(structureMaj != null) {
|
|
|
407 |
// TRUE uniquement si la modification a retourné un objet JSON pour mise à jour
|
|
|
408 |
// (contenant les coordonnées générées, cf r1673)
|
|
|
409 |
structure.setLatitude(structureMaj.getLatitude());
|
|
|
410 |
structure.setLongitude(structureMaj.getLongitude());
|
|
|
411 |
}
|
|
|
412 |
|
1613 |
aurelien |
413 |
controlerFermeture();
|
639 |
jp_milcent |
414 |
} else if (info.getType().equals("ajout_structure")) {
|
1708 |
raphael |
415 |
if (info.getDonnee(0) != null && ( info.getDonnee(0) instanceof String || info.getDonnee(0) instanceof Object) ) {
|
1637 |
aurelien |
416 |
this.mode = MODE_MODIFIER;
|
1708 |
raphael |
417 |
String structureId;
|
|
|
418 |
|
|
|
419 |
if(info.getDonnee(0) instanceof String) {
|
|
|
420 |
structureId = (String) info.getDonnee(0);
|
|
|
421 |
}
|
|
|
422 |
else {
|
|
|
423 |
// le backend renvoie un objet si longitude et latitude ont
|
|
|
424 |
// été générés
|
|
|
425 |
Structure structureMaj = (Structure)(info.getDonnee(0));
|
|
|
426 |
// structureMaj == null ? erreur horriblement impensable
|
|
|
427 |
structure.setLatitude(structureMaj.getLatitude());
|
|
|
428 |
structure.setLongitude(structureMaj.getLongitude());
|
|
|
429 |
structureId = structureMaj.getId();
|
|
|
430 |
}
|
|
|
431 |
|
1637 |
aurelien |
432 |
structure.setId(structureId);
|
|
|
433 |
identification = structure;
|
|
|
434 |
identificationOnglet.rafraichir(info);
|
|
|
435 |
personnelOnglet.rafraichir(info);
|
|
|
436 |
conservationOnglet.rafraichir(info);
|
|
|
437 |
valorisationOnglet.rafraichir(info);
|
1210 |
cyprien |
438 |
InfoLogger.display("Ajout d'une Institution", "L'intitution '"+structureId+"' a bien été ajoutée");
|
639 |
jp_milcent |
439 |
} else {
|
1210 |
cyprien |
440 |
InfoLogger.display("Ajout d'une Institution", info.toString());
|
639 |
jp_milcent |
441 |
}
|
|
|
442 |
} else if (info.getType().equals("modif_structure_a_personne")) {
|
1210 |
cyprien |
443 |
InfoLogger.display("Modification du Personnel", info.toString());
|
1637 |
aurelien |
444 |
personnelOnglet.rafraichir(info);
|
639 |
jp_milcent |
445 |
} else if (info.getType().equals("suppression_structure_a_personne")) {
|
1210 |
cyprien |
446 |
InfoLogger.display("Suppression du Personnel", info.toString());
|
1637 |
aurelien |
447 |
personnelOnglet.rafraichir(info);
|
639 |
jp_milcent |
448 |
} else if (info.getType().equals("ajout_structure_a_personne")) {
|
1210 |
cyprien |
449 |
InfoLogger.display("Ajout du Personnel", info.toString());
|
1637 |
aurelien |
450 |
personnelOnglet.rafraichir(info);
|
639 |
jp_milcent |
451 |
} else if (info.getType().equals("selection_structure")) {
|
1210 |
cyprien |
452 |
InfoLogger.display("Modification d'une institution", info.toString());
|
639 |
jp_milcent |
453 |
String titre = i18nC.titreModifFormStructurePanneau();
|
|
|
454 |
if (info.getDonnee(0) != null) {
|
1637 |
aurelien |
455 |
identification = (Structure)info.getDonnee(0);
|
|
|
456 |
identificationOnglet.rafraichir(info);
|
639 |
jp_milcent |
457 |
// Composition du titre
|
|
|
458 |
titre += " - ID : "+identification.getId();
|
|
|
459 |
}
|
|
|
460 |
if (info.getDonnee(1) != null) {
|
1637 |
aurelien |
461 |
conservation = (StructureConservation)info.getDonnee(1);
|
|
|
462 |
conservationOnglet.rafraichir(info);
|
639 |
jp_milcent |
463 |
}
|
|
|
464 |
if (info.getDonnee(2) != null) {
|
1637 |
aurelien |
465 |
valorisation = (StructureValorisation)info.getDonnee(2);
|
|
|
466 |
valorisationOnglet.rafraichir(info);
|
639 |
jp_milcent |
467 |
}
|
|
|
468 |
} else if (info.getType().equals("liste_structure_a_personne")) {
|
1637 |
aurelien |
469 |
personnelOnglet.rafraichir(info);
|
639 |
jp_milcent |
470 |
}
|
|
|
471 |
}
|
|
|
472 |
|
|
|
473 |
public void rafraichirValeurListe(ValeurListe listeValeurs) {
|
|
|
474 |
List<Valeur> liste = listeValeurs.toList();
|
407 |
jp_milcent |
475 |
|
639 |
jp_milcent |
476 |
// Test pour savoir si la liste contient des éléments
|
|
|
477 |
if (liste.size() > 0) {
|
1637 |
aurelien |
478 |
identificationOnglet.rafraichir(listeValeurs);
|
|
|
479 |
personnelOnglet.rafraichir(listeValeurs);
|
|
|
480 |
conservationOnglet.rafraichir(listeValeurs);
|
|
|
481 |
valorisationOnglet.rafraichir(listeValeurs);
|
639 |
jp_milcent |
482 |
//GWT.log("La liste #"+listeValeurs.getId()+" a été reçue!", null);
|
|
|
483 |
} else {
|
|
|
484 |
GWT.log("La liste #"+listeValeurs.getId()+" ne contient aucune valeurs!", null);
|
91 |
jpm |
485 |
}
|
639 |
jp_milcent |
486 |
}
|
1637 |
aurelien |
487 |
|
|
|
488 |
public String getIdIdentification() {
|
|
|
489 |
return identification.getId();
|
609 |
jp_milcent |
490 |
}
|
|
|
491 |
|
1637 |
aurelien |
492 |
public ModelData getValeurProjetCombo() {
|
|
|
493 |
return identificationOnglet.getValeurProjetCombo();
|
243 |
jp_milcent |
494 |
}
|
|
|
495 |
|
1637 |
aurelien |
496 |
public ModelData getValeurProjet() {
|
|
|
497 |
return identificationOnglet.getValeurProjet();
|
243 |
jp_milcent |
498 |
}
|
1210 |
cyprien |
499 |
}
|