Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
339 benjamin 1
package org.tela_botanica.del.client.modeles;
2
 
348 aurelien 3
import java.util.ArrayList;
4
import java.util.Date;
443 aurelien 5
import java.util.HashMap;
339 benjamin 6
import java.util.List;
500 aurelien 7
import java.util.Map;
339 benjamin 8
 
500 aurelien 9
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
10
 
11
import com.google.gwt.core.client.GWT;
764 aurelien 12
import com.google.gwt.dev.js.rhino.ObjToIntMap.Iterator;
348 aurelien 13
import com.google.gwt.i18n.client.DateTimeFormat;
14
import com.google.gwt.json.client.JSONArray;
15
import com.google.gwt.json.client.JSONObject;
16
import com.google.gwt.json.client.JSONValue;
500 aurelien 17
import com.google.gwt.user.client.Window;
348 aurelien 18
 
340 benjamin 19
public class ImageServiceResultat {
534 benjamin 20
 
339 benjamin 21
	private List<Image> images;
534 benjamin 22
 
339 benjamin 23
	private int nbTotalImagesPourLaRecherche;
534 benjamin 24
 
348 aurelien 25
	public ImageServiceResultat(JSONValue retourJson) {
764 aurelien 26
 
534 benjamin 27
		try {
778 aurelien 28
			images = new ArrayList<Image>();
534 benjamin 29
			// TODO ajouter vérifications plus précises
778 aurelien 30
			if(retourJson.isObject().get("entete") != null) {
31
				double total = retourJson.isObject().get("entete").isObject().get("total").isNumber().doubleValue();
32
				nbTotalImagesPourLaRecherche = (int) total;
33
				JSONObject tableauImg = retourJson.isObject().get("resultats").isObject();
34
				java.util.Iterator<String> it = tableauImg.keySet().iterator();
35
				while (it.hasNext()) {
36
					JSONObject imageJson = tableauImg.get(it.next()).isObject();
37
					Image image = parserRetourImage(imageJson);
38
					images.add(image);
39
				}
764 aurelien 40
 
778 aurelien 41
			} else {
42
				JSONArray tableauImg = retourJson.isObject().get("images").isArray();
43
				nbTotalImagesPourLaRecherche = (int) tableauImg.size();
44
				for (int i = 0; i < nbTotalImagesPourLaRecherche; i++) {
45
					JSONObject imageJson = tableauImg.get(i).isObject();
46
					Image image = parserRetourImage(imageJson);
47
					images.add(image);
534 benjamin 48
				}
443 aurelien 49
			}
534 benjamin 50
		} catch (Exception e) {
839 aurelien 51
			Window.alert(e.getMessage());
348 aurelien 52
		}
53
	}
778 aurelien 54
 
55
	public Image parserRetourImage(JSONObject imageJson) {
56
		Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
57
 
58
		if (imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
59
			JSONObject observationJson = imageJson.get("observation").isObject();
60
			image.setObservation(UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson));
61
		}
534 benjamin 62
 
778 aurelien 63
		if (imageJson.get("protocoles_votes") != null && imageJson.get("protocoles_votes").isObject() != null) {
64
			JSONObject votes = imageJson.get("protocoles_votes").isObject();
65
			image.setVoteProtocoles(UtilitairesServiceResultat.parserVotesProtocoles(votes));
66
		}
67
 
68
		return image;
69
	}
70
 
339 benjamin 71
	public List<Image> getImages() {
72
		return images;
73
	}
74
 
75
	public void setImages(List<Image> images) {
76
		this.images = images;
77
	}
78
 
79
	public int getNbTotalImagesPourLaRecherche() {
80
		return nbTotalImagesPourLaRecherche;
81
	}
82
 
83
	public void setNbTotalImagesPourLaRecherche(int nbTotalImagesPourLaRecherche) {
84
		this.nbTotalImagesPourLaRecherche = nbTotalImagesPourLaRecherche;
85
	}
86
}