1,10 → 1,15 |
package org.tela_botanica.del.client.composants.motsclesimages; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
|
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur; |
import org.tela_botanica.del.client.composants.motsclesimages.motcle.MotClePresenteur; |
import org.tela_botanica.del.client.composants.motsclesimages.motcle.MotCleVue; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.i18n.I18n; |
import org.tela_botanica.del.client.modeles.Image; |
import org.tela_botanica.del.client.modeles.MotCle; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage; |
15,6 → 20,7 |
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret; |
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack; |
import org.tela_botanica.del.client.services.rest.async.SuppressionMotCleImageCallback; |
import org.tela_botanica.del.client.utils.StringUtils; |
|
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
23,23 → 29,29 |
public class MotsClesImagePresenteur { |
|
List<MotCle> motsCles; |
List<String> motClesCelAFiltrer; |
FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur; |
MotsClesService motsClesService; |
String idImage; |
Image image; |
|
public interface Vue extends IsWidget { |
public HasWidgets getZoneMotsCles(); |
HasWidgets getZoneSaisieMotsCles(); |
void viderZoneMotsCles(); |
HasWidgets getZoneMotsClesCel(); |
public void afficherMotsClesCel(List<String> motsClesCelImages, List<String> motClesCelAFiltrer); |
} |
|
private Vue vue; |
|
public MotsClesImagePresenteur(MotsClesService motsClesService, FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur, Vue vue) { |
public MotsClesImagePresenteur(Image image ,MotsClesService motsClesService, FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur, Vue vue) { |
this.formulaireSaisieMotsClesPresenteur = formulaireSaisieMotsClesPresenteur; |
this.vue = vue; |
this.motsClesService = motsClesService; |
this.image = image; |
initialiserMotsClesCelAFiltrer(); |
gererEvemenements(); |
afficherMotsClesCel(); |
} |
|
public void go(HasWidgets composite) { |
47,15 → 59,14 |
composite.add(vue.asWidget()); |
} |
|
public void chargerMotsCles(String idImage) { |
this.idImage = idImage; |
public void chargerMotsCles() { |
if(motsCles == null) { |
vue.viderZoneMotsCles(); |
MotsClesService motsClesService = new MotsClesServiceConcret(); |
motsClesService.getMotsClesImage(idImage, new ListeMotsClesImageCallBack() { |
motsClesService.getMotsClesImage(image.getIdImage(), new ListeMotsClesImageCallBack() { |
@Override |
public void surRetour(List<MotCle> objetRetour) { |
motsCles = objetRetour; |
vue.viderZoneMotsCles(); |
afficherMotsCles(objetRetour); |
} |
}); |
66,9 → 77,9 |
BusEvenementiel.getInstance().addHandler(EvenementAjoutMotCleImage.TYPE, new GestionnaireEvenementAjoutMotCleImage() { |
@Override |
public void onAjoutMotCleImage(EvenementAjoutMotCleImage event) { |
if(idImage != null && idImage.equals(event.getIdImage())) { |
if(image != null && image.getIdImage() != null && image.getIdImage().equals(event.getIdImage())) { |
motsCles = null; |
chargerMotsCles(idImage); |
chargerMotsCles(); |
formulaireSaisieMotsClesPresenteur.viderChampSaisie(); |
} |
} |
77,9 → 88,9 |
BusEvenementiel.getInstance().addHandler(EvenementSuppressionMotCleImage.TYPE, new GestionnaireEvenementSuppressionMotCleImage() { |
@Override |
public void onSuppressionMotCleImage(EvenementSuppressionMotCleImage event) { |
if(idImage != null && idImage.equals(event.getIdImage())) { |
if(image != null && image.getIdImage() != null && image.getIdImage().equals(event.getIdImage())) { |
motsCles = null; |
chargerMotsCles(idImage); |
chargerMotsCles(); |
} |
} |
}); |
97,7 → 108,7 |
@Override |
public void surRetour(String objetRetour) { |
motsCles = null; |
chargerMotsCles(idImage); |
chargerMotsCles(); |
} |
}); |
} |
106,8 → 117,24 |
mcP.go(vue.getZoneMotsCles()); |
} |
} |
|
public void afficherMotsClesCel() { |
List<String> motsClesCelImages = image.getMotsClefs(); |
motsClesCelImages.addAll(image.getObservation().getMotsClefs()); |
vue.afficherMotsClesCel(motsClesCelImages, motClesCelAFiltrer); |
} |
|
public void focuserChampsSaisie() { |
formulaireSaisieMotsClesPresenteur.focuserChampSaisie(); |
} |
|
private void initialiserMotsClesCelAFiltrer() { |
Config config = new Config(); |
String chaineMotsClesCelAFiltrer = config.getInfo("motsclescel"); |
this.motClesCelAFiltrer = new ArrayList<String>(); |
String[] tabMotsClesCelAFiltrer = chaineMotsClesCelAFiltrer.split(","); |
for (int i = 0; i < tabMotsClesCelAFiltrer.length; i++) { |
this.motClesCelAFiltrer.add(StringUtils.normaliser(tabMotsClesCelAFiltrer[i])); |
} |
} |
} |