Subversion Repositories eFlore/Applications.cel

Rev

Rev 1029 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1030 aurelien 1
package org.tela_botanica.cel.client.vues.observation.listeobservation;
1029 aurelien 2
 
3
import org.tela_botanica.cel.client.modeles.Observation;
4
 
5
import com.google.gwt.cell.client.TextCell;
6
import com.google.gwt.core.client.GWT;
7
import com.google.gwt.dom.client.Style.Unit;
8
import com.google.gwt.uibinder.client.UiBinder;
9
import com.google.gwt.uibinder.client.UiField;
10
import com.google.gwt.user.cellview.client.CellTable;
11
import com.google.gwt.user.cellview.client.Column;
12
import com.google.gwt.user.client.ui.Composite;
13
import com.google.gwt.user.client.ui.FlowPanel;
14
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.Widget;
16
import com.google.gwt.view.client.DefaultSelectionEventManager;
17
import com.google.gwt.view.client.ListDataProvider;
18
import com.google.gwt.view.client.MultiSelectionModel;
19
import com.google.gwt.view.client.ProvidesKey;
20
import com.google.gwt.view.client.SelectionChangeEvent.HasSelectionChangedHandlers;
21
import com.google.gwt.view.client.SelectionModel;
22
 
23
public class ListeObservationVue extends Composite implements ListeObservationPresenteur.Vue {
24
 
25
	 interface MyUiBinder extends UiBinder<Widget, ListeObservationVue> {
26
	 }
27
	private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
28
 
29
	@UiField(provided = true)
30
	CellTable<Observation> tableauObservation;
31
	@UiField(provided = true)
1030 aurelien 32
	FlowPanel panneauPagination, panneauBarreOutils;
1029 aurelien 33
 
34
	Column<Observation, String> transmis, nomSaisi, nomRetenu, lieu, date ,ordre;
35
	SelectionModel<Observation> modeleSelection;
36
 
37
	ListDataProvider<Observation> listeObservation;
38
 
39
	private static final ProvidesKey<Observation> CLE_OBS = new ProvidesKey<Observation>() {
40
	      public Object getKey(Observation obs) {
41
	        return obs == null ? null : obs.getId();
42
	      }
43
	};
44
 
45
	public ListeObservationVue() {
46
		tableauObservation = new CellTable<Observation>();
1030 aurelien 47
 
48
		// en attendant qu'il y a quelque chose à y mettre
1029 aurelien 49
		panneauPagination = new FlowPanel();
1030 aurelien 50
		panneauBarreOutils = new FlowPanel();
1029 aurelien 51
		initialiserTable();
52
 
53
		initWidget(uiBinder.createAndBindUi(this));
54
	}
55
 
56
	private void initialiserTable() {
57
 
58
		modeleSelection = new MultiSelectionModel<Observation>(CLE_OBS);
59
		tableauObservation.setSelectionModel(modeleSelection, DefaultSelectionEventManager.<Observation> createDefaultManager());
60
 
61
		initialiserColonnes();
62
 
63
		listeObservation = new ListDataProvider<Observation>();
64
		listeObservation.addDataDisplay(tableauObservation);
65
	}
66
 
67
	private void initialiserColonnes() {
68
	    transmis = new Column<Observation, String>(
69
	        new TextCell()) {
70
				@Override
71
				public String getValue(Observation obs) {
72
					return obs.getTransmission();
73
				}
74
	    };
75
	    transmis.setSortable(true);
76
		ajouterColonne(transmis, "Transmis", 10);
77
 
78
	    nomSaisi = new Column<Observation, String>(
79
		        new TextCell()) {
80
					@Override
81
					public String getValue(Observation obs) {
82
						return obs.getNomSaisi();
83
					}
84
		};
85
		nomSaisi.setSortable(true);
86
		ajouterColonne(nomSaisi, "Nom saisi", 20);
87
 
88
		nomRetenu = new Column<Observation, String>(
89
		        new TextCell()) {
90
					@Override
91
					public String getValue(Observation obs) {
92
						return obs.getNomRetenu();
93
					}
94
		};
95
		nomRetenu.setSortable(true);
96
		ajouterColonne(nomRetenu, "Nom retenu", 20);
97
 
98
		lieu = new Column<Observation, String>(
99
		        new TextCell()) {
100
					@Override
101
					public String getValue(Observation obs) {
102
						return obs.getLocaliteAvecIdFormatee()+" "+obs.getLieuDit();
103
					}
104
		};
105
		lieu.setSortable(true);
106
		ajouterColonne(lieu, "Lieu", 20);
107
 
108
		date = new Column<Observation, String>(
109
		        new TextCell()) {
110
					@Override
111
					public String getValue(Observation obs) {
112
						return obs.getDateReleve();
113
					}
114
		};
115
		date.setSortable(true);
116
		ajouterColonne(date, "Date", 20);
117
 
118
		ordre = new Column<Observation, String>(
119
		        new TextCell()) {
120
					@Override
121
					public String getValue(Observation obs) {
122
						return obs.getOrdre();
123
					}
124
		};
125
		ordre.setSortable(true);
126
		ajouterColonne(ordre, "Ordre", 10);
127
	}
128
 
129
	private void ajouterColonne(Column<Observation, String> colonne, String nomColonne, int largeur) {
130
	    tableauObservation.addColumn(colonne, nomColonne);
131
	    tableauObservation.setColumnWidth(colonne, largeur, Unit.PCT);
132
	}
133
 
134
	@Override
135
	public void ajouterAuParent(HasWidgets parent) {
136
		parent.add(this);
137
	}
138
}