/src/org/tela_botanica/del/client/utils/MockDatasource.java |
---|
188,6 → 188,10 |
pourcentagesConfiance.add(I18n.getVocabulary().confiance_sur_cent()); |
} |
public List<Observation> getObservations(HashMap<String, String> champsRecherche) { |
return getObservations(); |
} |
public List<Observation> getObservations() { |
return observations; |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.ui.xml |
---|
60,5 → 60,6 |
<g:HTMLPanel styleName="nettoyage" /> |
</g:HTMLPanel> |
<g:Label ui:field="recherchePrecedente" styleName="{style.recherchePrecedente}"></g:Label> |
<g:HTMLPanel ui:field="zoneObservations" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheobservations/observation.css |
---|
New file |
0,0 → 1,3 |
.description {border:solid 1px #333; width:30%; float:left; -moz-border-radius: 10px 0 0 10px; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 5px 5px 0; height:200px} |
.photos {border:solid 1px #333; width:30%; float:left; -moz-border-radius: 0px; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 5px 5px 0; height:200px} |
.determination {border:solid 1px #333; width:30%; float:left; -moz-border-radius: 0 10px 10px 0; padding : 10px; -moz-box-shadow: 5px 5px 5px #DDD; margin:0 5px 5px 0; height:200px} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java |
---|
2,8 → 2,11 |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
17,6 → 20,8 |
public class RechercheObservationsPresenteur extends Presenteur { |
private List<Observation> observations; |
public RechercheObservationsPresenteur() { |
super(new RechercheObservationsVue()); |
} |
27,6 → 32,10 |
} |
composite.add(this.getVue()); |
handleEvents(); |
// On commence par afficher la totalité des observations |
chercherObservations(null); |
afficherObservations(); |
} |
protected void handleEvents() { |
58,13 → 67,15 |
vue.boutonRecherche.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
vue.boutonRechercheAvancee.addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
}); |
72,39 → 83,73 |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
lancerRecherche(); |
chercherObservations(collecterFormulaire()); |
afficherObservations(); |
} |
} |
}); |
} |
// Lancer la recherche |
public void lancerRecherche() { |
// Gestion de la recherche d'observations : |
public HashMap<String, String> collecterFormulaire() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
HashMap<String, String> champsRecherche = new HashMap<String, String>(); |
if (!vue.recherchePrincipale.getText().equals("")) { |
champsRecherche.put("search", vue.recherchePrincipale.getText()); |
} |
if (!vue.departement.getText().equals("")) { |
champsRecherche.put("dept", vue.departement.getText()); |
} |
if (!vue.commune.getText().equals("")) { |
champsRecherche.put("com", vue.commune.getText()); |
} |
if (!vue.taxon.getText().equals("")) { |
champsRecherche.put("taxon", vue.taxon.getText()); |
} |
if (!vue.famille.getText().equals("")) { |
champsRecherche.put("fam", vue.famille.getText()); |
} |
if (!vue.genre.getText().equals("")) { |
champsRecherche.put("gen", vue.genre.getText()); |
} |
if (!vue.tag.getText().equals("")) { |
champsRecherche.put("tag", vue.tag.getText()); |
} |
if (!vue.motCle.getText().equals("")) { |
champsRecherche.put("motCle", vue.motCle.getText()); |
} |
if (!vue.auteur.getText().equals("")) { |
champsRecherche.put("auteur", vue.auteur.getText()); |
} |
if (!vue.date.getText().equals("")) { |
champsRecherche.put("date", vue.date.getText()); |
} |
return champsRecherche; |
} |
public void chercherObservations(HashMap<String, String> champsRecherche) { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
// Masquer la recherche Avancée |
vue.rechercheAvancee.setVisible(false); |
this.observations = MockDatasource.getInstance().getObservations(champsRecherche); |
vue.recherchePrecedente.setText(getChaineRecherche(champsRecherche)); |
} |
// Collecter les valeurs du formulaire |
HashMap<String, String> valeursRecherche = new HashMap<String, String>(); |
valeursRecherche.put("search", vue.recherchePrincipale.getText()); |
valeursRecherche.put("dept", vue.departement.getText()); |
valeursRecherche.put("com", vue.commune.getText()); |
valeursRecherche.put("taxon", vue.taxon.getText()); |
valeursRecherche.put("fam", vue.famille.getText()); |
valeursRecherche.put("gen", vue.genre.getText()); |
valeursRecherche.put("tag", vue.tag.getText()); |
valeursRecherche.put("motCle", vue.motCle.getText()); |
valeursRecherche.put("auteur", vue.auteur.getText()); |
valeursRecherche.put("date", vue.date.getText()); |
public void afficherObservations() { |
RechercheObservationsVue vue = (RechercheObservationsVue) getVue(); |
vue.recherchePrecedente.setText(getChaineRecherche(valeursRecherche)); |
for (Observation observation : observations) { |
ObservationPresenteur presenteur = new ObservationPresenteur(observation); |
presenteur.go(vue.zoneObservations); |
} |
} |
private String getChaineRecherche(HashMap<String, String> valeursRecherche) { |
String chaineRecherche = ""; |
if (valeursRecherche != null) { |
Iterator<String> itCles = valeursRecherche.keySet().iterator(); |
String chaineRecherche = ""; |
while (itCles.hasNext()) { |
String cle = itCles.next(); |
String valeur = valeursRecherche.get(cle); |
112,6 → 157,7 |
chaineRecherche += cle + ":=" + valeur + " "; |
} |
} |
} |
return chaineRecherche; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.ui.xml |
---|
New file |
0,0 → 1,28 |
<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="observation.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel styleName="{style.description}"> |
<g:Label text="Description / Métadonnées" styleName="sousTitre"/> |
<g:VerticalPanel><g:Label ui:field="nomRetenu" styleName="titre"/><g:HTMLPanel>(</g:HTMLPanel><g:Label ui:field="famille" /><g:HTMLPanel>)</g:HTMLPanel></g:VerticalPanel> |
<g:Label ui:field="auteur" /> - <g:Label ui:field="date" /> |
<g:Label ui:field="localite" /> |
<g:Label ui:field="motsClefs" /> |
<g:Label ui:field="numNomenclatural" /> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.photos}"> |
<g:Label text="Photos" styleName="titre"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="{style.determination}"> |
<g:Label text="Aide à la détermination" styleName="titre"/> |
</g:HTMLPanel> |
<g:HTMLPanel styleName="nettoyage" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsVue.java |
---|
31,6 → 31,9 |
@UiField |
protected Panel rechercheAvancee; |
@UiField |
protected Panel zoneObservations; |
// Constructeur de la vue |
public RechercheObservationsVue() { |
initWidget(binder.createAndBindUi(this)); |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationPresenteur.java |
---|
New file |
0,0 → 1,53 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.user.client.ui.HasWidgets; |
public class ObservationPresenteur extends Presenteur { |
private Observation observation; |
public ObservationPresenteur(Observation observation) { |
super(new ObservationVue()); |
this.observation = observation; |
chargerObservation(); |
} |
public void chargerObservation() { |
ObservationVue vue = (ObservationVue) this.getVue(); |
vue.auteur.setText(observation.getAuteur()); |
vue.date.setText(observation.getDate()); |
vue.famille.setText(observation.getFamille()); |
vue.localite.setText(observation.getLocalite()); |
List<String> motsCles = observation.getMotsClefs(); |
Iterator<String> itMotsCles = motsCles.iterator(); |
String motsClesChaine = ""; |
while (itMotsCles.hasNext()) { |
String motCle = itMotsCles.next(); |
motsClesChaine += motCle; |
if (itMotsCles.hasNext()) { |
motsClesChaine += ", "; |
} |
} |
vue.motsClefs.setText(motsClesChaine); |
vue.nomRetenu.setText(observation.getNomRetenu()); |
vue.numNomenclatural.setText(observation.getNumNomenclatural()); |
} |
public void go(HasWidgets composite) { |
composite.add(this.getVue()); |
} |
protected void handleEvents() { |
// TODO Auto-generated method stub |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.java |
---|
New file |
0,0 → 1,24 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.uibinder.client.UiBinder; |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
public class ObservationVue extends Composite { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, ObservationVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected Label auteur, date, famille, localite, motsClefs, nomRetenu, numNomenclatural; |
public ObservationVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
} |