New file |
0,0 → 1,97 |
package org.tela_botanica.del.client.composants.moteurrecherche; |
|
import java.util.HashMap; |
|
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.i18n.I18n; |
|
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.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.event.dom.client.KeyCodes; |
import com.google.gwt.event.dom.client.KeyPressEvent; |
import com.google.gwt.event.dom.client.KeyPressHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
public abstract class MoteurRecherchePresenteur extends Presenteur { |
|
public abstract interface Vue extends IsWidget { |
public abstract HasClickHandlers getLienRechercheAvancee(); |
public abstract void basculerAffichageZoneCache(); |
public abstract HasClickHandlers getBoutonRechercheSimple(); |
public abstract HasClickHandlers getBoutonRechercheAvancee(); |
public abstract HasKeyPressHandlers getChampSaisie(); |
public abstract HasClickHandlers getChampSaisieCliquable(); |
public abstract String getValeurRechercheSimple(); |
public void setValeurRechercheSimple(String valeurRecherche); |
public String getLabelRecherche(); |
public abstract HashMap<String, String> collecterFormulaire(); |
public String getChaineRecherche(); |
public abstract void setRecherchePrecedente(); |
} |
|
private Vue vue; |
|
public MoteurRecherchePresenteur(Vue vue) { |
this.vue = vue; |
gererEvenements(); |
} |
|
@Override |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
} |
|
@Override |
protected void gererEvenements() { |
vue.getLienRechercheAvancee().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
vue.basculerAffichageZoneCache(); |
} |
}); |
|
vue.getBoutonRechercheSimple().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
afficherInfoRecherche(); |
lancerRecherche(vue.getChaineRecherche()); |
} |
}); |
|
vue.getBoutonRechercheAvancee().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
afficherInfoRecherche(); |
lancerRecherche(vue.getChaineRecherche()); |
} |
}); |
|
vue.getChampSaisie().addKeyPressHandler(new KeyPressHandler() { |
|
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
afficherInfoRecherche(); |
lancerRecherche(vue.getChaineRecherche()); |
} |
} |
}); |
|
vue.getChampSaisieCliquable().addClickHandler(new ClickHandler() { |
|
@Override |
public void onClick(ClickEvent event) { |
if (vue.getValeurRechercheSimple().equals(vue.getLabelRecherche())) { |
vue.setValeurRechercheSimple(""); |
} |
} |
}); |
|
} |
|
private void afficherInfoRecherche() { |
vue.setRecherchePrecedente(); |
} |
|
public abstract void lancerRecherche(String termeRecherche); |
} |