17,6 → 17,7 |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
51,58 → 52,52 |
|
public class DeterminationPresenteur extends Presenteur { |
|
/** |
* Vue de l'interface de détermination |
* */ |
public interface Vue extends IsWidget { |
public Panel getForum(); |
|
public Panel getDetailImageObservation(); |
|
public Panel getFormulaireRechercheEflore(); |
|
public Panel getVoteProtocole(); |
|
public Button getBoutonAjoutProposition(); |
|
public Button getBoutonAjoutCommentaire(); |
|
public Button getBoutonAjoutPropositionBas(); |
|
public Button getBoutonAjoutCommentaireBas(); |
|
public HasWidgets getMetadonnees(); |
|
// public void ajouterLigneVoteProtocole(IsWidget vue); |
// public void ajouterLigneVoteProtocole(String nom, IsWidget vue); |
public HasWidgets getNouvelleLigneProtocole(); |
|
public void afficherNomTaxonProbable(String nomTaxon); |
} |
|
private Vue vue; |
private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
|
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
|
// Déclaration des services à utiliser |
private ProtocoleService protocoleService; |
private ObservationService observationService; |
|
private CacheClient cache = CacheClient.getInstance(); |
|
|
public DeterminationPresenteur(Vue vue, ObservationService observationService, ProtocoleService protocoleService) { |
this.vue = vue; |
this.protocoleService = protocoleService; |
this.observationService = observationService; |
this.protocoleService = protocoleService; |
} |
|
public void go(final HasWidgets composite) { |
|
// TODO afficher une icone de chargement si le chargement devient trop |
// long |
// TODO afficher une icone de chargement si le chargement devient trop long |
// car tout l'écran est asynchrone ici |
observationService.getObservation(CacheClient.getInstance().getObservationCourante().getId(), new ObservationsCallback() { |
final Observation observationCourante = cache.getObservationCourante(); |
observationService.getObservation(observationCourante.getId(), new ObservationsCallback() { |
|
@Override |
public void surRetour(ObservationServiceResultat objetRetour) { |
CacheClient.getInstance().setImageCourante(CacheClient.getInstance().getObservationCourante().getImages().get(0)); |
cache.setImageCourante(observationCourante.getImages().get(0)); |
|
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation()); |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), observationCourante, ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), observationCourante).go(vue.getDetailImageObservation()); |
|
chargerEtAjouterLignesVotesProtocole(); |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
122,7 → 117,7 |
} |
|
private void chargerEtAjouterLignesVotesProtocole() { |
if (CacheClient.getInstance().getListeProtocoles() == null) { |
if (cache.getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
|
@Override |
132,7 → 127,7 |
} |
}); |
} else { |
List<Protocole> listeProtocoles = CacheClient.getInstance().getListeProtocoles(); |
List<Protocole> listeProtocoles = cache.getListeProtocoles(); |
ajouterLignesVotesProtocole(listeProtocoles); |
} |
} |
146,12 → 141,16 |
} |
|
private void calculerEtAfficherVoteDeterminationPlusPopulaire() { |
|
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionDeterminations()); |
|
Observation observation = cache.getObservationCourante(); |
String nomTaxon = observation.getNomRetenu(); |
|
List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(cache.getObservationCourante().getPropositionDeterminations()); |
if (votesOrdonnes.size() > 0) { |
String nomTaxon = votesOrdonnes.get(0).getIntituleAssocie(); |
vue.afficherNomTaxonProbable(nomTaxon); |
nomTaxon = votesOrdonnes.get(0).getIntituleAssocie(); |
} |
|
vue.afficherNomTaxonProbable(nomTaxon); |
} |
|
public void gererEvenements() { |
171,11 → 170,11 |
}; |
vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition); |
vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition); |
|
|
ClickHandler clicAjoutCommentaire = new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(CacheClient.getInstance().getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue()); |
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue()); |
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue()); |
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur); |
} |