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(); |