7,9 → 7,11 |
|
import org.tela_botanica.del.client.modeles.Contributeur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.InterventionForum; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
|
import com.google.gwt.i18n.client.DateTimeFormat; |
30,11 → 32,8 |
return image; |
} |
|
public static Observation parserObservationEtCreerPropositionDetermination(JSONObject observationJson) { |
|
public static Observation parserObservationEtCreerPropositionDetermination(JSONObject observationJson) { |
Observation observation = parserObservationJSON(observationJson); |
observation.ajouterPropositionDetermination(creerPropositionDeterminationAPartirObservation(observation)); |
|
return observation; |
} |
|
50,17 → 49,24 |
observation.setDateTransmission(getValeurOuVide(observationJson,"date_observation")); |
observation.setDateReleve(getValeurOuVide(observationJson, "date_observation")); |
observation.setFamille(getValeurOuVide(observationJson, "determination.famille")); |
observation.setId(UtilitairesServiceResultat.getValeurOuVide(observationJson, "id_observation")); |
observation.setIdLocalite(UtilitairesServiceResultat.getValeurOuVide(observationJson, "id_zone_geo")); |
observation.setLocalite(UtilitairesServiceResultat.getValeurOuVide(observationJson, "zone_geo")); |
observation.setNomRetenu(UtilitairesServiceResultat.getValeurOuVide(observationJson, "determination.ns")); |
observation.setMilieu(UtilitairesServiceResultat.getValeurOuVide(observationJson, "milieu")); |
observation.setLieuDit(UtilitairesServiceResultat.getValeurOuVide(observationJson, "lieudit")); |
observation.setNumNomenclatural(UtilitairesServiceResultat.getValeurOuVide(observationJson, "determination.nn")); |
observation.setId(getValeurOuVide(observationJson, "id_observation")); |
observation.setIdLocalite(getValeurOuVide(observationJson, "id_zone_geo")); |
observation.setLocalite(getValeurOuVide(observationJson, "zone_geo")); |
observation.setNomRetenu(getValeurOuVide(observationJson, "determination.ns")); |
observation.setMilieu(getValeurOuVide(observationJson, "milieu")); |
observation.setLieuDit(getValeurOuVide(observationJson, "lieudit")); |
observation.setNumNomenclatural(getValeurOuVide(observationJson, "determination.nn")); |
//TODO: renvoyer les mots clés des observations |
//observation.setMotsClefs(parserMotsCles(UtilitairesServiceResultat.getValeurOuVide(observationJson, "mots_cles_texte"))); |
//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)); |
} else { |
observation.ajouterPropositionDetermination(creerPropositionDeterminationAPartirObservation(observation)); |
} |
return observation; |
} |
|
83,6 → 89,52 |
return propositionDetermination; |
} |
|
public static List<InterventionForum> parserInterventions(JSONObject interventions, Observation observation) { |
List<InterventionForum> listeInterventions = new ArrayList<InterventionForum>(); |
//TODO: ne faire ceci que si la proposition correspondant à la détermination originale n'a pas été créée |
PropositionDetermination determinationOriginale = creerPropositionDeterminationAPartirObservation(observation); |
listeInterventions.add(determinationOriginale); |
|
java.util.Iterator<String> itInterventions = interventions.keySet().iterator(); |
while (itInterventions.hasNext()) { |
JSONObject intervention = interventions.get(itInterventions.next()).isObject(); |
String nomSel = getValeurOuVide(intervention, "nom_sel"); |
if(!nomSel.equals("")) { |
PropositionDetermination propDeter = new PropositionDetermination(observation); |
Contributeur auteurProposition = new Contributeur(getValeurOuVide(intervention, "utilisateur_nom"), |
getValeurOuVide(intervention, "utilisateur_prenom"), getValeurOuVide(intervention, "utilisateur_courriel")); |
propDeter.setContributeur(auteurProposition); |
//TODO: parser date proposition |
propDeter.setDate(new Date()); |
propDeter.setEspece(nomSel); |
propDeter.setId(getValeurOuVide(intervention, "id_commentaire")); |
if(intervention.get("votes") != null && intervention.get("votes").isObject() != null) { |
propDeter.setVotesDeterminations(parserVotesDetermination(intervention.get("votes").isObject(), propDeter)); |
} |
listeInterventions.add(propDeter); |
} |
} |
|
return listeInterventions; |
} |
|
public static HashMap<String, VoteDetermination> parserVotesDetermination(JSONObject votes, PropositionDetermination proposition) { |
HashMap<String, VoteDetermination> votesDetermination = new HashMap<String, VoteDetermination>(); |
java.util.Iterator<String> itVotes = votes.keySet().iterator(); |
while (itVotes.hasNext()) { |
JSONObject vote = votes.get(itVotes.next()).isObject(); |
VoteDetermination vd = new VoteDetermination(); |
vd.setContributeur(getValeurOuVide(vote, "auteur.id")); |
vd.setDate(new Date()); |
vd.setId(getValeurOuVide(vote, "vote.id")); |
vd.setPropositionDetermination(proposition); |
vd.setVote(Integer.parseInt(getValeurOuVide(vote, "vote"))); |
|
votesDetermination.put(getValeurOuVide(vote, "auteur.id"), vd); |
} |
return votesDetermination; |
} |
|
public static HashMap<String, HashMap<String,VoteProtocole>> parserVotesProtocoles(JSONObject votes) { |
|
HashMap<String, HashMap<String,VoteProtocole>> votesProtocoles = new HashMap<String, HashMap<String,VoteProtocole>>(); |