Subversion Repositories eFlore/Applications.del

Rev

Rev 1222 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1222 Rev 2119
1
package org.tela_botanica.del.client.vues.pictoflora.moteur;
1
package org.tela_botanica.del.client.vues.pictoflora.moteur;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.del.client.modeles.Protocole;
5
import org.tela_botanica.del.client.modeles.Protocole;
6
 
6
 
7
import com.google.gwt.core.client.GWT;
7
import com.google.gwt.core.client.GWT;
8
import com.google.gwt.dom.client.NodeList;
8
import com.google.gwt.dom.client.NodeList;
9
import com.google.gwt.dom.client.OptionElement;
9
import com.google.gwt.dom.client.OptionElement;
10
import com.google.gwt.dom.client.SelectElement;
10
import com.google.gwt.dom.client.SelectElement;
11
import com.google.gwt.event.dom.client.HasChangeHandlers;
11
import com.google.gwt.event.dom.client.HasChangeHandlers;
12
import com.google.gwt.event.dom.client.HasClickHandlers;
12
import com.google.gwt.event.dom.client.HasClickHandlers;
13
import com.google.gwt.uibinder.client.UiBinder;
13
import com.google.gwt.uibinder.client.UiBinder;
14
import com.google.gwt.uibinder.client.UiField;
14
import com.google.gwt.uibinder.client.UiField;
15
import com.google.gwt.user.client.ui.Composite;
15
import com.google.gwt.user.client.ui.Composite;
16
import com.google.gwt.user.client.ui.FlowPanel;
16
import com.google.gwt.user.client.ui.FlowPanel;
17
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.user.client.ui.HasWidgets;
18
import com.google.gwt.user.client.ui.Label;
18
import com.google.gwt.user.client.ui.Label;
19
import com.google.gwt.user.client.ui.ListBox;
19
import com.google.gwt.user.client.ui.ListBox;
20
import com.google.gwt.user.client.ui.Panel;
20
import com.google.gwt.user.client.ui.Panel;
21
import com.google.gwt.user.client.ui.Widget;
21
import com.google.gwt.user.client.ui.Widget;
22
 
22
 
23
public class MoteurPictofloraVue extends Composite implements MoteurPictofloraPresenteur.Vue {
23
public class MoteurPictofloraVue extends Composite implements MoteurPictofloraPresenteur.Vue {
24
 
24
 
25
	private final Panel panneauChargement = new FlowPanel();
25
	private final Panel panneauChargement = new FlowPanel();
26
 
26
 
27
	interface MyUiBinder extends UiBinder<Widget, MoteurPictofloraVue> {
27
	interface MyUiBinder extends UiBinder<Widget, MoteurPictofloraVue> {
28
	}
28
	}
29
 
29
 
30
	private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
30
	private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
31
 
31
 
32
	@UiField
32
	@UiField
33
	Panel panneauResultats, zoneRecherche;
33
	Panel panneauResultats, zoneRecherche;
34
	
34
	
35
	@UiField
35
	@UiField
36
	ListBox listeProtocoles;
36
	ListBox listeProtocoles;
37
	
37
	
38
	// Constructeur
38
	// Constructeur
39
	public MoteurPictofloraVue() {
39
	public MoteurPictofloraVue() {
40
		initWidget(uiBinder.createAndBindUi(this));
40
		initWidget(uiBinder.createAndBindUi(this));
41
	}
41
	}
42
 
42
 
43
	public Panel getPanneauChargement() {
43
	public Panel getPanneauChargement() {
44
		return panneauChargement;
44
		return panneauChargement;
45
	}
45
	}
46
 
46
 
47
	// Cette méthode est public car appelé dans GestionnaireHistorique
47
	// Cette méthode est public car appelé dans GestionnaireHistorique
48
	public Panel getZoneResultats() {
48
	public Panel getZoneResultats() {
49
		return panneauResultats;
49
		return panneauResultats;
50
	}
50
	}
51
 
51
 
52
	public void setPanneauResultats(Panel panneauResultats) {
52
	public void setPanneauResultats(Panel panneauResultats) {
53
		this.panneauResultats = panneauResultats;
53
		this.panneauResultats = panneauResultats;
54
	}
54
	}
55
 
55
 
56
	public HasWidgets getZoneRecherche() {
56
	public HasWidgets getZoneRecherche() {
57
		return zoneRecherche;
57
		return zoneRecherche;
58
	}
58
	}
59
 
59
 
60
	@Override
60
	@Override
61
	public void ajouterVue(HasWidgets composite) {
61
	public void ajouterVue(HasWidgets composite) {
62
		composite.add(this.asWidget());
62
		composite.add(this.asWidget());
63
	}
63
	}
64
	
64
	
65
	public void setListeProtocoles(ListBox listeProtocoles) {
65
	public void setListeProtocoles(ListBox listeProtocoles) {
66
		this.listeProtocoles = listeProtocoles;
66
		this.listeProtocoles = listeProtocoles;
67
	}
67
	}
68
	
68
	
69
	public HasChangeHandlers getListeProtocoles() {
69
	public HasChangeHandlers getListeProtocoles() {
70
		return listeProtocoles;
70
		return listeProtocoles;
71
	}
71
	}
72
	
72
	
73
	public void ajouterProtocole(String NomProtocole, String idProtocole) {
73
	public void ajouterProtocole(String NomProtocole, String idProtocole) {
74
		listeProtocoles.addItem(NomProtocole, idProtocole);
74
		listeProtocoles.addItem(NomProtocole, idProtocole);
75
	}
75
	}
76
 
76
 
77
	public void selectionnerProtocole(int index) {
77
	public void selectionnerProtocole(int index) {
78
		listeProtocoles.setSelectedIndex(index);
78
		listeProtocoles.setSelectedIndex(index);
79
	}
79
	}
80
	
80
	
81
	@Override
81
	@Override
82
	public String getNomProtocoleSelectionne() {
82
	public String getNomProtocoleSelectionne() {
83
		return listeProtocoles.getItemText((listeProtocoles.getSelectedIndex()));
83
		return listeProtocoles.getItemText((listeProtocoles.getSelectedIndex()));
84
	}
84
	}
85
 
85
 
86
	@Override
86
	@Override
87
	public int getIdProtocoleSelectionne() {
87
	public int getIdProtocoleSelectionne() {
88
		return Integer.parseInt(listeProtocoles.getValue((listeProtocoles.getSelectedIndex())));
88
		return Integer.parseInt(listeProtocoles.getValue((listeProtocoles.getSelectedIndex())));
89
	}
89
	}
90
	@Override
90
	@Override
91
	public void ajouterProtocoles(List<Protocole> protocoles) {
91
	public void ajouterProtocoles(List<Protocole> protocoles) {
92
		SelectElement selectElement = SelectElement.as(listeProtocoles.getElement());
92
		SelectElement selectElement = SelectElement.as(listeProtocoles.getElement());
93
		NodeList<OptionElement> options = selectElement.getOptions();
93
		NodeList<OptionElement> options = selectElement.getOptions();
-
 
94
		// Capitalisation d'images est toujours en premier. Il a l'id 3. Oui mais,
-
 
95
		// comme les chiens galeux qui ont codé cette appli ont placé les résultats
-
 
96
		// dans un List et non un Map, on a accès aux éléments par leur ordre...
-
 
97
		// qui n'est pas garanti puisque le service retourne un Objet et non un
-
 
98
		// Tableau... sur qui on tape ?
-
 
99
		// Du coup tant pis, on fait comme si l'ordre était garanti, on n'a pas
-
 
100
		// le choix :  Capitalisation d'Images est le 2e élément (index 1)
-
 
101
	    listeProtocoles.addItem(protocoles.get(1).getNom(), protocoles.get(1).getId()+"");
-
 
102
		// on ajoute les autres meme si on les aime pas :P
94
	    for (int i = 0; i < protocoles.size(); i++) {
103
	    for (int i = 0; i < protocoles.size(); i++) {
-
 
104
			if (i != 1) { // bouuu l'astuce cracra
95
	    	listeProtocoles.addItem(protocoles.get(i).getNom(), protocoles.get(i).getId()+"");
105
				listeProtocoles.addItem(protocoles.get(i).getNom(), protocoles.get(i).getId()+"");
96
	        options.getItem(i).setTitle(protocoles.get(i).getDescription());
106
				options.getItem(i).setTitle(protocoles.get(i).getDescription());
-
 
107
			}
97
	    }
108
	    }
98
	}
109
	}
99
 
110
 
100
	@Override
111
	@Override
101
	public void mettreAJourDescriptionProtocoleCourant(
112
	public void mettreAJourDescriptionProtocoleCourant(
102
			Protocole protocoleCourant) {
113
			Protocole protocoleCourant) {
103
		listeProtocoles.setTitle(protocoleCourant.getDescription());
114
		listeProtocoles.setTitle(protocoleCourant.getDescription());
104
	}
115
	}
105
 
116
 
106
	@Override
117
	@Override
107
	public void selectionnerProtocoleParProtocole(Protocole protocole) {
118
	public void selectionnerProtocoleParProtocole(Protocole protocole) {
108
		int index = 0;
119
		int index = 0;
109
		for (int i = 0; i < listeProtocoles.getItemCount(); i++) {
120
		for (int i = 0; i < listeProtocoles.getItemCount(); i++) {
110
			int id = Integer.parseInt(listeProtocoles.getValue(i));
121
			int id = Integer.parseInt(listeProtocoles.getValue(i));
111
			if (id == protocole.getId()) {
122
			if (id == protocole.getId()) {
112
				index = i;
123
				index = i;
113
			}
124
			}
114
		}
125
		}
115
		listeProtocoles.setSelectedIndex(index);
126
		listeProtocoles.setSelectedIndex(index);
116
	}
127
	}
117
 
128
 
118
}
129
}