Subversion Repositories eFlore/Applications.cel

Rev

Rev 2628 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2628 Rev 2641
1
package org.tela_botanica.client.util;
1
package org.tela_botanica.client.util;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.HashMap;
4
import java.util.HashMap;
5
import java.util.Iterator;
5
import java.util.Iterator;
6
import java.util.List;
6
import java.util.List;
7
import java.util.Map;
7
import java.util.Map;
8
 
8
 
9
import org.tela_botanica.client.i18n.Msg;
9
import org.tela_botanica.client.i18n.Msg;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.dao.ListeReferentielChampsEtendusDAO;
11
import org.tela_botanica.client.modeles.dao.ListeReferentielChampsEtendusDAO;
12
import org.tela_botanica.client.modeles.objets.ListeGroupesChampsEtendus;
12
import org.tela_botanica.client.modeles.objets.ListeGroupesChampsEtendus;
13
import org.tela_botanica.client.modeles.objets.Utilisateur;
13
import org.tela_botanica.client.modeles.objets.Utilisateur;
14
import org.tela_botanica.client.util.autocompletion.AutoCompletionComboBox;
14
import org.tela_botanica.client.util.autocompletion.AutoCompletionComboBox;
15
 
15
 
16
import com.google.gwt.core.client.Callback;
16
import com.google.gwt.core.client.Callback;
17
import com.google.gwt.event.dom.client.ChangeEvent;
17
import com.google.gwt.event.dom.client.ChangeEvent;
18
import com.google.gwt.event.dom.client.ChangeHandler;
18
import com.google.gwt.event.dom.client.ChangeHandler;
19
import com.google.gwt.http.client.Response;
19
import com.google.gwt.http.client.Response;
-
 
20
import com.google.gwt.http.client.URL;
20
import com.google.gwt.user.client.Window;
21
import com.google.gwt.user.client.Window;
21
import com.google.gwt.user.client.ui.HTML;
22
import com.google.gwt.user.client.ui.HTML;
22
import com.google.gwt.user.client.ui.HorizontalPanel;
23
import com.google.gwt.user.client.ui.HorizontalPanel;
23
import com.google.gwt.user.client.ui.Label;
24
import com.google.gwt.user.client.ui.Label;
24
import com.google.gwt.user.client.ui.ListBox;
25
import com.google.gwt.user.client.ui.ListBox;
25
import com.gwtext.client.core.EventCallback;
26
import com.gwtext.client.core.EventCallback;
26
import com.gwtext.client.core.EventObject;
27
import com.gwtext.client.core.EventObject;
27
import com.gwtext.client.core.Ext;
28
import com.gwtext.client.core.Ext;
28
import com.gwtext.client.widgets.Button;
29
import com.gwtext.client.widgets.Button;
29
import com.gwtext.client.widgets.Panel;
30
import com.gwtext.client.widgets.Panel;
30
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
31
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
31
import com.gwtext.client.widgets.form.FormPanel;
32
import com.gwtext.client.widgets.form.FormPanel;
32
import com.gwtext.client.widgets.layout.FormLayout;
33
import com.gwtext.client.widgets.layout.FormLayout;
33
 
34
 
34
@SuppressWarnings("unchecked")
35
@SuppressWarnings("unchecked")
35
public abstract class FormulaireSaisieChampEtendu extends FormPanel implements Rafraichissable {
36
public abstract class FormulaireSaisieChampEtendu extends FormPanel implements Rafraichissable {
36
	
37
	
37
	final AutoCompletionComboBox nChamp;
38
	final AutoCompletionComboBox nChamp;
38
	Button ajouterChampsEtenduEtFermer;
39
	Button ajouterChampsEtenduEtFermer;
39
	Button ajouterChampsEtendu;
40
	Button ajouterChampsEtendu;
40
	Button annulerAjouterChampEtendu;
41
	Button annulerAjouterChampEtendu;
41
	String idChamp = null;
42
	String idChamp = null;
42
	
43
	
43
	Panel conteneurGroupesChampsEtendus;
44
	Panel conteneurGroupesChampsEtendus;
44
	Panel conteneurlabelGroupe;
45
	Panel conteneurlabelGroupe;
45
	ListBox listeGroupeChampsEtendus;
46
	ListBox listeGroupeChampsEtendus;
46
	HTML indicationSaisieGroupe;
47
	HTML indicationSaisieGroupe;
47
	
48
	
48
	private static ListeGroupesChampsEtendus cacheGroupes;
49
	private static ListeGroupesChampsEtendus cacheGroupes;
49
	private static Map<String, String> cacheLabelsCle;
50
	private static Map<String, String> cacheLabelsCle;
50
	
51
	
51
	private HTML descriptionChamp = null;
52
	private HTML descriptionChamp = null;
52
    private String groupeSelectionne = null;
53
    private String groupeSelectionne = null;
53
	
54
	
54
	public FormulaireSaisieChampEtendu() {	
55
	public FormulaireSaisieChampEtendu() {	
55
		super();
56
		super();
56
		setPaddings(3);
57
		setPaddings(3);
57
		setBodyBorder(false);
58
		setBodyBorder(false);
58
		
59
		
59
		indicationSaisieGroupe = new HTML(Msg.get("indication-saisie-groupe-champ-etendus"));
60
		indicationSaisieGroupe = new HTML(Msg.get("indication-saisie-groupe-champ-etendus"));
60
		indicationSaisieGroupe.addStyleName("aideCreerChampEtendu");
61
		indicationSaisieGroupe.addStyleName("aideCreerChampEtendu");
61
		
62
		
62
		conteneurlabelGroupe = new Panel();
63
		conteneurlabelGroupe = new Panel();
63
		conteneurlabelGroupe.setStyleName("panneauEnLigne");
64
		conteneurlabelGroupe.setStyleName("panneauEnLigne");
64
		conteneurlabelGroupe.addStyleName("selecteurGroupeEtendus");
65
		conteneurlabelGroupe.addStyleName("selecteurGroupeEtendus");
65
		conteneurlabelGroupe.setBorder(false);
66
		conteneurlabelGroupe.setBorder(false);
66
		Label labelGroupeChampsEtendus = new Label(Msg.get("ajouter-groupe-champ-etendus")+" :");
67
		Label labelGroupeChampsEtendus = new Label(Msg.get("ajouter-groupe-champ-etendus")+" :");
67
		listeGroupeChampsEtendus = new ListBox();
68
		listeGroupeChampsEtendus = new ListBox();
68
		listeGroupeChampsEtendus.setWidth("315px");
69
		listeGroupeChampsEtendus.setWidth("315px");
69
		conteneurlabelGroupe.add(labelGroupeChampsEtendus);
70
		conteneurlabelGroupe.add(labelGroupeChampsEtendus);
70
		conteneurlabelGroupe.add(listeGroupeChampsEtendus);
71
		conteneurlabelGroupe.add(listeGroupeChampsEtendus);
71
		
72
		
72
		conteneurGroupesChampsEtendus = new Panel();
73
		conteneurGroupesChampsEtendus = new Panel();
73
		conteneurGroupesChampsEtendus.setBorder(false);
74
		conteneurGroupesChampsEtendus.setBorder(false);
74
		conteneurGroupesChampsEtendus.setPaddings(0);
75
		conteneurGroupesChampsEtendus.setPaddings(0);
75
		conteneurGroupesChampsEtendus.setMargins(0);
76
		conteneurGroupesChampsEtendus.setMargins(0);
76
		conteneurGroupesChampsEtendus.setLayout(new FormLayout());
77
		conteneurGroupesChampsEtendus.setLayout(new FormLayout());
77
		conteneurGroupesChampsEtendus.setWidth("100%");
78
		conteneurGroupesChampsEtendus.setWidth("100%");
78
		
79
		
79
		add(conteneurGroupesChampsEtendus);
80
		add(conteneurGroupesChampsEtendus);
80
		
81
		
81
		if(cacheGroupes == null) {
82
		if(cacheGroupes == null) {
82
			ListeReferentielChampsEtendusDAO lrceDao = new ListeReferentielChampsEtendusDAO(null);
83
			ListeReferentielChampsEtendusDAO lrceDao = new ListeReferentielChampsEtendusDAO(null);
83
			lrceDao.obtenirGroupesChampsEtendus(this);
84
			lrceDao.obtenirGroupesChampsEtendus(this);
84
		} else {
85
		} else {
85
			this.rafraichir(cacheGroupes, false);
86
			this.rafraichir(cacheGroupes, false);
86
		}
87
		}
87
		
88
		
88
		HTML indicationSaisie = new HTML(Msg.get("indication-saisie-nom-champ-etendu"));
89
		HTML indicationSaisie = new HTML(Msg.get("indication-saisie-nom-champ-etendu"));
89
		indicationSaisie.addStyleName("aideCreerChampEtendu");
90
		indicationSaisie.addStyleName("aideCreerChampEtendu");
90
		add(indicationSaisie);
91
		add(indicationSaisie);
91
		
92
		
92
		HorizontalPanel hp = new HorizontalPanel();
93
		HorizontalPanel hp = new HorizontalPanel();
93
		hp.setBorderWidth(0);
94
		hp.setBorderWidth(0);
94
		
95
		
95
		
96
		
96
		nChamp = new AutoCompletionComboBox(Msg.get("nom-champ-etendu"), ListeReferentielChampsEtendusDAO.getUrlRequeteNomsChampsEtendus()) {
97
		nChamp = new AutoCompletionComboBox(Msg.get("nom-champ-etendu"), ListeReferentielChampsEtendusDAO.getUrlRequeteNomsChampsEtendus()) {
97
			@Override
98
			@Override
98
			protected Map<String, String> parserResultatRequete(
99
			protected Map<String, String> parserResultatRequete(
99
					Response response) {
100
					Response response) {
100
				Map<String, String> clesLabels = ListeReferentielChampsEtendusDAO.parserRetourListeNomsChampsEtendus(response);
101
				Map<String, String> clesLabels = ListeReferentielChampsEtendusDAO.parserRetourListeNomsChampsEtendus(response);
101
				cacheLabelsCle = new HashMap<String, String>();
102
				cacheLabelsCle = new HashMap<String, String>();
102
				for(Map.Entry<String, String> entry : clesLabels.entrySet()){
103
				for(Map.Entry<String, String> entry : clesLabels.entrySet()){
103
					cacheLabelsCle.put(entry.getValue(), entry.getKey());
104
					cacheLabelsCle.put(entry.getValue(), entry.getKey());
104
				}
105
				}
105
				return clesLabels;
106
				return clesLabels;
106
			}
107
			}
107
 
108
 
108
			@Override
109
			@Override
109
			protected void onSelectionValeur() {
110
			protected void onSelectionValeur() {
110
				telechargerEtAfficherDescriptionChamps(cacheLabelsCle.get(nChamp.getRawValue()));
111
				telechargerEtAfficherDescriptionChamps(cacheLabelsCle.get(nChamp.getRawValue()));
111
			}
112
			}
112
 
113
 
113
			@Override
114
			@Override
114
			protected void onValidationSaisie() {
115
			protected void onValidationSaisie() {
115
				// rien à faire ici
116
				// rien à faire ici
116
			}
117
			}
117
 
118
 
118
			@Override
119
			@Override
119
			protected void onModificationValeur() {
120
			protected void onModificationValeur() {
120
				// rien à faire ici non plus		
121
				// rien à faire ici non plus		
121
			}
122
			}
122
			
123
			
123
			@Override
124
			@Override
124
			protected String preTraiterUrlRequete(String urlRequete, String valeur) {
125
			protected String preTraiterUrlRequete(String urlRequete, String valeur) {
125
				return urlRequete.replace("{utilisateur}", Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
126
				return urlRequete.replace("{utilisateur}", Utilisateur.getInstance().getIdentifiantUtilisateurConsulte())+URL.encodeQueryString(valeur);
126
			} 
127
			} 
127
			
128
			
128
		};
129
		};
129
		
130
		
130
		nChamp.addStyleName("panneauEnLigne");
131
		nChamp.addStyleName("panneauEnLigne");
131
		add(nChamp);
132
		add(nChamp);
132
		
133
		
133
		descriptionChamp = new HTML();
134
		descriptionChamp = new HTML();
134
		descriptionChamp.addStyleName("aideWikiChampEtendu");
135
		descriptionChamp.addStyleName("aideWikiChampEtendu");
135
		add(descriptionChamp);
136
		add(descriptionChamp);
136
		
137
		
137
		ajouterChampsEtenduEtFermer = new Button(Msg.get("ajouter-fermer"));
138
		ajouterChampsEtenduEtFermer = new Button(Msg.get("ajouter-fermer"));
138
		ajouterChampsEtenduEtFermer.setTooltip(Msg.get("indication-ajouter-fermer"));
139
		ajouterChampsEtenduEtFermer.setTooltip(Msg.get("indication-ajouter-fermer"));
139
		ajouterChampsEtendu = new Button(Msg.get("ajouter"));
140
		ajouterChampsEtendu = new Button(Msg.get("ajouter"));
140
		ajouterChampsEtendu.setTooltip(Msg.get("indication-ajouter-champ-etendu"));
141
		ajouterChampsEtendu.setTooltip(Msg.get("indication-ajouter-champ-etendu"));
141
		annulerAjouterChampEtendu = new Button(Msg.get("fermer"));
142
		annulerAjouterChampEtendu = new Button(Msg.get("fermer"));
142
		annulerAjouterChampEtendu.setTooltip(Msg.get("indication-fermer-champ-etendu"));
143
		annulerAjouterChampEtendu.setTooltip(Msg.get("indication-fermer-champ-etendu"));
143
		
144
		
144
		hp.add(ajouterChampsEtenduEtFermer);
145
		hp.add(ajouterChampsEtenduEtFermer);
145
		hp.add(ajouterChampsEtendu);
146
		hp.add(ajouterChampsEtendu);
146
		hp.add(annulerAjouterChampEtendu);	
147
		hp.add(annulerAjouterChampEtendu);	
147
		add(hp);
148
		add(hp);
148
				
149
				
149
		ajouterListeners();
150
		ajouterListeners();
150
	}
151
	}
151
 
152
 
152
	private void ajouterListeners() {
153
	private void ajouterListeners() {
153
		 
154
		 
154
	    listeGroupeChampsEtendus.addChangeHandler(new ChangeHandler() {		
155
	    listeGroupeChampsEtendus.addChangeHandler(new ChangeHandler() {		
155
			@Override
156
			@Override
156
			public void onChange(ChangeEvent event) {
157
			public void onChange(ChangeEvent event) {
157
				groupeSelectionne = listeGroupeChampsEtendus.getValue(listeGroupeChampsEtendus.getSelectedIndex());
158
				groupeSelectionne = listeGroupeChampsEtendus.getValue(listeGroupeChampsEtendus.getSelectedIndex());
158
			}
159
			}
159
		});
160
		});
160
	    
161
	    
161
	    ajouterChampsEtenduEtFermer.addListener(new ButtonListenerAdapter() {			
162
	    ajouterChampsEtenduEtFermer.addListener(new ButtonListenerAdapter() {			
162
			@Override
163
			@Override
163
			public void onClick(Button button, EventObject e) {
164
			public void onClick(Button button, EventObject e) {
164
				if(doitAjouterGroupe()) {
165
				if(doitAjouterGroupe()) {
165
					surValidationMultiple(renvoyerListeChampsEtendus(groupeSelectionne));
166
					surValidationMultiple(renvoyerListeChampsEtendus(groupeSelectionne));
166
				} else {
167
				} else {
167
					if(champEtenduEstValide()) {
168
					if(champEtenduEstValide()) {
168
						surValidation(validerEtRenvoyerChampEtendu());
169
						surValidation(validerEtRenvoyerChampEtendu());
169
					} else {
170
					} else {
170
						Window.alert(Msg.get("erreur-nom-vide-champ-etendu"));
171
						Window.alert(Msg.get("erreur-nom-vide-champ-etendu"));
171
					}
172
					}
172
				}
173
				}
173
			}
174
			}
174
		});
175
		});
175
	    
176
	    
176
	    ajouterChampsEtendu.addListener(new ButtonListenerAdapter() {			
177
	    ajouterChampsEtendu.addListener(new ButtonListenerAdapter() {			
177
			@Override
178
			@Override
178
			public void onClick(Button button, EventObject e) {
179
			public void onClick(Button button, EventObject e) {
179
				if(champEtenduEstValide()) {
180
				if(champEtenduEstValide()) {
180
					surAjout(validerEtRenvoyerChampEtendu());
181
					surAjout(validerEtRenvoyerChampEtendu());
181
					raz();
182
					raz();
182
				} else {
183
				} else {
183
					Window.alert(Msg.get("erreur-nom-vide-champ-etendu"));
184
					Window.alert(Msg.get("erreur-nom-vide-champ-etendu"));
184
				}
185
				}
185
			}
186
			}
186
		});
187
		});
187
	    
188
	    
188
	    annulerAjouterChampEtendu.addListener(new ButtonListenerAdapter() {			
189
	    annulerAjouterChampEtendu.addListener(new ButtonListenerAdapter() {			
189
			@Override
190
			@Override
190
			public void onClick(Button button, EventObject e) {
191
			public void onClick(Button button, EventObject e) {
191
				surAnnulation();
192
				surAnnulation();
192
			}
193
			}
193
		});
194
		});
194
	}
195
	}
195
	
196
	
196
	public void redimensionner(int largeur) {
197
	public void redimensionner(int largeur) {
197
		nChamp.redimensionner(largeur);
198
		nChamp.redimensionner(largeur);
198
	}
199
	}
199
	
200
	
200
	private void raz() {
201
	private void raz() {
201
		idChamp = null;
202
		idChamp = null;
202
		nChamp.reset();
203
		nChamp.reset();
203
		nChamp.focus();
204
		nChamp.focus();
204
	}
205
	}
205
	
206
	
206
	private ChampSaisieEtendu validerEtRenvoyerChampEtendu() {
207
	private ChampSaisieEtendu validerEtRenvoyerChampEtendu() {
207
		String labelChamp = nChamp.getRawValue();
208
		String labelChamp = nChamp.getRawValue();
208
		String cleChamp = cacheLabelsCle.containsKey(labelChamp) ? cacheLabelsCle.get(labelChamp) : labelChamp;
209
		String cleChamp = cacheLabelsCle.containsKey(labelChamp) ? cacheLabelsCle.get(labelChamp) : labelChamp;
209
		ChampSaisieEtendu retour = new ChampSaisieEtendu(labelChamp, cleChamp, ListeReferentielChampsEtendusDAO.getUrlRequeteValeursChampEtendu(cleChamp));
210
		ChampSaisieEtendu retour = new ChampSaisieEtendu(labelChamp, cleChamp, ListeReferentielChampsEtendusDAO.getUrlRequeteValeursChampEtendu(cleChamp));
210
		retour.setId(cleChamp);
211
		retour.setId(cleChamp);
211
		return retour;
212
		return retour;
212
	}
213
	}
213
	
214
	
214
	private List<ChampSaisieEtendu> renvoyerListeChampsEtendus(String groupe) {	
215
	private List<ChampSaisieEtendu> renvoyerListeChampsEtendus(String groupe) {	
215
		List<ChampSaisieEtendu> champsDuGroupe = new ArrayList<ChampSaisieEtendu>();
216
		List<ChampSaisieEtendu> champsDuGroupe = new ArrayList<ChampSaisieEtendu>();
216
		HashMap<String, String> listeChampsEtendus = cacheGroupes.get(groupe);
217
		HashMap<String, String> listeChampsEtendus = cacheGroupes.get(groupe);
217
		for (Iterator<String> iterator = listeChampsEtendus.keySet().iterator(); iterator.hasNext();) {
218
		for (Iterator<String> iterator = listeChampsEtendus.keySet().iterator(); iterator.hasNext();) {
218
			String cle = iterator.next();
219
			String cle = iterator.next();
219
			String label = listeChampsEtendus.get(cle);
220
			String label = listeChampsEtendus.get(cle);
220
			ChampSaisieEtendu champ = new ChampSaisieEtendu(label, cle,  ListeReferentielChampsEtendusDAO.getUrlRequeteValeursChampEtendu(cle));
221
			ChampSaisieEtendu champ = new ChampSaisieEtendu(label, cle,  ListeReferentielChampsEtendusDAO.getUrlRequeteValeursChampEtendu(cle));
221
			champsDuGroupe.add(champ);
222
			champsDuGroupe.add(champ);
222
		}
223
		}
223
 
224
 
224
		return champsDuGroupe;
225
		return champsDuGroupe;
225
	}
226
	}
226
	
227
	
227
	private boolean doitAjouterGroupe() {
228
	private boolean doitAjouterGroupe() {
228
		return groupeSelectionne != null && !groupeSelectionne.equals("");
229
		return groupeSelectionne != null && !groupeSelectionne.equals("");
229
	}
230
	}
230
	
231
	
231
	private boolean champEtenduEstValide() {
232
	private boolean champEtenduEstValide() {
232
		String valeurChamp = nChamp.getRawValue();
233
		String valeurChamp = nChamp.getRawValue();
233
		return (valeurChamp != null && !valeurChamp.isEmpty());
234
		return (valeurChamp != null && !valeurChamp.isEmpty());
234
	}
235
	}
235
	
236
	
236
	public abstract void surAjout(ChampSaisieEtendu champ);
237
	public abstract void surAjout(ChampSaisieEtendu champ);
237
	public abstract void surAjoutMultiple(List<ChampSaisieEtendu> champs);
238
	public abstract void surAjoutMultiple(List<ChampSaisieEtendu> champs);
238
	public abstract void surValidation(ChampSaisieEtendu champ);
239
	public abstract void surValidation(ChampSaisieEtendu champ);
239
	public abstract void surValidationMultiple(List<ChampSaisieEtendu> champs);
240
	public abstract void surValidationMultiple(List<ChampSaisieEtendu> champs);
240
	public abstract void surAnnulation();
241
	public abstract void surAnnulation();
241
	
242
	
242
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {			
243
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {			
243
		if(nouvelleDonnees instanceof ListeGroupesChampsEtendus) {
244
		if(nouvelleDonnees instanceof ListeGroupesChampsEtendus) {
244
			cacheGroupes  = (ListeGroupesChampsEtendus)nouvelleDonnees;
245
			cacheGroupes  = (ListeGroupesChampsEtendus)nouvelleDonnees;
245
			listeGroupeChampsEtendus.addItem("...");
246
			listeGroupeChampsEtendus.addItem("...");
246
			for (Iterator<String> iterator = cacheGroupes.keySet().iterator(); iterator.hasNext();) {
247
			for (Iterator<String> iterator = cacheGroupes.keySet().iterator(); iterator.hasNext();) {
247
				listeGroupeChampsEtendus.addItem(iterator.next());
248
				listeGroupeChampsEtendus.addItem(iterator.next());
248
			}
249
			}
249
 
250
 
250
			if(cacheGroupes.size() > 0) {
251
			if(cacheGroupes.size() > 0) {
251
				conteneurGroupesChampsEtendus.add(indicationSaisieGroupe);
252
				conteneurGroupesChampsEtendus.add(indicationSaisieGroupe);
252
				conteneurGroupesChampsEtendus.add(conteneurlabelGroupe);
253
				conteneurGroupesChampsEtendus.add(conteneurlabelGroupe);
253
				doLayout();
254
				doLayout();
254
			}
255
			}
255
		}
256
		}
256
	}
257
	}
257
	
258
	
258
    
259
    
259
    private void telechargerEtAfficherDescriptionChamps(final String cle) {
260
    private void telechargerEtAfficherDescriptionChamps(final String cle) {
260
		ListeReferentielChampsEtendusDAO.telechargerDescriptionWikini(cle, new Callback<String, String>() {			
261
		ListeReferentielChampsEtendusDAO.telechargerDescriptionWikini(cle, new Callback<String, String>() {			
261
			@Override
262
			@Override
262
			public void onSuccess(String description) {
263
			public void onSuccess(String description) {
263
				afficherDescriptionEtLienWikiChampEtendu(cle, description);
264
				afficherDescriptionEtLienWikiChampEtendu(cle, description);
264
			}
265
			}
265
			
266
			
266
			@Override
267
			@Override
267
			public void onFailure(String reason) {
268
			public void onFailure(String reason) {
268
				// rien
269
				// rien
269
			}
270
			}
270
		});
271
		});
271
	}
272
	}
272
    
273
    
273
    private void afficherDescriptionEtLienWikiChampEtendu(final String cle, String description) {
274
    private void afficherDescriptionEtLienWikiChampEtendu(final String cle, String description) {
274
    	if(description.trim().isEmpty()) {
275
    	if(description.trim().isEmpty()) {
275
			String urlDesc = ListeReferentielChampsEtendusDAO.obtenirUrlEditionDescriptionWiki(cle);
276
			String urlDesc = ListeReferentielChampsEtendusDAO.obtenirUrlEditionDescriptionWiki(cle);
276
			descriptionChamp.setHTML("<span> "+Msg.get("indication-aucune-description-champ-etendu")+".<br />" +
277
			descriptionChamp.setHTML("<span> "+Msg.get("indication-aucune-description-champ-etendu")+".<br />" +
277
					Msg.get("indication-aucune-description-champ-etendu-remplir")+" :" +
278
					Msg.get("indication-aucune-description-champ-etendu-remplir")+" :" +
278
					"<a id=\"lien_description_wiki_ce_"+cle+"\" href="+urlDesc+" target=\"_blank\">"+cle+"</span></span>");
279
					"<a id=\"lien_description_wiki_ce_"+cle+"\" href="+urlDesc+" target=\"_blank\">"+cle+"</span></span>");
279
			Ext.get("lien_description_wiki_ce_"+cle).addListener("click", new EventCallback() {	
280
			Ext.get("lien_description_wiki_ce_"+cle).addListener("click", new EventCallback() {	
280
				@Override
281
				@Override
281
				public void execute(EventObject e) {
282
				public void execute(EventObject e) {
282
					ListeReferentielChampsEtendusDAO.creerPageWikini(cle);
283
					ListeReferentielChampsEtendusDAO.creerPageWikini(cle);
283
				}
284
				}
284
			});
285
			});
285
		} else {
286
		} else {
286
			descriptionChamp.setHTML("<span class=\"descriptionChampEtenduTitre\">"+Msg.get("description")+" :</span> "+description);
287
			descriptionChamp.setHTML("<span class=\"descriptionChampEtenduTitre\">"+Msg.get("description")+" :</span> "+description);
287
		}
288
		}
288
    }
289
    }
289
}
290
}