Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 875 → Rev 876

/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java
3,8 → 3,10
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.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Contributeur;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.InterventionForum;
17,6 → 19,7
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
 
public class UtilitairesServiceResultat {
62,9 → 65,10
//TODO: renvoyer les commentaires des obs
//observation.setCommentaire(UtilitairesServiceResultat.getValeurOuVide(observationJson, "commentaire"));
JSONValue propositions = observationJson.get("commentaires");
 
if(propositions != null && propositions.isObject() != null) {
observation.setInterventionsForum(parserInterventions(propositions.isObject(), observation));
List<InterventionForum> interventions = hierarchiserInterventions(parserInterventions(propositions.isObject(), observation));
observation.setInterventionsForum(interventions);
} else {
observation.ajouterPropositionDetermination(creerPropositionDeterminationAPartirObservation(observation));
}
71,6 → 75,15
return observation;
}
public static List<InterventionForum> hierarchiserInterventions(HashMap<String, InterventionForum> interventions) {
//TODO : gérer l'arborescence
List<InterventionForum> interventionsHierarchisees = new ArrayList<InterventionForum>();
interventionsHierarchisees.addAll(interventions.values());
return interventionsHierarchisees;
//Iterator<String> it = interventions.
//return interventionsHierarchisees;
}
public static String getValeurOuVide(JSONObject objet, String index) {
return (objet.get(index).isString() != null) ? objet.get(index).isString().stringValue() : "";
}
90,8 → 103,8
return propositionDetermination;
}
public static List<InterventionForum> parserInterventions(JSONObject interventions, Observation observation) {
List<InterventionForum> listeInterventions = new ArrayList<InterventionForum>();
public static HashMap<String, InterventionForum> parserInterventions(JSONObject interventions, Observation observation) {
HashMap<String, InterventionForum> listeInterventions = new HashMap<String, InterventionForum>();
boolean propositionDeterminationCreee = false;
99,6 → 112,7
while (itInterventions.hasNext()) {
JSONObject intervention = interventions.get(itInterventions.next()).isObject();
String nomSel = getValeurOuVide(intervention, "nom_sel");
String idIntervention = intervention.get("id_commentaire").isString().stringValue();
if(!nomSel.equals("")) {
PropositionDetermination propDeter = new PropositionDetermination(observation);
Contributeur auteurProposition = new Contributeur(getValeurOuVide(intervention, "utilisateur_nom"),
111,18 → 125,31
if(intervention.get("votes") != null && intervention.get("votes").isObject() != null) {
propDeter.setVotesDeterminations(parserVotesDetermination(intervention.get("votes").isObject(), propDeter));
}
listeInterventions.add(propDeter);
listeInterventions.put(idIntervention, propDeter);
String idContributeur = getValeurOuVide(intervention, "ce_utilisateur");
if(nomSel.equals(observation.getNomRetenu()) && idContributeur.equals(observation.getIdAuteur())) {
propositionDeterminationCreee = true;
}
} else {
//C'est un commentaire seul
String texte = intervention.get("texte").isString().stringValue();
texte = intervention.get("id_commentaire").isString().stringValue() + texte;
String nom = intervention.get("utilisateur_nom").isString().stringValue();
String prenom = intervention.get("utilisateur_prenom").isString().stringValue();
String courriel = intervention.get("utilisateur_courriel").isString().stringValue();
Contributeur contributeur = new Contributeur(nom, prenom, courriel);
//TODO : parser date commentaire
Commentaire commentaire = new Commentaire(contributeur, new Date(), texte);
listeInterventions.put(idIntervention, commentaire);
}
}
if(!propositionDeterminationCreee) {
PropositionDetermination determinationOriginale = creerPropositionDeterminationAPartirObservation(observation);
listeInterventions.add(0, determinationOriginale);
listeInterventions.put("0", determinationOriginale);
}
return listeInterventions;
}