New file |
0,0 → 1,104 |
package org.tela_botanica.del.client.vues.identiplante.moteur; |
|
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur; |
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.services.rest.ObservationService; |
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret; |
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur; |
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
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.Panel; |
|
public class MoteurIdentiplantePresenteur extends Presenteur { |
|
public interface Vue extends IsWidget { |
public HasWidgets getZoneRecherche(); |
|
public HasWidgets getZoneResultats(); |
|
HasClickHandlers getLienAjoutObservation(); |
|
public String getValeurRadioStatut(); |
|
public HasClickHandlers getRadioADeterminer(); |
|
public HasClickHandlers getRadioEnDiscussion(); |
|
public void decocherRadioTout(); |
|
public Panel getZonePartageUrl(); |
|
} |
|
private Vue vue; |
|
public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
} |
|
public void go(HasWidgets composite) { |
|
composite.add(vue.asWidget()); |
ajouterMoteurRechercheAvancee(); |
PartageUrlPresenteur presenteurPartageUrl = new PartageUrlPresenteur(new PartageUrlVue()); |
presenteurPartageUrl.go(vue.getZonePartageUrl()); |
gererEvenements(); |
|
} |
|
protected void ajouterMoteurRechercheAvancee() { |
MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") { |
}, ModeRecherche.MODE_OBSERVATION) { |
|
@Override |
public void lancerRecherche() { |
chercherObservations(); |
} |
}; |
presenteur.go(vue.getZoneRecherche()); |
} |
|
public void chercherObservations() { |
vue.getZoneResultats().clear(); |
new ResultatsIdentiplantePresenteur(new ObservationServiceConcret(), new ResultatsIdentiplanteVue(), vue.getValeurRadioStatut()).go(vue.getZoneResultats()); |
} |
|
protected void gererEvenements() { |
vue.getLienAjoutObservation().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
Config config = new Config(); |
Window.open(config.getUrl("applisaisie"), "Saisie d'une nouvelle observation", null); |
} |
}); |
|
|
vue.getRadioADeterminer().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
vue.decocherRadioTout(); |
} |
}); |
|
vue.getRadioEnDiscussion().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
vue.decocherRadioTout(); |
} |
}); |
} |
|
} |