/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRecherche.css |
---|
New file |
0,0 → 1,6 |
.recherchePrincipale {width: 50%; font-size:18px; padding:5px; -moz-border-radius:10px; border:solid 1px #AAA; float:left;} |
.boutonRecherche {border:solid 1px #AAA; -moz-border-radius:10px; padding:5px; cursor:pointer; float:left; margin:0 10px 0 10px} |
.lienRechercheAvancee {cursor:pointer; text-decoration:underline; color:blue; float:left; margin-right:240px; margin:5px } |
.rechercheAvancee {border:solid 1px #333; padding:10px; -moz-border-radius:0 0 10px 10px; -moz-box-shadow:5px 5px 10px #EEE;position:absolute; width:700px; margin-top:40px; background:white; } |
.champRecherche {float:left; width:50%; padding-bottom:5px} |
.recherchePrecedente {color:#555; padding:5px; font-style:italic} |
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRechercheVue.ui.xml |
---|
New file |
0,0 → 1,62 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" ui:generateLocales="default"> |
<ui:with field='res' type='org.tela_botanica.del.client.Ressources'/> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary"/> |
<ui:style src="MoteurRecherche.css" /> |
<g:HTMLPanel> |
<g:TextBox styleName="{style.recherchePrincipale}" ui:field="recherchePrincipale">{constants.}</g:TextBox> |
<g:Button styleName="{style.boutonRecherche}" ui:field="boutonRecherche">Rechercher</g:Button> |
<g:Label styleName="{style.lienRechercheAvancee}" ui:field="lienRechercheAvancee">Recherche avancée</g:Label> |
<g:HTMLPanel styleName="{style.rechercheAvancee}" ui:field="rechercheAvancee"> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Département"/> |
<g:TextBox ui:field="departement"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Commune"/> |
<g:TextBox ui:field="commune"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Taxon"/> |
<g:TextBox ui:field="taxon"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Famille"/> |
<g:TextBox ui:field="famille"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Genre"/> |
<g:TextBox ui:field="genre"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Tag"/> |
<g:TextBox ui:field="tag"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Mot-clé"/> |
<g:TextBox ui:field="motCle"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Auteur"/> |
<g:TextBox ui:field="auteur"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.champRecherche}"> |
<g:Label text="Date"/> |
<g:TextBox ui:field="date"/> |
</g:HTMLPanel> |
<g:Button styleName="{style.boutonRecherche}" ui:field="boutonRechercheAvancee">Rechercher</g:Button> |
<g:HTMLPanel styleName="nettoyage" /> |
</g:HTMLPanel> |
<g:Label ui:field="recherchePrecedente" styleName="{style.recherchePrecedente}" /> |
<g:HTMLPanel ui:field="zonePagination" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRecherchePresenteur.java |
---|
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); |
} |
/trunk/src/org/tela_botanica/del/client/composants/moteurrecherche/MoteurRechercheVue.java |
---|
New file |
0,0 → 1,142 |
package org.tela_botanica.del.client.composants.moteurrecherche; |
import java.util.HashMap; |
import java.util.Iterator; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.Widget; |
public class MoteurRechercheVue extends Composite implements MoteurRecherchePresenteur.Vue { |
interface Binder extends UiBinder<Widget, MoteurRechercheVue> {} |
private static Binder uiBinder = GWT.create(Binder.class); |
private String labelRecherche = ""; |
@UiField Panel rechercheAvancee; |
@UiField Label lienRechercheAvancee, recherchePrecedente; |
@UiField Button boutonRecherche, boutonRechercheAvancee; |
@UiField TextBox recherchePrincipale, departement, commune, taxon, famille, genre, tag, motCle, auteur, date; |
public MoteurRechercheVue(String labelRecherche) { |
initWidget(uiBinder.createAndBindUi(this)); |
this.labelRecherche = labelRecherche; |
recherchePrincipale.setText(labelRecherche); |
rechercheAvancee.setVisible(false); |
} |
public String getLabelRecherche() { |
return labelRecherche; |
} |
@Override |
public HasClickHandlers getLienRechercheAvancee() { |
return lienRechercheAvancee; |
} |
@Override |
public void basculerAffichageZoneCache() { |
rechercheAvancee.setVisible(!rechercheAvancee.isVisible()); |
} |
@Override |
public HasClickHandlers getBoutonRechercheSimple() { |
return boutonRecherche; |
} |
@Override |
public HasClickHandlers getBoutonRechercheAvancee() { |
return boutonRechercheAvancee; |
} |
@Override |
public HasKeyPressHandlers getChampSaisie() { |
return recherchePrincipale; |
} |
@Override |
public String getValeurRechercheSimple() { |
return recherchePrincipale.getText(); |
} |
@Override |
public HasClickHandlers getChampSaisieCliquable() { |
return recherchePrincipale; |
} |
@Override |
public void setValeurRechercheSimple(String valeurRecherche) { |
recherchePrincipale.setText(valeurRecherche); |
} |
@Override |
public HashMap<String, String> collecterFormulaire() { |
HashMap<String, String> champsRecherche = new HashMap<String, String>(); |
if (!recherchePrincipale.getText().equals("")) { |
champsRecherche.put("search", recherchePrincipale.getText()); |
} |
if (!departement.getText().equals("")) { |
champsRecherche.put("dept", departement.getText()); |
} |
if (!commune.getText().equals("")) { |
champsRecherche.put("com", commune.getText()); |
} |
if (!taxon.getText().equals("")) { |
champsRecherche.put("taxon", taxon.getText()); |
} |
if (!famille.getText().equals("")) { |
champsRecherche.put("fam", famille.getText()); |
} |
if (!genre.getText().equals("")) { |
champsRecherche.put("gen", genre.getText()); |
} |
if (!tag.getText().equals("")) { |
champsRecherche.put("tag", tag.getText()); |
} |
if (!motCle.getText().equals("")) { |
champsRecherche.put("motCle", motCle.getText()); |
} |
if (!auteur.getText().equals("")) { |
champsRecherche.put("auteur", auteur.getText()); |
} |
if (!date.getText().equals("")) { |
champsRecherche.put("date", date.getText()); |
} |
return champsRecherche; |
} |
@Override |
public String getChaineRecherche() { |
HashMap<String, String> valeursRecherche = collecterFormulaire(); |
String chaineRecherche = ""; |
if (valeursRecherche != null) { |
Iterator<String> itCles = valeursRecherche.keySet().iterator(); |
while (itCles.hasNext()) { |
String cle = itCles.next(); |
String valeur = valeursRecherche.get(cle); |
if (valeur != "") { |
chaineRecherche += cle + ":=" + valeur + " "; |
} |
} |
} |
return chaineRecherche; |
} |
@Override |
public void setRecherchePrecedente() { |
recherchePrecedente.setText(getChaineRecherche()); |
} |
} |