/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationRecherchePresenteur.java |
---|
1,5 → 1,7 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
10,6 → 12,7 |
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.Panel; |
public class ObservationRecherchePresenteur { |
16,6 → 19,7 |
private final MockDatasource observationService = MockDatasource.getInstance(); |
private final ObservationRechercheVue vue = new ObservationRechercheVue(); |
private static ObservationRecherchePresenteur instance; |
private List<ObservationPresenteur> observationPresenteurs = new ArrayList<ObservationPresenteur>(); |
private List<Observation> observations; |
public ObservationRecherchePresenteur() { |
63,8 → 67,16 |
// superclasse présenteur ? |
// FIXME : ne s'affiche pas |
vue.startChargement(); |
vue.chargerPanneauxObservation(observations); |
vue.creerPanneauxObservation(observations); |
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator(); |
for (Observation observation : observations) { |
Panel imagePanel = panelIterator.next(); |
ObservationPresenteur observationPresenteur = new ObservationPresenteur(observation); |
observationPresenteur.go(imagePanel); |
observationPresenteurs.add(observationPresenteur); |
} |
vue.afficherPanneauxImage(0, vue.getNbImagesPerPage()); |
createPaginationWidget(observations.size()); |
71,6 → 83,14 |
vue.stopChargement(); |
} |
public void fermerTousPanneauxDetailsObservations(){ |
for(ObservationPresenteur observationPresenteur: observationPresenteurs){ |
if(observationPresenteur.isDetailsOpen()){ |
observationPresenteur.cacherDetails(); |
} |
} |
} |
private void createPaginationWidget(int nbImages) { |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationRechercheVue.java |
---|
1,7 → 1,6 |
package org.tela_botanica.del.client.vues.rechercheobservations; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import org.tela_botanica.del.client.modeles.Observation; |
73,20 → 72,13 |
panneauxImages.clear(); |
} |
protected void chargerPanneauxObservation(List<Observation> observations) { |
protected void creerPanneauxObservation(List<Observation> observations) { |
List<Panel> imagePanels = new ArrayList<Panel>(); |
for (int i = 0; i < observations.size(); i++) { |
Panel imagePanel = new VerticalPanel(); |
imagePanels.add(imagePanel); |
panneauxImages.add(imagePanel); |
} |
Iterator<Panel> panelIterator = imagePanels.iterator(); |
for (Observation observation : observations) { |
Panel imagePanel = panelIterator.next(); |
new ObservationPresenteur(observation).go(imagePanel); |
} |
} |
protected void afficherPanneauxImage(int first, int last) { |
149,4 → 141,8 |
return mainPanel; |
} |
public List<Panel> getPanneauxImages() { |
return panneauxImages; |
} |
} |
/src/org/tela_botanica/del/client/vues/rechercheobservations/ObservationPresenteur.java |
---|
49,16 → 49,13 |
@Override |
public void onClick(ClickEvent event) { |
// FIXME : Cacher les précédentes fenêtres affichées |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(!zoneCache.isVisible()); |
if (!zoneCache.isVisible()) { |
enSavoirPlus.setStyleName("boutonPlus"); |
if (!detailsOpen) { |
afficherDetails(); |
} else { |
enSavoirPlus.setStyleName("boutonMoins"); |
cacherDetails(); |
} |
} |
}); |
70,4 → 67,34 |
} |
}); |
} |
public void cacherDetails() { |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(false); |
enSavoirPlus.setStyleName("boutonPlus"); |
detailsOpen=false; |
} |
public void afficherDetails() { |
ObservationRecherchePresenteur.getInstance().fermerTousPanneauxDetailsObservations(); |
VerticalPanel zoneCache = vue.getZoneCache(); |
Label enSavoirPlus = vue.getEnSavoirPlus(); |
zoneCache.setVisible(true); |
enSavoirPlus.setStyleName("boutonMoins"); |
detailsOpen=true; |
} |
public boolean isDetailsOpen() { |
return detailsOpen; |
} |
public ObservationVue getVue() { |
return vue; |
} |
} |