Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1202 → Rev 1203

/trunk/src/org/tela_botanica/del/client/vues/pictoflora/moteur/MoteurPictofloraPresenteur.java
1,5 → 1,7
package org.tela_botanica.del.client.vues.pictoflora.moteur;
 
import java.util.List;
 
import javax.validation.Configuration;
 
import org.tela_botanica.del.client.cache.CacheClient;
9,7 → 11,10
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.ModeRecherche;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
import org.tela_botanica.del.client.services.rest.ProtocoleService;
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
17,12 → 22,16
import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraPresenteur;
import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraVue;
 
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasChangeHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
 
public class MoteurPictofloraPresenteur {
37,10 → 46,28
public Panel getZonePartageUrl();
 
HasClickHandlers getLienAjoutObservation();
public void setListeProtocoles(ListBox listeProtocoles);
public HasChangeHandlers getListeProtocoles();
public void ajouterProtocole(String NomProtocole, String idProtocole);
 
public void selectionnerProtocole(int index);
public String getNomProtocoleSelectionne();
 
public int getIdProtocoleSelectionne();
 
public void ajouterProtocoles(List<Protocole> protocoles);
 
public void mettreAJourDescriptionProtocoleCourant(Protocole protocoleCourant);
}
 
private Vue vue;
private ProtocoleService protocoleService;
private List<Protocole> protocoles;
 
/**
* Constructeur
48,7 → 75,7
public MoteurPictofloraPresenteur(Vue vue, ProtocoleService protocoleService) {
this.vue = vue;
this.protocoleService = protocoleService;
chargerProtocoles();
PartageUrlPresenteur presenteurPartageUrl = new PartageUrlPresenteur(new PartageUrlVue());
presenteurPartageUrl.go(vue.getZonePartageUrl());
77,6 → 104,14
}
private void gererEvenements() {
vue.getListeProtocoles().addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
surChangementProtocole();
}
});
vue.getLienAjoutObservation().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
85,7 → 120,49
}
});
}
private void chargerProtocoles() {
// test pour ne pas charger les protocoles déjà chargés
// TODO: faire un systeme de cache gérés par les web service eux même
if (CacheClient.getInstance().getListeProtocoles() == null) {
protocoleService.getProtocoles(new ProtocolesCallback() {
 
@Override
public void surRetour(ProtocoleServiceResultat protocolesRecus) {
protocoles = protocolesRecus.getProtocoles();
remplirListeProtocole(protocoles);
 
}
});
} else {
protocoles = CacheClient.getInstance().getListeProtocoles();
remplirListeProtocole(CacheClient.getInstance().getListeProtocoles());
}
}
public void surChangementProtocole() {
Protocole protocoleCourant = null;
for (Protocole protocole : protocoles) {
if (protocole.getId() == vue.getIdProtocoleSelectionne()) {
protocoleCourant = protocole;
}
}
vue.mettreAJourDescriptionProtocoleCourant(protocoleCourant);
CacheClient.getInstance().setProtocoleCourant(protocoleCourant);
EvenementChangementProtocole evenement = new EvenementChangementProtocole(protocoleCourant);
BusEvenementiel.getInstance().fireEvent(evenement);
}
private void remplirListeProtocole(List<Protocole> protocoles) {
vue.ajouterProtocoles(protocoles);
if (CacheClient.getInstance().getProtocoleCourant() == null) {
vue.selectionnerProtocole(0);
vue.mettreAJourDescriptionProtocoleCourant(protocoles.get(0));
} else {
vue.mettreAJourDescriptionProtocoleCourant(CacheClient.getInstance().getProtocoleCourant());
}
}
 
public void go(HasWidgets composite) {
vue.ajouterVue(composite);
chargerMoteurRechercheAvancee();