Subversion Repositories eFlore/Applications.coel

Rev

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

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