/trunk/src/org/tela_botanica/del/client/vues/plateformedetermination/DeterminationPresenteur.java |
---|
23,9 → 23,12 |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesVue; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.Button; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
35,14 → 38,20 |
public abstract interface Vue extends IsWidget { |
public VerticalPanel getForum(); |
public VerticalPanel getDetailImageObservation(); |
public VerticalPanel getFormulaireRechercheEflore(); |
public VerticalPanel getVote(); |
public VerticalPanel getVote(); |
public VerticalPanel getBarreRepartition(); |
public Button getBoutonAjoutProposition(); |
} |
private Vue vue; |
BarreRepartitionVotePresenteur barreRepartitionVotePresenteur; |
public DeterminationPresenteur(Vue vue) { |
50,9 → 59,11 |
} |
public void go(HasWidgets composite) { |
if (CacheClient.getInstance().getImageCourante() != null) { |
new DetailImageObservationPresenteur(new DetailImageObservationVue()).go(vue.getDetailImageObservation()); |
// new DetailImageObservationPresenteur(new |
// DetailImageObservationVue()).go(vue.getDetailImageObservation()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), CacheClient.getInstance().getObservationCourante()).go(vue.getDetailImageObservation()); |
new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVote()); |
} |
new ForumPresenteur(new ForumVue()).go(vue.getForum()); |
63,7 → 74,7 |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
74,7 → 85,7 |
barreRepartitionVotePresenteur.afficherVotes(votesOrdonnes.get(0)); |
} |
} |
public void gererEvenements() { |
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
82,20 → 93,20 |
calculerEtAfficherVoteDeterminationPlusPopulaire(); |
} |
}); |
vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() { |
vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue())); |
} |
}); |
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() { |
@Override |
public void onAjoutDetermination(EvenementAjoutDetermination event) { |
if(fenetreModaleEstOuverte()) { |
if (fenetreModaleEstOuverte()) { |
fermerFenetreModale(); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/DetailImagePresenteur.java |
---|
1,6 → 1,7 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
8,15 → 9,13 |
public class DetailImagePresenteur extends Presenteur { |
public abstract interface Vue extends IsWidget { |
public abstract void setUrlImage(String urlImage); |
public abstract void setTexteAlternatif(String texteAlternatif); |
public abstract void chargerImage(String urlGrangFormat, String texteAlternatif); |
public abstract void chargerImage(Image image); |
} |
public Vue vue; |
public DetailImagePresenteur(String urlGrandFormat, String texteAlternatif, Vue vue) { |
public DetailImagePresenteur(Image image, Vue vue) { |
this.vue = vue; |
this.vue.chargerImage(urlGrandFormat, texteAlternatif); |
this.vue.chargerImage(image); |
} |
@Override |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/RechercheObservationsPresenteur.java |
---|
6,7 → 6,6 |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
import org.tela_botanica.del.client.composants.pagination.PaginationVue; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.ObservationServiceResultat; |
import org.tela_botanica.del.client.services.rest.ObservationService; |
14,53 → 13,49 |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.RootPanel; |
public class RechercheObservationsPresenteur extends Presenteur { |
private ObservationService serviceObs; |
public abstract interface Vue extends IsWidget { |
public HasWidgets getZoneRecherche(); |
public HasWidgets getZoneObservations(); |
public HasWidgets getZonePaginationHaut(); |
public HasWidgets getZonePaginationBas(); |
public void startChargement(); |
public void stopChargement(); |
public void nettoyer(); |
} |
private Vue vue; |
private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur; |
/** |
* Ceci sert à éviter que les deux présenteurs paginations fassent deux requêtes par changement de page |
* En attendant d'en discuter avec les autres |
*/ |
private boolean requeteEnCours = false; |
public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) { |
this.vue = vue; |
this.serviceObs = serviceObs; |
} |
public void go(HasWidgets composite) { |
if (composite == null) { |
composite = RootPanel.get(); |
} |
composite.add(vue.asWidget()); |
ajouterMoteurRechercheAvancee(); |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues( |
ObservationServiceResultat observationsRecues) { |
creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationsRecues); |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche()); |
afficherObservations(observationsRecues); |
} |
}; |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), 0, CacheClient.getInstance().getPasPagination(),callback); |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), 0, CacheClient.getInstance().getPasPagination(), callback); |
} |
protected void ajouterMoteurRechercheAvancee() { |
82,14 → 77,12 |
vue.startChargement(); |
vue.nettoyer(); |
ObservationsCallback callback = new ObservationsCallback() { |
@Override |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
afficherObservations(observationsRecues); |
requeteEnCours = false; |
public void surObservationsRecues(ObservationServiceResultat observationsRecues) { |
afficherObservations(observationsRecues); |
} |
}; |
requeteEnCours = true; |
serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback); |
} |
103,7 → 96,7 |
} |
private void creerWidgetPagination(int nbObservations) { |
this.paginationHautPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) { |
PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
115,25 → 108,15 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
@Override |
public void synchroniser() { |
paginationBasPresenteur.setPas(getPas()); |
paginationBasPresenteur.setPageCourante(getPageCourante()); |
paginationBasPresenteur.setNbPages(getNbPages()); |
paginationBasPresenteur.actualiserLiens(); |
} |
}; |
paginationHautPresenteur.go(vue.getZonePaginationHaut()); |
this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) { |
PaginationPresenteur paginationPresenteurBas = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if(!requeteEnCours) { |
chargerEtAfficherObservations(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante()); |
} |
chargerEtAfficherObservations(debut, fin); |
CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante()); |
} |
@Override |
140,16 → 123,10 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
@Override |
public void synchroniser() { |
paginationHautPresenteur.setPas(getPas()); |
paginationHautPresenteur.setPageCourante(getPageCourante()); |
paginationHautPresenteur.setNbPages(getNbPages()); |
paginationHautPresenteur.actualiserLiens(); |
} |
}; |
paginationBasPresenteur.go(vue.getZonePaginationBas()); |
paginationPresenteurHaut.go(vue.getZonePaginationHaut()); |
paginationPresenteurBas.go(vue.getZonePaginationBas()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/DetailImageVue.java |
---|
5,7 → 5,6 |
import com.google.gwt.uibinder.client.UiField; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Widget; |
27,19 → 26,18 |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public void chargerImage(org.tela_botanica.del.client.modeles.Image imageCourante) { |
setUrlImage(imageCourante.getUrlFormat("L")); |
setTitle(imageCourante.getUrlFormat("L")); |
setTexteAlternatif(imageCourante.getObservation().getAuteur() + " - " + imageCourante.getObservation().getNomRetenu()); |
} |
public void setUrlImage(String urlImage) { |
photoPrincipale.setUrl(urlImage); |
photoPrincipale.setUrl(urlImage); |
} |
@Override |
public void setTexteAlternatif(String texteAlternatif) { |
this.texteAlternatif.setText(texteAlternatif); |
this.texteAlternatif.setText(texteAlternatif); |
} |
@Override |
public void chargerImage(String urlGrandFormat, String texteAlternatif) { |
setTexteAlternatif(texteAlternatif); |
setUrlImage(urlGrandFormat); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.ui.xml |
---|
1,25 → 1,18 |
<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: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:HorizontalPanel styleName="{style.ligneObservation}"> |
<g:VerticalPanel styleName="{style.description}"> |
<g:Label ui:field="nomRetenu" styleName="sousTitre"/> |
<g:Label ui:field="famille" /> |
<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:VerticalPanel> |
<g:HTMLPanel styleName="{style.photos}"> |
<g:Image ui:field="photoPrincipale" styleName="{style.photoPrincipale}"/> |
<g:HTMLPanel ui:field="photos" styleName="{style.miniatures}"></g:HTMLPanel> |
</g:HTMLPanel> |
<ui:style src="observation.css" /> |
<g:HorizontalPanel> |
<g:HTMLPanel ui:field="imagesPanel" /> |
<g:HTMLPanel> |
<g:Label ui:field="lienDeterminer" styleName="lien {style.lienDetermination}" text="{constants.proposerSaDetermination}" /> |
<g:FlexTable styleName="{style.determination}" ui:field="tableauPropositions" /> |
<g:Label ui:field="lienDeterminer" styleName="lien {style.lienDetermination}" |
text="{constants.proposerSaDetermination}" /> |
<g:HTMLPanel ui:field="determinationsPanel" /> |
</g:HTMLPanel> |
</g:HorizontalPanel> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationPresenteur.java |
---|
1,51 → 1,35 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation; |
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationVue; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations.ObservationDeterminationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations.ObservationDeterminationVue; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesVue; |
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.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasText; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ObservationPresenteur extends Presenteur { |
public abstract interface Vue extends IsWidget { |
public void ajouterPhoto(String url, String titre, String alText, ClickHandler GestionnaireClic); |
public HasText getAuteur(); |
public HasText getDate(); |
public HasText getFamille(); |
public HasText getLocalite(); |
public HasText getMotsClefs(); |
public HasText getNomRetenu(); |
public HasText getNumNomenclatural(); |
public HasClickHandlers getPhotoPrincipale(); |
public HasWidgets getPhotos(); |
public void setUrlImagePrincipale(String url); |
public void setTitreImagePrincipale(String titre); |
public void setAltTextImagePrincipale(String altText); |
public String getUrlImagePrincipale(); |
public String getTitreImagePrincipale(); |
public String getAltTextImagePrincipale(); |
public void setTexteTableau(int ligne, int colonne, String texte); |
public void setElementTableau(int ligne, int colonne, IsWidget element); |
public HasClickHandlers getLienDeterminer(); |
public HasWidgets getDeterminationsPanel(); |
public HasWidgets getImagesPanel(); |
} |
private Vue vue; |
private Observation observation; |
57,66 → 41,12 |
} |
public void chargerObservation() { |
HasText auteur = vue.getAuteur(); |
auteur.setText(observation.getAuteur()); |
vue.getDate().setText(observation.getDate()); |
vue.getFamille().setText(observation.getFamille()); |
vue.getLocalite().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.getMotsClefs().setText(motsClesChaine); |
vue.getNomRetenu().setText(observation.getNomRetenu()); |
vue.getNumNomenclatural().setText(observation.getNumNomenclatural()); |
new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel()); |
new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionsDetermination()).go(vue.getDeterminationsPanel()); |
List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages(); |
gererEvenements(); |
if (images != null && images.size() > 0) { |
org.tela_botanica.del.client.modeles.Image imagePrincipale = images.get(0); |
vue.setUrlImagePrincipale(imagePrincipale.getUrl()); |
vue.setTitreImagePrincipale(imagePrincipale.getUrlFormat("L")); |
vue.setAltTextImagePrincipale(observation.getAuteur() + " - " + observation.getNomRetenu()); |
images.remove(0); |
} |
int nbImagesAffichees = 0; |
for (final org.tela_botanica.del.client.modeles.Image imageCourante : images) { |
nbImagesAffichees++; |
if (nbImagesAffichees < 5) { |
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(imageCourante.getUrlFormat("L"), imageCourante.getObservation().getAuteur()+ " - " + imageCourante.getObservation().getNomRetenu(), new DetailImageVue())); |
} |
}; |
vue.ajouterPhoto(imageCourante.getUrlFormat("CRX2S"), |
imageCourante.getUrlFormat("L"), |
observation.getAuteur() + " - " + observation.getNomRetenu(), |
gestionnaireClic); |
} |
} |
List<PropositionDetermination> propositions = observation.getPropositionsDetermination(); |
int i = 0; |
for (PropositionDetermination proposition : propositions) { |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
vue.setElementTableau(i, 0, panneau); |
vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size()) + " " +I18n.getVocabulary().commentaires()); |
i++; |
} |
gererEvenements(); |
// vue.propositions.setText(ch); |
} |
public void go(HasWidgets composite) { |
124,14 → 54,9 |
} |
protected void gererEvenements() { |
vue.getPhotoPrincipale().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(vue.getTitreImagePrincipale(), vue.getAltTextImagePrincipale(), new DetailImageVue())); |
} |
}); |
vue.getLienDeterminer().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
List<Image> images = observation.getImages(); |
if (images.size() > 0) { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationVue.java |
---|
1,15 → 1,10 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
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.FlexTable; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Image; |
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.Widget; |
23,113 → 18,32 |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected Label auteur, date, famille, localite, motsClefs, nomRetenu, numNomenclatural, lienDeterminer; |
protected Label lienDeterminer; |
@UiField |
protected FlexTable tableauPropositions; |
protected Panel determinationsPanel; |
public Label getAuteur() { |
return auteur; |
} |
public Label getDate() { |
return date; |
} |
public Label getFamille() { |
return famille; |
} |
public Label getLocalite() { |
return localite; |
} |
public Label getMotsClefs() { |
return motsClefs; |
} |
public Label getNomRetenu() { |
return nomRetenu; |
} |
public Label getNumNomenclatural() { |
return numNomenclatural; |
} |
public FlexTable getTableauPropositions() { |
return tableauPropositions; |
} |
public Image getPhotoPrincipale() { |
return photoPrincipale; |
} |
public Panel getPhotos() { |
return photos; |
} |
@UiField |
protected Image photoPrincipale; |
protected Panel imagesPanel; |
@UiField |
protected Panel photos; |
public ObservationVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public void setUrlImagePrincipale(String url) { |
photoPrincipale.setUrl(url); |
public HasClickHandlers getLienDeterminer() { |
return lienDeterminer; |
} |
@Override |
public void setTitreImagePrincipale(String titre) { |
photoPrincipale.setTitle(titre); |
public Panel getDeterminationsPanel() { |
return determinationsPanel; |
} |
@Override |
public void setAltTextImagePrincipale(String altText) { |
photoPrincipale.setAltText(altText); |
public void setDeterminationsPanel(Panel determinationsPanel) { |
this.determinationsPanel = determinationsPanel; |
} |
@Override |
public String getUrlImagePrincipale() { |
return photoPrincipale.getUrl(); |
public Panel getImagesPanel() { |
return imagesPanel; |
} |
@Override |
public String getTitreImagePrincipale() { |
return photoPrincipale.getTitle(); |
} |
@Override |
public String getAltTextImagePrincipale() { |
return photoPrincipale.getAltText(); |
} |
@Override |
public void setTexteTableau(int ligne, int colonne, String texte) { |
tableauPropositions.setText(ligne, colonne, texte); |
} |
@Override |
public void setElementTableau(int ligne, int colonne, IsWidget element) { |
tableauPropositions.setWidget(ligne, colonne, element.asWidget()); |
} |
@Override |
public void ajouterPhoto(String url, String titre, String alText, ClickHandler gestionnaireClic) { |
Image photo = new Image(); |
photo.setUrl(url); |
photo.setTitle(titre); |
photo.setAltText(alText); |
photo.addClickHandler(gestionnaireClic); |
getPhotos().add(photo); |
} |
@Override |
public HasClickHandlers getLienDeterminer() { |
return lienDeterminer; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationdeterminations/ObservationDeterminationVue.java |
---|
New file |
0,0 → 1,40 |
package org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations; |
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.FlexTable; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Widget; |
public class ObservationDeterminationVue extends Composite implements ObservationDeterminationPresenteur.Vue { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, ObservationDeterminationVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected FlexTable tableauPropositions; |
public FlexTable getTableauPropositions() { |
return tableauPropositions; |
} |
public ObservationDeterminationVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
@Override |
public void setTexteTableau(int ligne, int colonne, String texte) { |
tableauPropositions.setText(ligne, colonne, texte); |
} |
@Override |
public void setElementTableau(int ligne, int colonne, IsWidget element) { |
tableauPropositions.setWidget(ligne, colonne, element.asWidget()); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationdeterminations/observationdetermination.css |
---|
New file |
0,0 → 1,0 |
.determination {padding : 10px; margin:0 1px 5px 0; height:150px} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationdeterminations/ObservationDeterminationVue.ui.xml |
---|
New file |
0,0 → 1,15 |
<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="observationdetermination.css" /> |
<g:HorizontalPanel> |
<g:HTMLPanel> |
<g:FlexTable styleName="{style.determination}" ui:field="tableauPropositions" /> |
</g:HTMLPanel> |
</g:HorizontalPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationdeterminations/ObservationDeterminationPresenteur.java |
---|
New file |
0,0 → 1,51 |
package org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations; |
import java.util.List; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.PropositionDetermination; |
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.detail.DetailVoteObservationVue; |
import com.google.gwt.user.client.ui.HTMLPanel; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ObservationDeterminationPresenteur { |
public abstract interface Vue extends IsWidget { |
public void setTexteTableau(int ligne, int colonne, String texte); |
public void setElementTableau(int ligne, int colonne, IsWidget element); |
} |
private Vue vue; |
private List<PropositionDetermination> propositions; |
public ObservationDeterminationPresenteur(Vue vue, List<PropositionDetermination> propositions) { |
this.propositions = propositions; |
this.vue = vue; |
} |
public void chargerPropositions() { |
int i = 0; |
for (PropositionDetermination proposition : propositions) { |
HTMLPanel panneau = new HTMLPanel(""); |
DetailVoteObservationPresenteur presenteurVote = new DetailVoteObservationPresenteur(new DetailVoteObservationVue(), proposition); |
presenteurVote.go(panneau); |
vue.setElementTableau(i, 0, panneau); |
vue.setTexteTableau(i, 1, String.valueOf(proposition.getListeCommentaires().size()) + " " + I18n.getVocabulary().commentaires()); |
i++; |
} |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
chargerPropositions(); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationimages/observationimages.css |
---|
New file |
0,0 → 1,56 |
.photos { |
border: solid 1px #EEE; |
border-width: 0 1px 0 0; |
width: 350px; |
-moz-border-radius: 0px; |
padding: 10px; |
margin: 0 1px 5px 0; |
height: 170px |
} |
.photos img { |
float: left; |
padding: 2px; |
-moz-box-shadow: 2px 2px 2px #DDD; |
cursor: pointer; |
} |
.photoPrincipale { |
height: 300px; |
float: left; |
padding: 5px; |
margin-bottom: 15px; |
cursor: pointer |
} |
.miniatures img { |
height: 30px |
} |
.observateur td { |
font-size: 11px; |
white-space: nowrap |
} |
.date { |
} |
.nomRetenu { |
font-weight: bold |
} |
.dateObservation { |
} |
.groupeObservation img { |
-moz-box-shadow: 4px 4px 2px #AAA |
} |
.detailObservation { |
font-size: 11px; |
color: white; |
background: #333; |
opacity: 0.8; |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationimages/ObservationImagesVue.ui.xml |
---|
New file |
0,0 → 1,24 |
<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" /> |
<g:HTMLPanel> |
<g:VerticalPanel> |
<g:Image ui:field="photoPrincipale" /> |
<g:Label ui:field="nomRetenu" styleName="sousTitre" /> |
<g:Label ui:field="famille" /> |
<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:VerticalPanel> |
<g:HTMLPanel ui:field="photos"></g:HTMLPanel> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationimages/ObservationImagesPresenteur.java |
---|
New file |
0,0 → 1,79 |
package org.tela_botanica.del.client.vues.rechercheobservations.observationimages; |
import java.util.List; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.Observation; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImageVue; |
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.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class ObservationImagesPresenteur extends Presenteur { |
public abstract interface Vue extends IsWidget { |
public HasClickHandlers getPhotoPrincipale(); |
public HasWidgets getPhotos(); |
public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image); |
public void ajouterPhoto(Image image, ClickHandler gestionnaireClic); |
public void chargerInformationsObservation(Observation observation); |
} |
private Vue vue; |
private Observation observation; |
private Image imagePrincipale; |
public ObservationImagesPresenteur(Vue vue, Observation observation) { |
this.observation = observation; |
this.vue = vue; |
} |
public void chargerImagesObservation() { |
vue.chargerInformationsObservation(observation); |
List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages(); |
if (images != null && images.size() > 0) { |
imagePrincipale = images.get(0); |
vue.chargerImagePrincipale(imagePrincipale); |
} |
for (final org.tela_botanica.del.client.modeles.Image imageCourante : images) { |
if (imageCourante != imagePrincipale) { |
ClickHandler gestionnaireClic = new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(imageCourante, new DetailImageVue())); |
} |
}; |
vue.ajouterPhoto(imageCourante, gestionnaireClic); |
} |
} |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
chargerImagesObservation(); |
gererEvenements(); |
} |
protected void gererEvenements() { |
vue.getPhotoPrincipale().addClickHandler(new ClickHandler() { |
public void onClick(ClickEvent event) { |
ouvrirFenetreModale(new DetailImagePresenteur(imagePrincipale, new DetailImageVue())); |
} |
}); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheobservations/observationimages/ObservationImagesVue.java |
---|
New file |
0,0 → 1,108 |
package org.tela_botanica.del.client.vues.rechercheobservations.observationimages; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.ClickHandler; |
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.Image; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.Widget; |
public class ObservationImagesVue extends Composite implements ObservationImagesPresenteur.Vue { |
// Gestion d'UiBinder |
interface Binder extends UiBinder<Widget, ObservationImagesVue> { |
} |
private static Binder binder = GWT.create(Binder.class); |
@UiField |
protected Image photoPrincipale; |
@UiField |
protected Panel photos; |
@UiField |
protected Label auteur, date, famille, localite, motsClefs, nomRetenu, numNomenclatural; |
public ObservationImagesVue() { |
initWidget(binder.createAndBindUi(this)); |
} |
public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image) { |
setUrlImagePrincipale(image.getUrl()); |
setTitreImagePrincipale(image.getUrlFormat("L")); |
setAltTextImagePrincipale(image.getObservation().getAuteur() + " - " + image.getObservation().getNomRetenu()); |
} |
@Override |
public void ajouterPhoto(org.tela_botanica.del.client.modeles.Image imageCourante, ClickHandler gestionnaireClic) { |
Image photo = new Image(); |
photo.setUrl(imageCourante.getUrlFormat("CRX2S")); |
photo.setTitle(imageCourante.getUrlFormat("L")); |
photo.setAltText(imageCourante.getObservation().getAuteur() + " - " + imageCourante.getObservation().getNomRetenu()); |
photo.addClickHandler(gestionnaireClic); |
getPhotos().add(photo); |
} |
public void chargerInformationsObservation(Observation observation) { |
auteur.setText(observation.getAuteur()); |
nomRetenu.setText(observation.getNomRetenu()); |
famille.setText(observation.getFamille()); |
localite.setText(observation.getLocalite()); |
date.setText(observation.getDate()); |
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 += ", "; |
} |
} |
motsClefs.setText(motsClesChaine); |
numNomenclatural.setText(observation.getNumNomenclatural()); |
} |
public void setUrlImagePrincipale(String url) { |
photoPrincipale.setUrl(url); |
} |
public void setTitreImagePrincipale(String titre) { |
photoPrincipale.setTitle(titre); |
} |
public void setAltTextImagePrincipale(String altText) { |
photoPrincipale.setAltText(altText); |
} |
public String getUrlImagePrincipale() { |
return photoPrincipale.getUrl(); |
} |
public String getTitreImagePrincipale() { |
return photoPrincipale.getTitle(); |
} |
public String getAltTextImagePrincipale() { |
return photoPrincipale.getAltText(); |
} |
public Image getPhotoPrincipale() { |
return photoPrincipale; |
} |
public Panel getPhotos() { |
return photos; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
14,7 → 14,6 |
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.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Panel; |
23,26 → 22,35 |
public abstract interface Vue extends IsWidget { |
public void startChargement(); |
public void nettoyer(); |
public void afficherPanneauxObservation(List<Panel> panneauxImagesAffichees); |
public void creerPanneauxObservations(int size); |
public void stopChargement(); |
public List<Panel> getPanneauxImages(); |
public HasWidgets getPanneauPagination(); |
public HasWidgets getPanneauPaginationHaut(); |
} |
//new ResultatRechercheImageVue(); |
// new ResultatRechercheImageVue(); |
private Vue vue; |
private List<ImagePresenteur> ImagePresenteurs = new ArrayList<ImagePresenteur>(); |
private ImageService imageService; |
private PaginationPresenteur paginationHautPresenteur, paginationBasPresenteur; |
/** |
* Ceci sert à éviter que les deux présenteurs paginations fassent deux requêtes par changement de page |
* En attendant d'en discuter avec les autres |
* Ceci sert à éviter que les deux présenteurs paginations fassent deux |
* requêtes par changement de page En attendant d'en discuter avec les |
* autres |
*/ |
private boolean requeteEnCours = false; |
public ResultatRechercheImagePresenteur(ImageService imageService, Vue vue) { |
this.vue = vue; |
this.imageService = imageService; |
108,7 → 116,7 |
this.paginationBasPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if(!requeteEnCours) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
118,21 → 126,13 |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
} |
@Override |
public void synchroniser() { |
paginationHautPresenteur.setPas(getPas()); |
paginationHautPresenteur.setPageCourante(getPageCourante()); |
paginationHautPresenteur.setNbPages(getNbPages()); |
paginationHautPresenteur.actualiserLiens(); |
} |
}; |
this.paginationHautPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination()) { |
@Override |
public void changerPage(int debut, int fin) { |
if(!requeteEnCours) { |
if (!requeteEnCours) { |
chargerEtAfficherImages(debut, fin); |
} |
CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante()); |
143,13 → 143,6 |
CacheClient.getInstance().setPasPagination(pas); |
} |
@Override |
public void synchroniser() { |
paginationBasPresenteur.setPas(getPas()); |
paginationBasPresenteur.setPageCourante(getPageCourante()); |
paginationBasPresenteur.setNbPages(getNbPages()); |
paginationBasPresenteur.actualiserLiens(); |
} |
}; |
this.paginationBasPresenteur.go(vue.getPanneauPagination()); |
this.paginationHautPresenteur.go(vue.getPanneauPaginationHaut()); |