/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/MoteurRechercheImageVue.ui.xml |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/MoteurRechercheImage.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/MoteurRechercheImageVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImageVue.ui.xml |
---|
New file |
0,0 → 1,26 |
<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="rechercheImage.css" /> |
<g:HTMLPanel> |
<g:HTMLPanel styleName="{style.observationsRecherche}"> |
<g:Label text="{constants.rechercherImage}" styleName="titre" /> |
<g:HorizontalPanel styleName="{style.moteurRecherche}"> |
<g:TextBox ui:field="nomEspece" text="apifera"/> |
<g:Button text="{constants.rechercherTaxon}" ui:field="boutonChercher" /> |
<g:Label ui:field="protocoleLabel" text="{constants.protocole}" styleName="{style.labelProtocole}"/> |
<g:ListBox ui:field="listeProtocoles" /> |
</g:HorizontalPanel> |
<g:Label text="{constants.entrerMotClef}" styleName="gris" /> |
</g:HTMLPanel> |
<g:HTMLPanel ui:field="panneauResultats" /> |
</g:HTMLPanel> |
</ui:UiBinder> |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java |
---|
8,7 → 8,6 |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur; |
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; |
25,16 → 24,22 |
} |
public void go(HasWidgets composite) { |
composite.add(vue); |
createPaginationWidget(CacheClient.getInstance().getImages().size()); |
actualiserImagesEtMoyenneVoteProtocole(0, CacheClient.getInstance().getPasPagination()); |
reactualiserImagesEtMoyenneVoteProtocole(0, CacheClient.getInstance().getPaginationPasRechercheImage()); |
} |
private void actualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
private void reactualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) { |
// Remise à zéro du panneau d'affichage et des composants |
vue.nettoyer(); |
// TODO : créer une méthode globale pour l'application ? voir |
// superclasse présenteur ? |
// FIXME : ne s'affiche pas |
vue.startChargement(); |
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>(); |
List<Image> imagesAffichees = CacheClient.getInstance().getSousListeImages(premier, dernier); |
vue.creerPanneauxObservations(imagesAffichees.size()); |
42,7 → 47,7 |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Image image : imagesAffichees) { |
Panel imagePanel = panelIterator.next(); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue()); |
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant()); |
imagePresenteur.go(imagePanel); |
panneauxImagesAffichees.add(imagePanel); |
observationPresenteurs.add(imagePresenteur); |
63,17 → 68,17 |
private void createPaginationWidget(int nbImages) { |
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPasPagination()) { |
PaginationPresenteur pagination = new PaginationPresenteur(nbImages, CacheClient.getInstance().getPaginationPasRechercheImage()) { |
@Override |
public void changerPage(int debut, int fin) { |
showImagePanels(debut, fin); |
CacheClient.getInstance().setPageCouranteRecherche(getPageCourante()); |
CacheClient.getInstance().setNumPageRechercheImage(getPageCourante()); |
} |
@Override |
public void actualiserPasCache(int pas) { |
CacheClient.getInstance().setPasPagination(pas); |
CacheClient.getInstance().setPaginationPasRerchercheImage(pas); |
} |
}; |
pagination.go(vue.getPanneauPagination()); |
80,7 → 85,7 |
} |
public void showImagePanels(int first, int last) { |
actualiserImagesEtMoyenneVoteProtocole(first, last); |
reactualiserImagesEtMoyenneVoteProtocole(first, last); |
} |
public ResultatRechercheImageVue getView() { |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImagePresenteur.java |
---|
9,38 → 9,18 |
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.utils.MockDatasource; |
import org.tela_botanica.del.client.vues.rechercheimages.MoteurRechercheImage.Vue; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.vote.MoyenneVotePresenteur; |
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.HasChangeHandlers; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.event.dom.client.HasKeyPressHandlers; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.VerticalPanel; |
public class ImagePresenteur extends Presenteur { |
public interface Vue extends IsWidget { |
public abstract void loadImage(Image image); |
public abstract HasClickHandlers getImagePrincipale(); |
public abstract HasClickHandlers getEnSavoirPlus(); |
public abstract HasClickHandlers getAjoutValidation(); |
public abstract void cacherZoneCache(); |
public abstract void afficherZoneCache(); |
public abstract HasWidgets getZoneVoter(); |
} |
private Vue vue; |
private final MockDatasource validationService = MockDatasource.getInstance(); |
private final Image image; |
private boolean detailsOpen = false; |
47,14 → 27,15 |
private Protocole protocole; |
public ImagePresenteur(Image image, Protocole protocole, Vue vue) { |
public ImagePresenteur(Image image, Protocole protocole) { |
super(new ImageVue()); |
this.image = image; |
this.protocole = protocole; |
this.vue = vue; |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
ImageVue vue = (ImageVue) this.getVue(); |
composite.add(vue); |
vue.loadImage(image); |
loadValidationData(); |
gererEvenements(); |
61,20 → 42,24 |
} |
private void loadValidationData() { |
ImageVue vue = (ImageVue) this.getVue(); |
List<VoteProtocole> observationValidationDatas = validationService.getVoteByImageAndProtocol(image.getIdImage(), protocole.getNom()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.getZoneVoter()); |
new MoyenneVotePresenteur(observationValidationDatas).go(vue.voter); |
} |
@Override |
protected void gererEvenements() { |
vue.getImagePrincipale().addClickHandler(new ClickHandler() { |
ImageVue vue = (ImageVue) this.getVue(); |
vue.imagePrincipale.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
com.google.gwt.user.client.ui.Image photo = (com.google.gwt.user.client.ui.Image) event.getSource(); |
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText(), new DetailImageVue())); |
ouvrirFenetreModale(new DetailImagePresenteur(photo.getTitle(), photo.getAltText())); |
} |
}); |
vue.getEnSavoirPlus().addClickHandler(new ClickHandler() { |
vue.enSavoirPlus.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
87,7 → 72,7 |
} |
}); |
vue.getAjoutValidation().addClickHandler(new ClickHandler() { |
vue.ajoutValidation.addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
97,14 → 82,24 |
} |
public void cacherDetails() { |
vue.cacherZoneCache(); |
ImageVue vue = (ImageVue) this.getVue(); |
VerticalPanel zoneCache = vue.zoneCache; |
Label enSavoirPlus = vue.enSavoirPlus; |
zoneCache.setVisible(false); |
detailsOpen = false; |
} |
public void afficherDetails() { |
ImageVue vue = (ImageVue) this.getVue(); |
ResultatRechercheImagePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
vue.afficherZoneCache(); |
VerticalPanel zoneCache = vue.zoneCache; |
Label enSavoirPlus = vue.enSavoirPlus; |
zoneCache.setVisible(true); |
detailsOpen = true; |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/images/ImageVue.java |
---|
1,11 → 1,9 |
package org.tela_botanica.del.client.vues.rechercheimages.resultats.images; |
import com.google.gwt.core.client.GWT; |
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.HasWidgets; |
import com.google.gwt.user.client.ui.HorizontalPanel; |
import com.google.gwt.user.client.ui.Image; |
import com.google.gwt.user.client.ui.Label; |
12,7 → 10,7 |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class ImageVue extends Composite implements ImagePresenteur.Vue { |
public class ImageVue extends Composite { |
// Annotation can be used to change the name of the associated xml file |
// @UiTemplate("ObservationVue.ui.xml") |
41,20 → 39,8 |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public HasWidgets getZoneVoter() { |
return voter; |
} |
public void cacherZoneCache() { |
protected void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
zoneCache.setVisible(false); |
} |
public void afficherZoneCache() { |
zoneCache.setVisible(true); |
} |
public void loadImage(org.tela_botanica.del.client.modeles.Image image) { |
zoneCache.setVisible(false); |
nomEspece.setText(image.getObservation().getSpecies()); |
nomAuteur.setText(image.getObservation().getAuteur()); |
70,19 → 56,4 |
} |
@Override |
public HasClickHandlers getImagePrincipale() { |
return imagePrincipale; |
} |
@Override |
public HasClickHandlers getEnSavoirPlus() { |
return enSavoirPlus; |
} |
@Override |
public HasClickHandlers getAjoutValidation() { |
return ajoutValidation; |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImagePresenteur.java |
---|
New file |
0,0 → 1,112 |
package org.tela_botanica.del.client.vues.rechercheimages; |
import java.util.List; |
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.Image; |
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.navigation.evenement.rechercheimage.EvenementRechercheImage; |
import org.tela_botanica.del.client.services.rest.ImageService; |
import org.tela_botanica.del.client.services.rest.ProtocoleService; |
import org.tela_botanica.del.client.utils.MockDatasource; |
import com.google.gwt.event.dom.client.ChangeEvent; |
import com.google.gwt.event.dom.client.ChangeHandler; |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasChangeHandlers; |
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.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class RechercheImagePresenteur { |
public interface Vue extends IsWidget { |
public abstract void ajouterProtocole(String protocole); |
public abstract void selectionnerProtocole(int index); |
public abstract HasClickHandlers getBoutonChercher(); |
public abstract HasKeyPressHandlers getChampEspece(); |
public abstract HasChangeHandlers getListeProtocoles(); |
public abstract HasWidgets getZoneResultats(); |
} |
private Vue vue; |
private final ImageService imageService = MockDatasource.getInstance(); |
private final ProtocoleService protocoleService = MockDatasource.getInstance(); |
private String protocoleParDefaut = Protocole.IDENTIFICATION_AUTOMATIQUE; |
private List<Protocole> protocoles; |
/** |
* Constructeur |
* */ |
public RechercheImagePresenteur(Vue vue) { |
this.vue = vue; |
if (CacheClient.getInstance().getProtocoleCourant() == null) { |
CacheClient.getInstance().setProtocoleCourant(protocoleService.getProtocole(protocoleParDefaut)); |
} |
} |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
gererEvenements(); |
chargerProtocoles(); |
} |
private void chargerProtocoles() { |
protocoles = protocoleService.getProtocoles(); |
for (Protocole protocole : protocoles) { |
vue.ajouterProtocole(protocole.getNom()); |
} |
vue.selectionnerProtocole(protocoles.indexOf(CacheClient.getInstance().getProtocoleCourant())); |
} |
public void gererEvenements() { |
vue.getBoutonChercher().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
chargerImages(0, CacheClient.getInstance().getPaginationPasRechercheImage()); |
} |
}); |
vue.getChampEspece().addKeyPressHandler(new KeyPressHandler() { |
public void onKeyPress(KeyPressEvent event) { |
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { |
chargerImages(0, CacheClient.getInstance().getPaginationPasRechercheImage()); |
} |
} |
}); |
vue.getListeProtocoles().addChangeHandler(new ChangeHandler() { |
@Override |
public void onChange(ChangeEvent event) { |
Protocole protocoleCourant = (Protocole) event.getSource(); |
EvenementChangementProtocole evenement = new EvenementChangementProtocole(protocoleCourant); |
BusEvenementiel.getInstance().fireEvent(evenement); |
} |
}); |
} |
private void chargerImages(int debut, int fin) { |
List<Image> imagesFromDatabase = imageService.getImages(debut, fin); |
EvenementRechercheImage evenementRechercheImage = new EvenementRechercheImage(imagesFromDatabase); |
BusEvenementiel.getInstance().fireEvent(evenementRechercheImage); |
} |
public HasWidgets getZoneResultats() { |
return vue.getZoneResultats(); |
} |
} |
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/RechercheImageVue.java |
---|
New file |
0,0 → 1,82 |
package org.tela_botanica.del.client.vues.rechercheimages; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.event.dom.client.HasChangeHandlers; |
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.ui.Button; |
import com.google.gwt.user.client.ui.Composite; |
import com.google.gwt.user.client.ui.FlowPanel; |
import com.google.gwt.user.client.ui.Label; |
import com.google.gwt.user.client.ui.ListBox; |
import com.google.gwt.user.client.ui.Panel; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
public class RechercheImageVue extends Composite implements RechercheImagePresenteur.Vue { |
private final VerticalPanel mainPanel = new VerticalPanel(); |
private final Panel panneauChargement = new FlowPanel(); |
interface MyUiBinder extends UiBinder<Widget, RechercheImageVue> {} |
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); |
@UiField TextBox nomEspece; |
@UiField Panel panneauResultats; |
@UiField Button boutonChercher; |
@UiField Label protocoleLabel; |
@UiField ListBox listeProtocoles; |
// Constructeur |
public RechercheImageVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
nomEspece.setFocus(true); |
} |
public Panel getPanneauChargement() { |
return panneauChargement; |
} |
public void setListeProtocoles(ListBox listeProtocoles) { |
this.listeProtocoles = listeProtocoles; |
} |
public void setProtocoleLabel(Label protocoleLabel) { |
this.protocoleLabel = protocoleLabel; |
} |
// Cette méthode est public car appelé dans GestionnaireHistorique |
public Panel getZoneResultats() { |
return panneauResultats; |
} |
public void setPanneauResultats(Panel panneauResultats) { |
this.panneauResultats = panneauResultats; |
} |
public HasClickHandlers getBoutonChercher() { |
return boutonChercher; |
} |
public HasKeyPressHandlers getChampEspece() { |
return nomEspece; |
} |
public HasChangeHandlers getListeProtocoles() { |
return listeProtocoles; |
} |
public void ajouterProtocole(String protocole) { |
listeProtocoles.addItem(protocole); |
} |
public void selectionnerProtocole(int index) { |
listeProtocoles.setSelectedIndex(index); |
} |
} |
/trunk/src/org/tela_botanica/del/client/gestionhistorique/GestionnaireHistorique.java |
---|
4,8 → 4,8 |
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEfloreVue; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur; |
import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationVue; |
import org.tela_botanica.del.client.vues.rechercheimages.MoteurRechercheImage; |
import org.tela_botanica.del.client.vues.rechercheimages.MoteurRechercheImageVue; |
import org.tela_botanica.del.client.vues.rechercheimages.RechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheimages.RechercheImageVue; |
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.RechercheObservationsPresenteur; |
import org.tela_botanica.del.client.vues.rechercheobservations.RechercheObservationsVue; |
32,10 → 32,10 |
new PresenteurInitial().go(RootPanel.get("navigation")); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_RECHERCHE_IMAGES)) { |
RootPanel.get("contenu").clear(); |
new MoteurRechercheImage(new MoteurRechercheImageVue()).go(RootPanel.get("contenu")); |
new RechercheImagePresenteur(new RechercheImageVue()).go(RootPanel.get("contenu")); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES)) { |
RootPanel.get("contenu").clear(); |
MoteurRechercheImage presenteur = new MoteurRechercheImage(new MoteurRechercheImageVue()); |
RechercheImagePresenteur presenteur = new RechercheImagePresenteur(new RechercheImageVue()); |
presenteur.go(RootPanel.get("contenu")); |
new ResultatRechercheImagePresenteur().go(presenteur.getZoneResultats()); |
} else if (event.getValue().equals(ConstantesNavigation.PAGE_VALIDATION)) { |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/BusEvenementiel.java |
---|
56,7 → 56,7 |
@Override |
public void onRechercheImage(EvenementRechercheImage event) { |
doRechercheImage(); |
doRechercheImage(event.getImages()); |
} |
}); |
82,7 → 82,8 |
History.fireCurrentHistoryState(); |
} |
private void doRechercheImage() { |
private void doRechercheImage(List<Image> images) { |
CacheClient.getInstance().setImages(images); |
History.newItem(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES, true); |
History.fireCurrentHistoryState(); |
} |
/trunk/src/org/tela_botanica/del/client/navigation/evenement/rechercheimage/EvenementRechercheImage.java |
---|
9,8 → 9,10 |
public class EvenementRechercheImage extends GwtEvent<GestionnaireEvenementRechercheImage> { |
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheImage> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheImage>(); |
private List<Image> images; |
public EvenementRechercheImage() { |
public EvenementRechercheImage(List<Image> images) { |
this.images = images; |
} |
@Override |
23,4 → 25,12 |
return TYPE; |
} |
public List<Image> getImages() { |
return images; |
} |
public void setImages(List<Image> images) { |
this.images = images; |
} |
} |
/trunk/src/org/tela_botanica/del/client/cache/CacheClient.java |
---|
14,11 → 14,7 |
private Protocole protocoleCourant; |
private List<Image> images; |
private int numPageRechercheImage = 0; |
private int pasPagination = 10; |
private int pageCouranteRecherche = 0; |
private String especeRecherche = ""; |
private int paginationPasRechercheImage = 10; |
private static CacheClient instance; |
private CacheClient() { |
52,30 → 48,17 |
return numPageRechercheImage; |
} |
//Pour la recherche : |
public int getPasPagination() { |
return pasPagination; |
public void setNumPageRechercheImage(int numPageRechercheImage) { |
this.numPageRechercheImage = numPageRechercheImage; |
} |
public void setPasPagination(int pasPagination) { |
this.pasPagination = pasPagination; |
public int getPaginationPasRechercheImage() { |
return paginationPasRechercheImage; |
} |
public String getEspeceRecherche() { |
return especeRecherche; |
public void setPaginationPasRerchercheImage(int paginationPas) { |
this.paginationPasRechercheImage = paginationPas; |
} |
public void setEspeceRecherche(String especeRecherche) { |
this.especeRecherche = especeRecherche; |
} |
public void setPageCouranteRecherche(int pageCouranteRecherche) { |
this.pageCouranteRecherche = pageCouranteRecherche; |
} |
public int getPageCouranteRecherche() { |
return this.pageCouranteRecherche; |
} |
public List<Image> getImages() { |
return images; |