Subversion Repositories eFlore/Applications.coel

Rev

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

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