Subversion Repositories eFlore/Applications.del

Rev

Rev 463 | Rev 534 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 463 Rev 500
Line 2... Line 2...
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.Date;
4
import java.util.Date;
5
import java.util.HashMap;
5
import java.util.HashMap;
-
 
6
import java.util.List;
Line -... Line 7...
-
 
7
import java.util.Map;
-
 
8
 
-
 
9
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
6
import java.util.List;
10
 
7
 
11
import com.google.gwt.core.client.GWT;
8
import com.google.gwt.i18n.client.DateTimeFormat;
12
import com.google.gwt.i18n.client.DateTimeFormat;
9
import com.google.gwt.json.client.JSONArray;
13
import com.google.gwt.json.client.JSONArray;
-
 
14
import com.google.gwt.json.client.JSONObject;
Line 10... Line 15...
10
import com.google.gwt.json.client.JSONObject;
15
import com.google.gwt.json.client.JSONValue;
Line 11... Line 16...
11
import com.google.gwt.json.client.JSONValue;
16
import com.google.gwt.user.client.Window;
Line 19... Line 24...
19
	public ImageServiceResultat(JSONValue retourJson) {
24
	public ImageServiceResultat(JSONValue retourJson) {
Line 20... Line 25...
20
		
25
		
21
		//TODO ajouter vérifications plus précises
26
		//TODO ajouter vérifications plus précises
22
		double total = retourJson.isObject().get("total").isNumber().doubleValue();
27
		double total = retourJson.isObject().get("total").isNumber().doubleValue();
23
		nbTotalImagesPourLaRecherche = (int) total;
-
 
Line -... Line 28...
-
 
28
		nbTotalImagesPourLaRecherche = (int) total;
24
		JSONArray tableauObs = retourJson.isObject().get("contenu").isArray();
29
		
25
		
-
 
Line 26... Line 30...
26
		images = new ArrayList<Image>();
30
		JSONArray tableauObs = retourJson.isObject().get("contenu").isArray();
27
		HashMap<String, Observation> observations = new HashMap<String, Observation>();
31
		images = new ArrayList<Image>();
Line 28... Line 32...
28
		
32
		
29
		int nbResultats = tableauObs.size();
-
 
30
		for (int i = 0; i < nbResultats; i++) {
33
		int nbResultats = tableauObs.size();
31
			
-
 
32
			JSONObject imageJson = tableauObs.get(i).isObject();
-
 
33
			Image image = new Image();
-
 
34
			String idImage = "1"+imageJson.get("id_image").isString().stringValue();
-
 
Line 35... Line 34...
35
			image.setIdImage(idImage);
34
		for (int i = 0; i < nbResultats; i++) {
36
			image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"%s%.jpg");
35
			
37
			image.setUrl("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"CRS.jpg");
36
			JSONObject imageJson = tableauObs.get(i).isObject();
38
			image.setMiniature("http://www.tela-botanica.org/appli:cel-img:"+getIdAvecPadding(idImage)+"XS.jpg");
37
			Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
39
			
-
 
40
			if(imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
-
 
41
				JSONObject observationJson = imageJson.get("observation").isObject();
-
 
42
				Observation observation = new Observation();
-
 
43
				
-
 
44
				observation.setAuteur(observationJson.get("prenom_utilisateur").isString().stringValue()+
-
 
45
						" "+observationJson.get("nom_utilisateur").isString().stringValue());
-
 
46
				observation.setDateTransmission(observationJson.get("date_observation").isString().stringValue());
-
 
47
				observation.setDateReleve(observationJson.get("date_observation").isString().stringValue());
-
 
48
				observation.setFamille(observationJson.get("famille").isString().stringValue());
-
 
49
				observation.setId(observationJson.get("id_observation").isString().stringValue());
-
 
50
				observation.setIdLocalite(observationJson.get("ce_zone_geo").isString().stringValue());
-
 
51
				observation.setLocalite(observationJson.get("zone_geo").isString().stringValue());
-
 
52
				observation.setNomRetenu(observationJson.get("nom_ret").isString().stringValue());
38
			
53
				observation.setMilieu(observationJson.get("milieu").isString().stringValue());
-
 
54
				observation.setLieuDit(observationJson.get("lieudit").isString().stringValue());
39
			if(imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {				
55
				observation.setNumNomenclatural(observationJson.get("nom_ret_nn").isString().stringValue());
-
 
56
				observation.setMotsClefs(parserMotsCles(observationJson.get("mots_cles_texte").isString().stringValue()));
-
 
57
				
40
				JSONObject observationJson = imageJson.get("observation").isObject();						
58
				PropositionDetermination propositionDetermination = new PropositionDetermination();
41
				image.setObservation(UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson));	
59
				propositionDetermination.setContributeur(observationJson.get("prenom_utilisateur").isString().stringValue()+
-
 
60
						" "+observationJson.get("nom_utilisateur").isString().stringValue());
-
 
61
				java.util.Date datePropDeter = parserDateObservation(observationJson.get("date_observation").isString().stringValue());
-
 
62
				propositionDetermination.setDate(datePropDeter);
42
			}
Line 63... Line 43...
63
				propositionDetermination.setEspece(observationJson.get("nom_ret").isString().stringValue());
43
			
64
				observation.addImageCelValidationData(propositionDetermination);
44
			if(imageJson.get("votes") != null && imageJson.get("votes").isArray() != null) {					
65
					
45
				JSONArray votes = imageJson.get("votes").isArray();						
66
				image.setObservation(observation);	
46
				image.setVoteProtocoles(UtilitairesServiceResultat.parserVotesProtocoles(votes));
67
			}
47
			}
68
	
48
	
69
			images.add(image);
49
			images.add(image);
Line 70... Line 50...
70
		}
50
		}
Line 83... Line 63...
83
	}
63
	}
Line 84... Line 64...
84
 
64
 
85
	public void setNbTotalImagesPourLaRecherche(int nbTotalImagesPourLaRecherche) {
65
	public void setNbTotalImagesPourLaRecherche(int nbTotalImagesPourLaRecherche) {
86
		this.nbTotalImagesPourLaRecherche = nbTotalImagesPourLaRecherche;
66
		this.nbTotalImagesPourLaRecherche = nbTotalImagesPourLaRecherche;
87
	}
-
 
88
	
-
 
89
	private String getIdAvecPadding(String id) {
-
 
90
 
-
 
91
		int maxZeros = 9 - id.length();
-
 
92
 
-
 
93
		for (int i = 0; i < maxZeros; i++) {
-
 
94
			id = "0" + id;
-
 
95
		}
-
 
96
		
-
 
97
		return id;
-
 
98
	}
-
 
99
	
-
 
100
	private Date parserDateObservation(String date) {
-
 
101
		Date dateParsee = new Date();
-
 
102
		DateTimeFormat formatDateObs = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss");
-
 
103
        try{
-
 
104
          dateParsee = formatDateObs.parse(date);
-
 
105
        } catch (IllegalArgumentException e) {
-
 
106
        	dateParsee = new java.sql.Date(0);
-
 
107
		}
-
 
108
        return dateParsee;
-
 
109
	}
-
 
110
	
-
 
111
	private List<String> parserMotsCles(String motsClesTexte) {
-
 
112
		String[] tabMotsCle = motsClesTexte.split(",");
-
 
113
		List<String> motsClesParses = new ArrayList<String>();
-
 
114
		for (int i = 0; i < tabMotsCle.length; i++) {
-
 
115
			motsClesParses.add(tabMotsCle[i]);
-
 
116
		}
-
 
117
		
-
 
118
		return motsClesParses;
-
 
119
	}
-
 
120
 
67
	}