Rev 104 | Rev 112 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.utils;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.exceptions.ExceptionClient;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.ObservationValidation;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.VoteProtocole;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
public class MockDatasource extends GwtObservable {
static MockDatasource instance;
List<Observation> observations = new ArrayList<Observation>();
List<ObservationValidation> observationValidationDatas = new ArrayList<ObservationValidation>();
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>();
List<Protocole> protocoles = new ArrayList<Protocole>();
private MockDatasource() {
HashMap<String, String> auteurObs = new HashMap<String, String>();
auteurObs.put("Juliette 1MOUREAU", "Tragopogon porrifolius subsp. australis (Jord.) Nyman");
auteurObs.put("Robert 2LERAS", "Iris lutescens subsp. lutescens");
auteurObs.put("Geneviève 3BOTTI", "Euphorbia dendroides L.");
auteurObs.put("Robert 4LERAS", "Lonicera japonica Thunb. ex Murray");
auteurObs.put("Juliette 5MOUREAU", "Lavatera arborea L.");
auteurObs.put("Robert 6LERAS", "Lavatera arborea L.");
auteurObs.put("Juliette 7MOUREAU", "Serapias vomeracea (Burm.f.) Briq. ");
auteurObs.put("Benjamin 8LIENS", "Lonicera etrusca Santi");
auteurObs.put("Aurélient 9PERONNET", "Ophrys scolopax Cav. ");
auteurObs.put("Grégoire 10DUCHÉ", "Staehelina dubia L. ");
auteurObs.put("Juliette 11MOUREAU", "Tragopogon porrifolius subsp. australis (Jord.) Nyman");
auteurObs.put("Robert 12LERAS", "Iris lutescens subsp. lutescens");
auteurObs.put("Geneviève 13BOTTI", "Euphorbia dendroides L.");
auteurObs.put("Robert 14LERAS", "Lonicera japonica Thunb. ex Murray");
auteurObs.put("Juliette 15MOUREAU", "Lavatera arborea L.");
auteurObs.put("Robert 16LERAS", "Lavatera arborea L.");
auteurObs.put("Juliette 17MOUREAU", "Serapias vomeracea (Burm.f.) Briq. ");
auteurObs.put("Benjamin 18LIENS", "Lonicera etrusca Santi");
auteurObs.put("Aurélient 19PERONNET", "Ophrys scolopax Cav. ");
auteurObs.put("Grégoire 20DUCHÉ", "Staehelina dubia L. ");
ArrayList<String> motsClefs = new ArrayList<String>();
motsClefs.add("plantnet");
motsClefs.add("fleur");
motsClefs.add("fruit");
Iterator<String> auteurs = auteurObs.keySet().iterator();
Protocole protocol1 = new Protocole();
protocol1.setNom(Protocole.ESTHETISME);
protocol1.setId(1);
Protocole protocol2 = new Protocole();
protocol2.setNom(Protocole.IDENTIFICATION_AUTOMATIQUE);
protocol2.setId(2);
protocoles.add(protocol1);
protocoles.add(protocol2);
ObservationValidation observationValidationData = new ObservationValidation();
observationValidationData.setEspece("Iris lutescens subsp. lutescens");
observationValidationData.setContributeur("contributeur test");
observationValidationData.setId("1");
observationValidationData.setIdImage("id image 1");
observationValidationData.setVote(4);
observationValidationData.setPourcentageConfiance(90);
observationValidationData.setDate(new Date());
observationValidationData.setProtocol(protocol1);
observationValidationDatas.add(observationValidationData);
ObservationValidation observationValidationData2 = new ObservationValidation();
observationValidationData2.setContributeur("contributeur test 2");
observationValidationData.setEspece("Lavatera arborea L.");
observationValidationData2.setId("2");
observationValidationData2.setIdImage("id image 1");
observationValidationData2.setVote(2);
observationValidationData2.setPourcentageConfiance(50);
observationValidationData2.setDate(new Date());
observationValidationData2.setProtocol(protocol1);
observationValidationDatas.add(observationValidationData2);
ObservationValidation observationValidationData3 = new ObservationValidation();
observationValidationData3.setEspece("Acer monsp. L.");
observationValidationData3.setContributeur("Léo Ferré");
observationValidationData3.setCommentaire("Avec le temps...");
observationValidationData3.setId("1");
observationValidationData3.setIdImage("id image 1");
observationValidationData2.setVote(3);
observationValidationData3.setPourcentageConfiance(90);
observationValidationData3.setDate(new Date());
observationValidationData3.setProtocol(protocol1);
observationValidationDatas.add(observationValidationData3);
ObservationValidation observationValidationData4 = new ObservationValidation();
observationValidationData4.setEspece("Acer aceras aus.");
observationValidationData4.setContributeur("Pierre Desproges");
observationValidationData4.setCommentaire("Public chéri mon amour !");
observationValidationData4.setId("2");
observationValidationData4.setIdImage("id image 1");
observationValidationData4.setVote(1);
observationValidationData4.setPourcentageConfiance(30);
observationValidationData4.setDate(new Date());
observationValidationData4.setProtocol(protocol2);
observationValidationDatas.add(observationValidationData4);
ObservationValidation observationValidationData5 = new ObservationValidation();
observationValidationData5.setEspece("Acer monsp subsp. monsp.");
observationValidationData5.setContributeur("Louis Aragon");
observationValidationData5.setCommentaire("Tout est affaire de décor");
observationValidationData5.setId("2");
observationValidationData5.setIdImage("id image 1");
observationValidationData5.setVote(2);
observationValidationData5.setPourcentageConfiance(50);
observationValidationData5.setDate(new Date());
observationValidationData5.setProtocol(protocol2);
observationValidationDatas.add(observationValidationData5);
for (int i = 0; i < 20; i++) {
Observation observation = new Observation();
String auteur = auteurs.next();
observation.setAuteur(auteur);
observation.setSpecies(auteurObs.get(auteur));
int numobs = 44120 + i;
observation.setUrl("http://www.tela-botanica.org/appli:cel-img:0000" + String.valueOf(numobs) + "CRS.jpg");
observation.setNumNomenclatural("num nomenclatural " + i);
observation.setIdImage("id image " + i);
observation.setDate(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(new Date()));
observation.setFamille("famille " + i);
observation.setLocalite("localite " + i);
observation.setNomRetenu("nom retenu " + i);
observation.setMotsClefs(motsClefs);
observation.setImageCelValidationDatas(observationValidationDatas);
observations.add(observation);
}
}
public List<Observation> getObservations() {
return observations;
}
public List<ObservationValidation> getValidationData(String idImage) {
return observationValidationDatas;
}
public List<ObservationValidation> getValidationDataByImageAndProtocol(String idImage, String protocolName) {
List<ObservationValidation> validations = new ArrayList<ObservationValidation>();
for (ObservationValidation observationValidation : observationValidationDatas) {
if (observationValidation.getProtocol().getNom().equals(protocolName)) {
validations.add(observationValidation);
}
}
return validations;
}
public ArrayList<String> getPropositionsTaxonsData(String idImage) {
ArrayList<String> propositionsTaxonDatas = new ArrayList<String>();
for (ObservationValidation observationValidation : observationValidationDatas) {
if (!propositionsTaxonDatas.contains(observationValidation.getEspece())) {
propositionsTaxonDatas.add(observationValidation.getEspece());
}
}
return propositionsTaxonDatas;
}
public Observation getObservationCourante() {
return observations.get(0);
}
public List<Observation> getObservationsEfloreParTaxon(String nomTaxon) {
return observations;
}
public Protocole getProtocole(String nomProtocole) {
for (Protocole protocole : protocoles) {
if (protocole.getNom().equals(nomProtocole)) {
return protocole;
}
}
return null;
}
public void saveVote(VoteProtocole voteProtocole) {
CacheClient.getInstance().getCurrentObservation().getVoteProtocoles().add(voteProtocole);
}
public void saveValidationData(ObservationValidation validationData) throws ExceptionClient {
observationValidationDatas.add(validationData);
setChanged();
notifyObservers();
}
public static MockDatasource getInstance() {
if (instance == null) {
instance = new MockDatasource();
}
return instance;
}
}