Subversion Repositories eFlore/Applications.del

Rev

Rev 1222 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1196 gduche 1
package org.tela_botanica.del.client.vues.pictoflora.moteur;
2
 
1203 gduche 3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.modeles.Protocole;
6
 
1196 gduche 7
import com.google.gwt.core.client.GWT;
1203 gduche 8
import com.google.gwt.dom.client.NodeList;
9
import com.google.gwt.dom.client.OptionElement;
10
import com.google.gwt.dom.client.SelectElement;
1196 gduche 11
import com.google.gwt.event.dom.client.HasChangeHandlers;
12
import com.google.gwt.event.dom.client.HasClickHandlers;
13
import com.google.gwt.uibinder.client.UiBinder;
14
import com.google.gwt.uibinder.client.UiField;
15
import com.google.gwt.user.client.ui.Composite;
16
import com.google.gwt.user.client.ui.FlowPanel;
17
import com.google.gwt.user.client.ui.HasWidgets;
18
import com.google.gwt.user.client.ui.Label;
19
import com.google.gwt.user.client.ui.ListBox;
20
import com.google.gwt.user.client.ui.Panel;
21
import com.google.gwt.user.client.ui.Widget;
22
 
23
public class MoteurPictofloraVue extends Composite implements MoteurPictofloraPresenteur.Vue {
24
 
25
	private final Panel panneauChargement = new FlowPanel();
26
 
27
	interface MyUiBinder extends UiBinder<Widget, MoteurPictofloraVue> {
28
	}
29
 
30
	private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
31
 
32
	@UiField
1206 gduche 33
	Panel panneauResultats, zoneRecherche;
1196 gduche 34
 
35
	@UiField
1203 gduche 36
	ListBox listeProtocoles;
37
 
1196 gduche 38
	// Constructeur
39
	public MoteurPictofloraVue() {
40
		initWidget(uiBinder.createAndBindUi(this));
41
	}
42
 
43
	public Panel getPanneauChargement() {
44
		return panneauChargement;
45
	}
46
 
47
	// Cette méthode est public car appelé dans GestionnaireHistorique
48
	public Panel getZoneResultats() {
49
		return panneauResultats;
50
	}
51
 
52
	public void setPanneauResultats(Panel panneauResultats) {
53
		this.panneauResultats = panneauResultats;
54
	}
55
 
56
	public HasWidgets getZoneRecherche() {
57
		return zoneRecherche;
58
	}
59
 
60
	@Override
61
	public void ajouterVue(HasWidgets composite) {
62
		composite.add(this.asWidget());
63
	}
1203 gduche 64
 
65
	public void setListeProtocoles(ListBox listeProtocoles) {
66
		this.listeProtocoles = listeProtocoles;
67
	}
68
 
69
	public HasChangeHandlers getListeProtocoles() {
70
		return listeProtocoles;
71
	}
72
 
73
	public void ajouterProtocole(String NomProtocole, String idProtocole) {
74
		listeProtocoles.addItem(NomProtocole, idProtocole);
75
	}
1196 gduche 76
 
1203 gduche 77
	public void selectionnerProtocole(int index) {
78
		listeProtocoles.setSelectedIndex(index);
79
	}
80
 
81
	@Override
82
	public String getNomProtocoleSelectionne() {
83
		return listeProtocoles.getItemText((listeProtocoles.getSelectedIndex()));
84
	}
85
 
86
	@Override
87
	public int getIdProtocoleSelectionne() {
88
		return Integer.parseInt(listeProtocoles.getValue((listeProtocoles.getSelectedIndex())));
89
	}
90
	@Override
91
	public void ajouterProtocoles(List<Protocole> protocoles) {
92
		SelectElement selectElement = SelectElement.as(listeProtocoles.getElement());
93
		NodeList<OptionElement> options = selectElement.getOptions();
94
	    for (int i = 0; i < protocoles.size(); i++) {
95
	    	listeProtocoles.addItem(protocoles.get(i).getNom(), protocoles.get(i).getId()+"");
96
	        options.getItem(i).setTitle(protocoles.get(i).getDescription());
97
	    }
98
	}
99
 
100
	@Override
101
	public void mettreAJourDescriptionProtocoleCourant(
102
			Protocole protocoleCourant) {
103
		listeProtocoles.setTitle(protocoleCourant.getDescription());
104
	}
105
 
1222 gduche 106
	@Override
107
	public void selectionnerProtocoleParProtocole(Protocole protocole) {
108
		int index = 0;
109
		for (int i = 0; i < listeProtocoles.getItemCount(); i++) {
110
			int id = Integer.parseInt(listeProtocoles.getValue(i));
111
			if (id == protocole.getId()) {
112
				index = i;
113
			}
114
		}
115
		listeProtocoles.setSelectedIndex(index);
116
	}
117
 
1196 gduche 118
}