/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
90,9 → 90,11 |
JSONValue propositions = observationJson.get("commentaires"); |
boolean creerPropositionAPartirObs = true; |
boolean propositionInitialeExiste = false; |
PropositionDetermination propositionPotentiellementInitiale = null; |
if (propositions != null && propositions.isObject() != null) { |
List<InterventionForum> interventions = parserInterventions(propositions.isObject()); |
for (InterventionForum interventionForum : interventions) { |
interventionForum.setObservation(observation); |
// Si une proposition avec le même nom retenu que l'observation |
105,19 → 107,33 |
creerPropositionAPartirObs = false; |
proposition.setDate(parserDateObservation(observation.getDateReleve())); |
} |
if (proposition.getEspece().equals(observation.getNomRetenu()) && proposition.getContributeur().getNomComplet().equals(observation.getAuteur())) { |
propositionPotentiellementInitiale = proposition; |
} |
if (proposition.estPropositionInitiale()) { |
propositionInitialeExiste = true; |
} |
} |
} |
observation.setInterventionsForum(interventions); |
} |
if (!propositionInitialeExiste && propositionPotentiellementInitiale != null) { |
propositionPotentiellementInitiale.setEstPropositionInitiale(true); |
} |
if (creerPropositionAPartirObs) { |
// Si elle est nécessaire, la proposition factice est ajoutée au |
// début |
observation.getInterventionsForum().add(0, creerPropositionDeterminationAPartirObservation(observation)); |
observation.getInterventionsForum().add(0, creerPropositionDeterminationAPartirObservation(observation, propositionInitialeExiste)); |
} |
return observation; |
} |
/** |
* Créée une proposition de determination à partir d'une observation |
* |
124,7 → 140,7 |
* @param observation |
* @return |
*/ |
private static PropositionDetermination creerPropositionDeterminationAPartirObservation(Observation observation) { |
private static PropositionDetermination creerPropositionDeterminationAPartirObservation(Observation observation, boolean propositionInitialeExiste) { |
String utilisateurNom = observation.getNomAuteur(); |
String utilisateurPrenom = observation.getPrenomAuteur(); |
137,7 → 153,11 |
java.util.Date datePropDeter = parserDateObservation(observation.getDateReleve()); |
propositionDetermination.setDate(datePropDeter); |
propositionDetermination.setEspece(observation.getNomRetenu()); |
if (!propositionInitialeExiste) { |
propositionDetermination.setEstPropositionInitiale(true); |
} |
return propositionDetermination; |
} |
199,9 → 219,20 |
String famille = getValeurOuVide(jsonIntervention, "famille"); |
String nom_referentiel = getValeurOuVide(jsonIntervention, "nom_referentiel"); |
String nbCommentaires = getValeurOuVide(jsonIntervention, "nb_commentaires"); |
PropositionDetermination intervention = new PropositionDetermination(id, contributeur, texte); |
String proposition_initiale = getValeurOuVide(jsonIntervention, "proposition_initiale"); |
if (proposition_initiale != null && proposition_initiale.equals("1")) { |
intervention.setEstPropositionInitiale(true); |
} /*else { |
String nomRetObs = intervention.getObservation().getNomRetenu(); |
String auteur = intervention.getObservation().getAuteur(); |
boolean b = nom_ret.equals(nomRetObs) && intervention.getContributeur().getNomComplet().equals(auteur); |
intervention.setEstPropositionInitiale(b); |
}*/ |
// intervention.setObservation(observation); |
intervention.setEspece(nom_sel); |
217,6 → 248,8 |
intervention.setNumNomenclatural(nom_ret_nn); |
} |
if (!idParent.equals("")) { |
intervention.setIdParent(idParent); |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationPresenteur.java |
---|
1,40 → 1,41 |
package org.tela_botanica.del.client.vues.identiplante.resultats.observationdeterminations; |
import java.util.Collection; |
import java.util.Collections; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import java.util.TreeMap; |
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlaySimplePresenteur; |
import org.tela_botanica.del.client.composants.rss.RssPresenteur; |
import org.tela_botanica.del.client.composants.rss.RssVue; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.utils.ComparateurPropositionDetermination; |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.identiplante.resultats.votes.DetailVoteObservationVue; |
import com.google.gwt.core.shared.GWT; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ObservationDeterminationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void viderTableau(); |
public void viderTableauPropositionOriginale(); |
public void viderTableauPropositionInitiale(); |
public HasWidgets getTableauPropositions(); |
public HasWidgets getTableauPropositionOriginale(); |
public HasWidgets getTableauPropositionInitiale(); |
public void viderTableauPropositionRetenue(); |
public HasWidgets getTableauPropositionRetenue(); |
void setNbVotes(int index, int nbVotes); |
void setNbCommentaires(int index, int nbCommentaires); |
44,6 → 45,8 |
public void masquerPropositions(); |
public HasWidgets getZoneRss(); |
public void toggleTableauPropositionRetenue(); |
} |
private Vue vue; |
private List<PropositionDetermination> propositions; |
54,8 → 57,24 |
this.vue = vue; |
} |
public void chargerRss(Observation observation) { |
new RssPresenteur(new RssVue(), observation, "").go(vue.getZoneRss()); |
} |
public void chargerPropositionRetenue(PropositionDetermination proposition) { |
vue.viderTableauPropositionRetenue(); |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositionRetenue()); |
vue.toggleTableauPropositionRetenue(); |
GWT.log("lkjlakrjelkrjealkrjezlkjezlrkezjlkzrjzelkrjzelkr"); |
} |
public void chargerPropositionOriginale(PropositionDetermination proposition) { |
vue.viderTableauPropositionOriginale(); |
vue.viderTableauPropositionInitiale(); |
// TODO: afficher nombre de votes total et mettre à jour en cas de |
// vote |
HTMLPanel panneau = new HTMLPanel(""); |
63,9 → 82,8 |
presenteurVote.go(panneau); |
LignePropositionVue lignePropositionVue = new LignePropositionVue(panneau); |
LignePropositionPresenteur lignePropositionPresenteur = new LignePropositionPresenteur(lignePropositionVue, proposition); |
lignePropositionPresenteur.go(vue.getTableauPropositionOriginale()); |
lignePropositionPresenteur.go(vue.getTableauPropositionInitiale()); |
new RssPresenteur(new RssVue(), proposition.getObservation(), "").go(vue.getZoneRss()); |
} |
78,9 → 96,12 |
vue.viderTableau(); |
int nbPropositions = 0; |
classerPropositions(propositions); |
chargerRss(propositions.get(0).getObservation()); |
for (PropositionDetermination proposition : propositions) { |
if (proposition.estPropositionInitiale()) { |
this.chargerPropositionOriginale(proposition); |
chargerPropositionOriginale(proposition); |
} else if (proposition.estPropositionRetenue()) { |
chargerPropositionRetenue(proposition); |
} else { |
nbPropositions++; |
95,6 → 116,7 |
lignePropositionPresenteur.go(vue.getTableauPropositions()); |
} |
} |
if (nbPropositions > 0) { |
} else { |
vue.masquerPropositions(); |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationVue.java |
---|
17,7 → 17,7 |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected HTMLPanel zoneRss, tableauPropositions, tableauPropositionOriginale, zonePropositions; |
HTMLPanel zoneRss, tableauPropositions, tableauPropositionInitiale, zonePropositions, tableauPropositionRetenue, lignePropositionRetenue; |
public HTMLPanel getTableauPropositions() { |
return tableauPropositions; |
25,6 → 25,7 |
public ObservationDeterminationVue() { |
initWidget(binder.createAndBindUi(this)); |
toggleTableauPropositionRetenue(); |
} |
@Override |
54,8 → 55,8 |
} |
@Override |
public HasWidgets getTableauPropositionOriginale() { |
return tableauPropositionOriginale; |
public HasWidgets getTableauPropositionInitiale() { |
return tableauPropositionInitiale; |
} |
public void masquerPropositions() { |
63,8 → 64,8 |
} |
@Override |
public void viderTableauPropositionOriginale() { |
tableauPropositionOriginale.clear(); |
public void viderTableauPropositionInitiale() { |
tableauPropositionInitiale.clear(); |
} |
71,4 → 72,20 |
public HasWidgets getZoneRss() { |
return zoneRss; |
} |
@Override |
public void viderTableauPropositionRetenue() { |
tableauPropositionRetenue.clear(); |
} |
@Override |
public HasWidgets getTableauPropositionRetenue() { |
return tableauPropositionRetenue; |
} |
@Override |
public void toggleTableauPropositionRetenue() { |
lignePropositionRetenue.setVisible(!lignePropositionRetenue.isVisible()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/observationdetermination.css |
---|
2,6 → 2,10 |
padding-top:3px; |
} |
.lignePropositionRetenue { |
} |
.determInitiale, .especesProposees { |
padding-left:10px; |
} |
/trunk/src/org/tela_botanica/del/client/vues/identiplante/resultats/observationdeterminations/ObservationDeterminationVue.ui.xml |
---|
14,8 → 14,15 |
<g:Label styleName="petit {style.headerTableau} {style.gauche} {style.determInitiale}">Détermination initiale</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.milieu}">Voter</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.droite}">Comm.</g:Label> |
<g:HTMLPanel styleName="{style.determination} {style.determinationOriginale}" ui:field="tableauPropositionOriginale" /> |
<g:HTMLPanel styleName="{style.determination} {style.determinationOriginale}" ui:field="tableauPropositionInitiale" /> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.determinationOriginale} nettoyage {style.lignePropositionRetenue}" ui:field="lignePropositionRetenue"> |
<g:Label styleName="petit {style.headerTableau} {style.gauche}">Score</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.gauche} {style.determInitiale}">Détermination retenue</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.milieu}">Voter</g:Label> |
<g:Label styleName="petit {style.headerTableau} {style.droite}">Comm.</g:Label> |
<g:HTMLPanel styleName="{style.determination} {style.determinationOriginale}" ui:field="tableauPropositionRetenue" /> |
</g:HTMLPanel> |
<g:HTML><br class="nettoyage"></br></g:HTML> |
<g:HTMLPanel styleName="{style.determinationOriginale}" ui:field="zonePropositions"> |
<g:Label styleName="petit {style.headerTableau} {style.gauche}">Score</g:Label> |
/trunk/src/org/tela_botanica/del/client/modeles/PropositionDetermination.java |
---|
4,6 → 4,7 |
import java.util.HashMap; |
import java.util.Map; |
import com.google.gwt.core.shared.GWT; |
import com.google.gwt.user.client.Window; |
public class PropositionDetermination extends InterventionForum implements Serializable { |
11,7 → 12,18 |
private static final long serialVersionUID = 840032625524143547L; |
private String id, espece, commentaire, numNomenclatural; |
private int nbCommentaires = 0; |
private boolean estPropositionInitiale = false; |
public boolean estPropositionInitiale() { |
return estPropositionInitiale; |
} |
public void setEstPropositionInitiale(boolean estPropositionInitiale) { |
this.estPropositionInitiale = estPropositionInitiale; |
} |
private Map<String, VoteDetermination> votesDeterminations = new HashMap<String, VoteDetermination>(); |
private Observation observation; |
25,7 → 37,7 |
this.observation = observation; |
} |
public boolean estPropositionInitiale() { |
public boolean estPropositionRetenue() { |
return (this.espece.equals(this.observation.getNomRetenu()) && this.getContributeur().getNomComplet().equals(this.observation.getAuteur())); |
} |