Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 955 Rev 971
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.RegistreId;
6
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.configuration.Configuration;
7
import org.tela_botanica.client.configuration.Configuration;
8
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.modeles.Valeur;
10
import org.tela_botanica.client.modeles.Valeur;
11
import org.tela_botanica.client.modeles.ValeurListe;
11
import org.tela_botanica.client.modeles.ValeurListe;
12
import org.tela_botanica.client.modeles.aDonnee;
12
import org.tela_botanica.client.modeles.aDonnee;
13
import org.tela_botanica.client.modeles.aDonneeListe;
13
import org.tela_botanica.client.modeles.aDonneeListe;
14
import org.tela_botanica.client.vues.Formulaire;
14
import org.tela_botanica.client.vues.Formulaire;
15
 
15
 
16
import com.extjs.gxt.ui.client.Registry;
16
import com.extjs.gxt.ui.client.Registry;
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.SelectionListener;
18
import com.extjs.gxt.ui.client.event.SelectionListener;
19
import com.extjs.gxt.ui.client.store.ListStore;
19
import com.extjs.gxt.ui.client.store.ListStore;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
20
import com.extjs.gxt.ui.client.widget.LayoutContainer;
21
import com.extjs.gxt.ui.client.widget.Text;
21
import com.extjs.gxt.ui.client.widget.Text;
22
import com.extjs.gxt.ui.client.widget.button.Button;
22
import com.extjs.gxt.ui.client.widget.button.Button;
23
import com.extjs.gxt.ui.client.widget.form.ComboBox;
23
import com.extjs.gxt.ui.client.widget.form.ComboBox;
24
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
24
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
25
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
25
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
26
 
26
 
27
public class ChampMultiValeursMultiTypes extends ChampMultiValeurs implements Rafraichissable {
27
public class ChampMultiValeursMultiTypes extends ChampMultiValeurs implements Rafraichissable {
28
 
28
 
29
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
29
	private Configuration config = (Configuration) Registry.get(RegistreId.CONFIG);
30
	private String idListeType = null;
30
	private String idListeType = null;
31
	private String idListeCombo = null;
31
	private String idListeCombo = null;
32
	
32
	
33
	public ChampMultiValeursMultiTypes() {
33
	public ChampMultiValeursMultiTypes() {
34
		super(true, null, 0);
34
		super(false, true, null, 0, 0);
35
	}
35
	}
36
	
36
	
37
	public ChampMultiValeursMultiTypes(String label) {
37
	public ChampMultiValeursMultiTypes(String label) {
38
		super(true, label, 0);
38
		super(false, true, label, 0, 0);
39
	}
39
	}
40
	
40
	
41
	public ChampMultiValeursMultiTypes(String label, int largeurTotale) {
41
	public ChampMultiValeursMultiTypes(String label, int largeurTotale, int largeurType) {
42
		super(true, label, largeurTotale);
42
		super(false, true, label, largeurTotale, largeurType);
43
	}
43
	}
44
	
44
	
45
	public ChampMultiValeursMultiTypes(String label, int largeurTotale, boolean combobox) {
45
	public ChampMultiValeursMultiTypes(String label, int largeurTotale, boolean combobox) {
46
		super(true, true, label, largeurTotale, largeurTotale);
46
		super(true, true, label, largeurTotale, largeurTotale);
47
	}
47
	}
48
	
48
	
49
	public ChampMultiValeursMultiTypes(String label, int largeurTotale, int largeurType, boolean combobox) {
49
	public ChampMultiValeursMultiTypes(String label, int largeurTotale, int largeurType, boolean combobox) {
50
		super(true, true, label, largeurTotale, largeurType);
50
		super(true, true, label, largeurTotale, largeurType);
51
	}
51
	}
52
	
52
	
53
	public void initialiserType(String idListe) {
53
	public void initialiserType(String idListe) {
54
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
54
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
55
		idListeType = idListe;
55
		idListeType = idListe;
56
		mediateur.obtenirListeValeurEtRafraichir(this, idListeType);
56
		mediateur.obtenirListeValeurEtRafraichir(this, idListeType);
57
	}
57
	}
58
	
58
	
59
	public void initialiserCombobox(String idListe) {
59
	public void initialiserCombobox(String idListe) {
60
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
60
		Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
61
		this.idListeCombo = idListe;
61
		this.idListeCombo = idListe;
62
		mediateur.obtenirListeValeurEtRafraichir(this, idListeCombo);
62
		mediateur.obtenirListeValeurEtRafraichir(this, idListeCombo);
63
	}
63
	}
64
	
64
	
65
	public void rafraichir(Object nouvellesDonnees) {
65
	public void rafraichir(Object nouvellesDonnees) {
66
		if (nouvellesDonnees instanceof ValeurListe)	{
66
		if (nouvellesDonnees instanceof ValeurListe)	{
67
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
67
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
68
			if (listeValeurs.getId().equals(config.getListeId(idListeType)))	{
68
			if (listeValeurs.getId().equals(config.getListeId(idListeType)))	{
69
				Formulaire.rafraichirComboBox(listeValeurs, types);
69
				Formulaire.rafraichirComboBox(listeValeurs, types);
70
			} else if (listeValeurs.getId().equals(config.getListeId(idListeCombo)))	{
70
			} else if (listeValeurs.getId().equals(config.getListeId(idListeCombo)))	{
71
				Formulaire.rafraichirComboBox(listeValeurs, champValeurCombo, "id_valeur");
71
				Formulaire.rafraichirComboBox(listeValeurs, champValeurCombo, "id_valeur");
72
			}
72
			}
73
		}	
73
		}	
74
	}
74
	}
75
	
75
	
76
	public void ajouterValeur(final String texte, final String type, final String id) {
76
	public void ajouterValeur(final String texte, final String type, final String id) {
77
		LayoutContainer colonneConteneur = new LayoutContainer();
77
		LayoutContainer colonneConteneur = new LayoutContainer();
78
		colonneConteneur.setLayout(new ColumnLayout());
78
		colonneConteneur.setLayout(new ColumnLayout());
79
		valeurs.put(id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte, colonneConteneur);
79
		valeurs.put(id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte, colonneConteneur);
80
		
80
		
81
		Text champType = new Text();
81
		Text champType = new Text();
82
		champType.setText(type + " : ");
82
		champType.setText(type + " : ");
83
		champType.setWidth(largeurType);
83
		champType.setWidth(largeurType);
84
		colonneConteneur.add(champType, new ColumnData(largeurType));
84
		colonneConteneur.add(champType, new ColumnData(largeurType));
85
		
85
		
86
		Text champValeur = new Text();
86
		Text champValeur = new Text();
87
		champValeur.setText(texte);
87
		champValeur.setText(texte);
88
		champValeur.setWidth(largeurChamp);
88
		champValeur.setWidth(largeurChamp);
89
		colonneConteneur.add(champValeur, new ColumnData(largeurChamp));
89
		colonneConteneur.add(champValeur, new ColumnData(largeurChamp));
90
		
90
		
91
		Button supprimerBouton = new Button();
91
		Button supprimerBouton = new Button();
92
		supprimerBouton.setIcon(Images.ICONES.supprimer());
92
		supprimerBouton.setIcon(Images.ICONES.supprimer());
93
		supprimerBouton.setText(boutonSupprimerLabel);
93
		supprimerBouton.setText(boutonSupprimerLabel);
94
		supprimerBouton.setData("valeur", id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte);
94
		supprimerBouton.setData("valeur", id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte);
95
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
95
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
96
			public void componentSelected(ButtonEvent ce) {
96
			public void componentSelected(ButtonEvent ce) {
97
				String valeur = ce.getComponent().getData("valeur");
97
				String valeur = ce.getComponent().getData("valeur");
98
				LayoutContainer valeurLayout = valeurs.get(valeur);
98
				LayoutContainer valeurLayout = valeurs.get(valeur);
99
				principalLayout.remove(valeurLayout);
99
				principalLayout.remove(valeurLayout);
100
				
100
				
101
				valeurs.remove(valeur);
101
				valeurs.remove(valeur);
102
				
102
				
103
				supprimerValeurDuRecapitulatif(valeur);
103
				supprimerValeurDuRecapitulatif(valeur);
104
				
104
				
105
				actualiserLayoutGlobal();
105
				actualiserLayoutGlobal();
106
			}
106
			}
107
		});
107
		});
108
		colonneConteneur.add(supprimerBouton, new ColumnData(largeurBouton));
108
		colonneConteneur.add(supprimerBouton, new ColumnData(largeurBouton));
109
		
109
		
110
		// Ajout du layout de la valeur au layout principal
110
		// Ajout du layout de la valeur au layout principal
111
		principalLayout.add(colonneConteneur);
111
		principalLayout.add(colonneConteneur);
112
		
112
		
113
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
113
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
114
		if (estComboBox && champValeurCombo.getValue() != null) {
114
		if (estComboBox && champValeurCombo.getValue() != null) {
115
			ajouterValeurAuRecapitulatif(champValeurCombo.getValue().getId(), id);
115
			ajouterValeurAuRecapitulatif(champValeurCombo.getValue().getId(), id);
116
		} else {
116
		} else {
117
			ajouterValeurAuRecapitulatif(texte, id);
117
			ajouterValeurAuRecapitulatif(texte, id);
118
		}
118
		}
119
		reinitialiserChamp();
119
		reinitialiserChamp();
120
		actualiserLayoutGlobal();
120
		actualiserLayoutGlobal();
121
	}
121
	}
122
	
122
	
123
	public void ajouterValeurAuRecapitulatif(String texte, String id) {
123
	public void ajouterValeurAuRecapitulatif(String texte, String id) {
124
		String texteRecapitulatif = "";
124
		String texteRecapitulatif = "";
125
		if (champRecapitulatif.getValue() != null)	{
125
		if (champRecapitulatif.getValue() != null)	{
126
			texteRecapitulatif = champRecapitulatif.getValue();
126
			texteRecapitulatif = champRecapitulatif.getValue();
127
		}
127
		}
128
		texteRecapitulatif += id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte + aDonnee.SEPARATEUR_VALEURS;
128
		texteRecapitulatif += id + aDonnee.SEPARATEUR_TYPE_VALEUR + texte + aDonnee.SEPARATEUR_VALEURS;
129
		champRecapitulatif.setValue(texteRecapitulatif);
129
		champRecapitulatif.setValue(texteRecapitulatif);
130
	}
130
	}
131
	
131
	
132
	public void peupler(String chaineExistante) {
132
	public void peupler(String chaineExistante) {
133
		if (valeurs.size() > 0)	{
133
		if (valeurs.size() > 0)	{
134
			reinitialiser();
134
			reinitialiser();
135
		}
135
		}
136
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
136
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
137
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
137
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
138
			for (int i = 0; i < valeurs.length; i++) {
138
			for (int i = 0; i < valeurs.length; i++) {
139
				String[] idEtValeur = valeurs[i].split(aDonnee.SEPARATEUR_TYPE_VALEUR);
139
				String[] idEtValeur = valeurs[i].split(aDonnee.SEPARATEUR_TYPE_VALEUR);
140
				String idType = idEtValeur[0];
140
				String idType = idEtValeur[0];
141
				String idValeur = idEtValeur[1];
141
				String idValeur = idEtValeur[1];
142
				
142
				
143
				ListStore<Valeur> typeStore = types.getStore();
143
				ListStore<Valeur> typeStore = types.getStore();
144
				Valeur objetType = typeStore.findModel("id_valeur", idType);
144
				Valeur objetType = typeStore.findModel("id_valeur", idType);
145
				String texteType = "";
145
				String texteType = "";
146
				if (objetType != null)	{
146
				if (objetType != null)	{
147
					texteType = objetType.getNom();
147
					texteType = objetType.getNom();
148
				} else {
148
				} else {
149
					texteType = idType;
149
					texteType = idType;
150
				}
150
				}
151
				
151
				
152
				ListStore<Valeur> valeurStore = champValeurCombo.getStore();
152
				ListStore<Valeur> valeurStore = champValeurCombo.getStore();
153
				Valeur objetValeur = valeurStore.findModel("id_valeur", idValeur);
153
				Valeur objetValeur = valeurStore.findModel("id_valeur", idValeur);
154
				String texteValeur = "";
154
				String texteValeur = "";
155
				if (objetValeur != null)	{
155
				if (objetValeur != null)	{
156
					texteValeur = objetValeur.getNom();
156
					texteValeur = objetValeur.getNom();
157
				} else {
157
				} else {
158
					texteValeur = idValeur;
158
					texteValeur = idValeur;
159
				}
159
				}
160
				ajouterValeur(texteValeur, texteType, idType);
160
				ajouterValeur(texteValeur, texteType, idType);
161
			}
161
			}
162
		}
162
		}
163
	}
163
	}
164
}
164
}