Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 321 → Rev 322

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