Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.observation;
import java.util.List;
import org.tela_botanica.client.evenements.observation.ListeObservationRecueEvenement;
import org.tela_botanica.client.evenements.observation.ListeObservationRecueEvenementHandler;
import org.tela_botanica.client.evenements.observation.ObservationBusEvenement;
import org.tela_botanica.client.modeles.observation.Observation;
import com.google.gwt.cell.client.Cell;
import com.google.gwt.cell.client.ImageCell;
import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.cell.client.TextCell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.view.client.DefaultSelectionEventManager;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.gwt.view.client.ProvidesKey;
import com.google.gwt.view.client.SelectionModel;
public class ListeObservation extends CellTable<Observation> {
/**
* Keyprovider pour l'id d'un observation
*/
public static final ProvidesKey<Observation> KEY_PROVIDER = new ProvidesKey<Observation>() {
public Object getKey(Observation item) {
return item == null ? null : item.getNumeroOrdre();
}
};
/**
* Structure contenant la liste des observation
*/
private ListDataProvider<Observation> dataProvider = new ListDataProvider<Observation>();
public ListeObservation() {
super(KEY_PROVIDER);
ObservationBusEvenement.get().addHandler(ListeObservationRecueEvenement.TYPE,
new ListeObservationRecueEvenementHandler() {
@Override
public void onReceptionListeObservation(
ListeObservationRecueEvenement listeObservationRecueEvenement) {
remplirListeObservation(listeObservationRecueEvenement.getListeObservationRecue());
}
});
setWidth("100%", true);
// gestion du tri
ListHandler<Observation> sortHandler = new ListHandler<Observation>(
dataProvider.getList());
addColumnSortHandler(sortHandler);
final SelectionModel<Observation> selectionModel = new MultiSelectionModel<Observation>(
KEY_PROVIDER);
setSelectionModel(selectionModel,
DefaultSelectionEventManager.<Observation> createCheckboxManager());
dataProvider.addDataDisplay(this);
initTableColumns(selectionModel, sortHandler);
}
/**
* Add the columns to the table.
*/
private void initTableColumns( final SelectionModel<Observation> selectionModel,
ListHandler<Observation> sortHandler) {
Column<Observation, String> transmis = new Column<Observation, String>(new ImageCell()) {
@Override
public String getValue(Observation obs) {
String affichage = "vide.png";
if(obs.getTransmis().equals("true")) {
return "tela.png";
}
return affichage;
}
};
addColumn(transmis, "Transmis");
setColumnWidth(transmis, 25, Unit.PCT);
Column<Observation, String> nomSaisi = new Column<Observation, String>(
new TextCell()) {
public String getValue(Observation obs) {
return obs.getNomSaisi();
}
};
addColumn(nomSaisi, "Nom saisi");
setColumnWidth(nomSaisi, 80, Unit.PCT);
Column<Observation, String> nomRetenu = new Column<Observation, String>(
new TextCell()) {
public String getValue(Observation obs) {
return obs.getNomRetenu();
}
};
addColumn(nomRetenu, "Nom retenu");
setColumnWidth(nomRetenu, 80, Unit.PCT);
Column<Observation, String> lieu = new Column<Observation, String>(
new TextCell()) {
public String getValue(Observation obs) {
return obs.getLocalite();
}
};
addColumn(lieu, "Lieu");
setColumnWidth(lieu, 60, Unit.PCT);
Column<Observation, String> date = new Column<Observation, String>(
new TextCell()) {
public String getValue(Observation obs) {
return obs.getDate();
}
};
addColumn(date, "Date");
setColumnWidth(date, 60, Unit.PCT);
// First name.
Column<Observation, String> ordre = new Column<Observation, String>(
new TextCell()) {
public String getValue(Observation obs) {
return obs.getNumeroOrdre();
}
};
addColumn(ordre, "Ordre");
setColumnWidth(ordre, 20, Unit.PCT);
}
private void remplirListeObservation(Observation[] observationsRecues) {
int tailleListeObsRecue = observationsRecues.length;
dataProvider.getList().clear();
for(int i = 0; i < tailleListeObsRecue; i++) {
dataProvider.getList().add(observationsRecues[i]);
}
dataProvider.refresh();
}
}