/trunk/src/org/tela_botanica/del/client/utils/UtilitairesServiceResultat.java |
---|
12,12 → 12,9 |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.dev.js.rhino.ObjToIntMap.Iterator; |
import com.google.gwt.i18n.client.DateTimeFormat; |
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.Window; |
public class UtilitairesServiceResultat { |
63,7 → 60,7 |
return observation; |
} |
private static String getValeurOuVide(JSONObject objet, String index) { |
public static String getValeurOuVide(JSONObject objet, String index) { |
return (objet.get(index).isString() != null) ? objet.get(index).isString().stringValue() : ""; |
} |
/trunk/src/org/tela_botanica/del/client/utils/MockDatasource.java |
---|
25,6 → 25,7 |
import org.tela_botanica.del.client.services.rest.VoteProtocoleService; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
public class MockDatasource implements ObservationService, ImageService, ProtocoleService, VoteProtocoleService, PropositionDeterminationService { |
93,11 → 94,11 |
Iterator<String> auteurs = auteurObs.keySet().iterator(); |
Protocole protocol1 = new Protocole(); |
protocol1.setNom(Protocole.ESTHETISME); |
protocol1.setNom("esthétique"); |
protocol1.setId(0); |
Protocole protocol2 = new Protocole(); |
protocol2.setNom(Protocole.IDENTIFICATION_AUTOMATIQUE); |
protocol2.setNom("capitalisation de scan de feuilles"); |
protocol2.setId(1); |
protocoles.add(protocol1); |
302,17 → 303,6 |
List<VoteProtocole> voteProtocolesLocal = new ArrayList<VoteProtocole>(); |
// for (Image image : images) { |
// if (image.getIdImage().equals(idImage)) { |
// for (VoteProtocole voteProtocole : image.getVoteProtocoles()) { |
// if (voteProtocole.getProtocole().getNom().equals(protocolName)) { |
// voteProtocolesLocal.add(voteProtocole); |
// } |
// } |
// } |
// |
// } |
int rand = (int) (Math.random() * 5); |
for (int i = 0; i < rand; i++) { |
VoteProtocole voteProtocole = new VoteProtocole(); |
336,34 → 326,6 |
/* |
* (non-Javadoc) |
* |
* @see |
* org.tela_botanica.del.client.utils.ObservationService#getProtocole(java |
* .lang.String) |
*/ |
@Override |
public Protocole getProtocole(String nomProtocole) { |
for (Protocole protocole : protocoles) { |
if (protocole.getNom().equals(nomProtocole)) { |
return protocole; |
} |
} |
return null; |
} |
/* |
* (non-Javadoc) |
* |
* @see |
* org.tela_botanica.del.client.utils.ObservationService#getProtocoles() |
*/ |
@Override |
public List<Protocole> getProtocoles() { |
return protocoles; |
} |
/* |
* (non-Javadoc) |
* |
* @see org.tela_botanica.del.client.utils.ObservationService#saveVote(org. |
* tela_botanica.del.client.modeles.VoteProtocole) |
*/ |
414,4 → 376,16 |
} |
@Override |
public void getProtocoles(ProtocolesCallback pc) { |
// TODO Auto-generated method stub |
} |
@Override |
public void getProtocole(String nomProtocole) { |
// TODO Auto-generated method stub |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
9,13 → 9,15 |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.ModeTri; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole; |
import org.tela_botanica.del.client.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue; |
import com.google.gwt.event.dom.client.ChangeEvent; |
28,6 → 30,7 |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.ListBox; |
public class ResultatRechercheImagePresenteur { |
public interface Vue extends IsWidget { |
public void startChargement(); |
58,7 → 61,7 |
public HTMLPanel getImageTable(); |
public String getNomProtocolSelectionne(); |
public String getNomProtocoleSelectionne(); |
public int getIdProtocoleSelectionne(); |
66,7 → 69,7 |
public HasChangeHandlers getListeProtocoles(); |
public void ajouterProtocole(String protocole); |
public void ajouterProtocole(String nomProtocole, String idProtocole); |
public void selectionnerProtocole(int index); |
92,9 → 95,8 |
} |
private Vue vue; |
private ImageService imageService; |
private final ProtocoleService protocoleService = MockDatasource.getInstance(); |
private final ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
private List<Protocole> protocoles; |
private String protocoleParDefaut = Protocole.ESTHETISME; |
private ModeTri triCourantVote = ModeTri.TRI_ASCENDANT; |
private ModeTri triCourantDate = ModeTri.TRI_DESCENDANT; |
208,14 → 210,29 |
} |
private void chargerProtocoles() { |
// TODO: appeler un véritable service web qui nous permette de charger les protocoles |
// à partir de la base de données (prévoir un cache pour ne pas les charger à chaque fois) |
protocoles = protocoleService.getProtocoles(); |
// test pour ne pas charger les protocoles déjà chargés |
// TODO: faire un systeme de cache gérés par les web service eux même |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
protocoles = protocolesRecus.getProtocoles(); |
remplirListeProtocole(protocoles); |
} |
}); |
} else { |
protocoles = CacheClient.getInstance().getListeProtocoles(); |
remplirListeProtocole(CacheClient.getInstance().getListeProtocoles()); |
} |
} |
private void remplirListeProtocole(List<Protocole> protocoles) { |
for (Protocole protocole : protocoles) { |
vue.ajouterProtocole(protocole.getNom()); |
vue.ajouterProtocole(protocole.getNom(), protocole.getId()+""); |
} |
vue.selectionnerProtocole(protocoles.indexOf(CacheClient.getInstance().getProtocoleCourant())); |
if(CacheClient.getInstance().getProtocoleCourant() == null) { |
vue.selectionnerProtocole(0); |
} |
} |
public void rechercherImagesEtCreerWidgetPagination() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImageVue.java |
---|
152,8 → 152,8 |
return listeProtocoles; |
} |
public void ajouterProtocole(String protocole) { |
listeProtocoles.addItem(protocole); |
public void ajouterProtocole(String NomProtocole, String idProtocole) { |
listeProtocoles.addItem(NomProtocole, idProtocole); |
} |
public void selectionnerProtocole(int index) { |
161,13 → 161,13 |
} |
@Override |
public String getNomProtocolSelectionne() { |
return listeProtocoles.getValue(listeProtocoles.getSelectedIndex()); |
public String getNomProtocoleSelectionne() { |
return listeProtocoles.getItemText((listeProtocoles.getSelectedIndex())); |
} |
@Override |
public int getIdProtocoleSelectionne() { |
return listeProtocoles.getSelectedIndex(); |
return Integer.parseInt(listeProtocoles.getValue((listeProtocoles.getSelectedIndex()))); |
} |
@Override |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/moteur/MoteurRechercheImagePresenteur.java |
---|
1,23 → 1,16 |
package org.tela_botanica.del.client.vues.rechercheimages.moteur; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur; |
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue; |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import org.tela_botanica.del.client.services.rest.ImageServiceConcret; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImageVue; |
import com.google.gwt.event.dom.client.ChangeEvent; |
import com.google.gwt.event.dom.client.ChangeHandler; |
import com.google.gwt.event.dom.client.HasChangeHandlers; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
24,29 → 17,33 |
public class MoteurRechercheImagePresenteur { |
public interface Vue extends IsWidget { |
public HasWidgets getZoneResultats(); |
public HasWidgets getZoneRecherche(); |
public void ajouterVue(HasWidgets composite); |
} |
private Vue vue; |
private final ProtocoleService protocoleService = MockDatasource.getInstance(); |
private String protocoleParDefaut = Protocole.ESTHETISME; |
private final ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
/** |
* Constructeur |
* */ |
public MoteurRechercheImagePresenteur(Vue vue) { |
this.vue = vue; |
//TODO: le code ci dessous sert à ne pas recharger les protocoles |
// à chaque fois, voir si on peut le factoriser quelque part |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
CacheClient.getInstance().setProtocoleCourant(protocoleService.getProtocole(protocoleParDefaut)); |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles()); |
CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0)); |
} |
}); |
} else { |
CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0)); |
} |
} |
} |
55,7 → 52,6 |
chargerMoteurRechercheAvancee(); |
} |
public void chargerMoteurRechercheAvancee() { |
MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) { |
public void lancerRecherche() { |
/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
18,6 → 18,7 |
import org.tela_botanica.del.client.modeles.ModeRecherche; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire; |
28,7 → 29,8 |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue; |
62,7 → 64,7 |
FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur; |
private ProtocoleService protocoleService = MockDatasource.getInstance(); |
private ProtocoleService protocoleService = new ProtocoleServiceConcret(); |
public DeterminationPresenteur(Vue vue) { |
this.vue = vue; |
74,7 → 76,7 |
new MetadonneesPresenteur(new MetadonneesEnLigneVue(), CacheClient.getInstance().getObservationCourante(), ModeRecherche.MODE_OBSERVATION).go(vue.getMetadonnees()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation()); |
ajouterLignesVotesProtocole(); |
chargerEtAjouterLignesVotesProtocole(); |
} |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore()); |
86,10 → 88,24 |
gererEvenements(); |
} |
private void ajouterLignesVotesProtocole() { |
List<Protocole> tousLesProtocoles = protocoleService.getProtocoles(); |
for (Iterator<Protocole> iterator = tousLesProtocoles.iterator(); iterator.hasNext();) { |
private void chargerEtAjouterLignesVotesProtocole() { |
if(CacheClient.getInstance().getListeProtocoles() == null) { |
protocoleService.getProtocoles(new ProtocolesCallback() { |
@Override |
public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) { |
List<Protocole> listeProtocoles = protocolesRecus.getProtocoles(); |
ajouterLignesVotesProtocole(listeProtocoles); |
} |
}); |
} else { |
List<Protocole> listeProtocoles = CacheClient.getInstance().getListeProtocoles(); |
ajouterLignesVotesProtocole(listeProtocoles); |
} |
} |
private void ajouterLignesVotesProtocole(List<Protocole> listeProtocoles) { |
for (Iterator<Protocole> iterator = listeProtocoles.iterator(); iterator.hasNext();) { |
Protocole protocole = iterator.next(); |
LigneProtocolePresenteur presenteurLigneProtocole = new LigneProtocolePresenteur(protocole, new LigneProtocoleVue()); |
presenteurLigneProtocole.go(vue.getNouvelleLigneProtocole()); |
/trunk/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
1,14 → 1,17 |
package org.tela_botanica.del.client.cache; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.Utilisateur; |
import com.google.gwt.user.client.Window; |
public class CacheClient { |
private List<Protocole> listeProtocoles; |
private Observation observationCourante; |
private Image imageCourante; |
private String taxonPourRechercheEflore; |
99,6 → 102,14 |
public void setImageCourante(Image imageCourante) { |
this.imageCourante = imageCourante; |
} |
public void setListeProtocoles(List<Protocole> listeProtocole) { |
this.listeProtocoles = listeProtocole; |
} |
public List<Protocole> getListeProtocoles() { |
return this.listeProtocoles; |
} |
public Protocole getProtocoleCourant() { |
return protocoleCourant; |
/trunk/src/org/tela_botanica/del/client/services/rest/async/ProtocolesCallback.java |
---|
New file |
0,0 → 1,35 |
package org.tela_botanica.del.client.services.rest.async; |
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat; |
import com.google.gwt.http.client.Request; |
import com.google.gwt.http.client.RequestCallback; |
import com.google.gwt.http.client.Response; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.user.client.Window; |
public abstract class ProtocolesCallback implements RequestCallback { |
public ProtocolesCallback() { |
} |
@Override |
public void onResponseReceived(Request request, Response response) { |
ProtocoleServiceResultat protocolesRecus = convertirReponseVersListeProtocoles(response); |
surProtocolesRecus(protocolesRecus); |
} |
@Override |
public void onError(Request request, Throwable exception) { |
Window.alert(exception.getMessage()); |
} |
public abstract void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus); |
private ProtocoleServiceResultat convertirReponseVersListeProtocoles(Response reponse) { |
ProtocoleServiceResultat resultat = new ProtocoleServiceResultat(JSONParser.parseStrict(reponse.getText())); |
return resultat; |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ProtocoleServiceConcret.java |
---|
New file |
0,0 → 1,36 |
package org.tela_botanica.del.client.services.rest; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import com.google.gwt.http.client.RequestBuilder; |
public class ProtocoleServiceConcret implements ProtocoleService { |
private String baseUrl; |
public ProtocoleServiceConcret() { |
Config config = new Config(); |
this.baseUrl = config.getServiceBaseUrl(); |
} |
public ProtocoleServiceConcret(Config config) { |
this.baseUrl = config.getServiceBaseUrl(); |
} |
@Override |
public void getProtocole(String nomProtocole) { |
//TODO: voir si l'on aura besoin de ne retourner qu'un seul protocole |
} |
@Override |
public void getProtocoles(ProtocolesCallback callback) { |
//TODO: inventer un système de cache car sinon c'est chargé à fois qu'on accède à la partie |
// recherche image |
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, baseUrl + "protocoles"); |
try { |
rb.sendRequest(null, callback); |
} catch (Exception e) { |
// TODO: handle exception |
} |
} |
} |
/trunk/src/org/tela_botanica/del/client/services/rest/ProtocoleService.java |
---|
1,13 → 1,11 |
package org.tela_botanica.del.client.services.rest; |
import java.util.List; |
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback; |
import org.tela_botanica.del.client.modeles.Protocole; |
public interface ProtocoleService { |
public Protocole getProtocole(String nomProtocole); |
public void getProtocole(String nomProtocole); |
public List<Protocole> getProtocoles(); |
public void getProtocoles(ProtocolesCallback pc); |
} |
/trunk/src/org/tela_botanica/del/client/modeles/Protocole.java |
---|
1,12 → 1,10 |
package org.tela_botanica.del.client.modeles; |
public class Protocole { |
private int id; |
private String nom; |
public static String ESTHETISME = "ESTHETISME"; |
public static String IDENTIFICATION_AUTOMATIQUE = "IDENTIFICATION_AUTOMATIQUE"; |
private String description; |
public int getId() { |
return id; |
23,5 → 21,13 |
public void setNom(String nom) { |
this.nom = nom; |
} |
public String getDescription() { |
return description; |
} |
public void setDescription(String description) { |
this.description = description; |
} |
} |
/trunk/src/org/tela_botanica/del/client/modeles/ProtocoleServiceResultat.java |
---|
New file |
0,0 → 1,44 |
package org.tela_botanica.del.client.modeles; |
import java.util.ArrayList; |
import java.util.List; |
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.json.client.JSONValue; |
public class ProtocoleServiceResultat { |
private List<Protocole> protocoles; |
public ProtocoleServiceResultat(List<Protocole> protocoles) { |
// constructeur utilisable plus tard quand on aura implenté un systeme de cache |
this.protocoles = protocoles; |
} |
public ProtocoleServiceResultat(JSONValue retourJson) { |
protocoles = new ArrayList<Protocole>(); |
JSONObject tableauProto = retourJson.isObject().get("resultats").isObject(); |
if(tableauProto != null) { |
java.util.Iterator<String> it = tableauProto.keySet().iterator(); |
while (it.hasNext()) { |
JSONObject protocoleJSON = tableauProto.get(it.next()).isObject(); |
Protocole protocole = new Protocole(); |
String idProtocole = UtilitairesServiceResultat.getValeurOuVide(protocoleJSON, "protocole.id"); |
protocole.setId(Integer.parseInt(idProtocole)); |
protocole.setNom(UtilitairesServiceResultat.getValeurOuVide(protocoleJSON, "protocole.intitule")); |
protocole.setDescription(UtilitairesServiceResultat.getValeurOuVide(protocoleJSON, "protocole.descriptif")); |
protocoles.add(protocole); |
} |
} |
} |
public List<Protocole> getProtocoles() { |
return protocoles; |
} |
public void setProtocoles(List<Protocole> protocoles) { |
this.protocoles = protocoles; |
} |
} |
/trunk/src/org/tela_botanica/del/test/composants/votes/MoyenneVotePresenteurTest.java |
---|
11,7 → 11,6 |
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Protocole; |
import org.tela_botanica.del.client.modeles.VoteProtocole; |
import com.google.gwt.user.client.ui.HasWidgets; |
29,11 → 28,11 |
CacheClient.getInstance().getUtilisateur().setId(0+""); |
Protocole protocol1 = new Protocole(); |
protocol1.setNom(Protocole.ESTHETISME); |
protocol1.setNom("esthétique"); |
protocol1.setId(0); |
Protocole protocol2 = new Protocole(); |
protocol2.setNom(Protocole.IDENTIFICATION_AUTOMATIQUE); |
protocol2.setNom("capitalisation de scan de feuilles"); |
protocol2.setId(1); |
tousLesProtocoles.add(protocol1); |