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; |
} |