Rev 1165 | Rev 1241 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
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;import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.GestionnaireEvenementAjoutMotCleImage;import org.tela_botanica.del.client.navigation.evenement.supressionmotcleimage.EvenementSuppressionMotCleImage;import org.tela_botanica.del.client.navigation.evenement.supressionmotcleimage.GestionnaireEvenementSuppressionMotCleImage;import org.tela_botanica.del.client.services.rest.MotsClesService;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;import com.google.gwt.user.client.ui.IsWidget;public class MotsClesImagePresenteur {List<MotCle> motsCles;List<String> motClesCelAFiltrer;FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur;MotsClesService motsClesService;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(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) {formulaireSaisieMotsClesPresenteur.go(vue.getZoneSaisieMotsCles());composite.add(vue.asWidget());}public void chargerMotsCles() {if(motsCles == null) {vue.viderZoneMotsCles();MotsClesService motsClesService = new MotsClesServiceConcret();motsClesService.getMotsClesImage(image.getIdImage(), new ListeMotsClesImageCallBack() {@Overridepublic void surRetour(List<MotCle> objetRetour) {motsCles = objetRetour;afficherMotsCles(objetRetour);}});}}public void gererEvemenements() {BusEvenementiel.getInstance().addHandler(EvenementAjoutMotCleImage.TYPE, new GestionnaireEvenementAjoutMotCleImage() {@Overridepublic void onAjoutMotCleImage(EvenementAjoutMotCleImage event) {if(image != null && image.getIdImage() != null && image.getIdImage().equals(event.getIdImage())) {motsCles = null;chargerMotsCles();formulaireSaisieMotsClesPresenteur.viderChampSaisie();}}});BusEvenementiel.getInstance().addHandler(EvenementSuppressionMotCleImage.TYPE, new GestionnaireEvenementSuppressionMotCleImage() {@Overridepublic void onSuppressionMotCleImage(EvenementSuppressionMotCleImage event) {if(image != null && image.getIdImage() != null && image.getIdImage().equals(event.getIdImage())) {motsCles = null;chargerMotsCles();}}});}public void afficherMotsCles(List<MotCle> listeMotsCles) {this.motsCles = listeMotsCles;Object[] tabMotsCles = motsCles.toArray();for (int i = 0; i < motsCles.toArray().length; i++) {MotCle motCleEnCours = (MotCle)tabMotsCles[i];MotClePresenteur mcP = new MotClePresenteur(new MotCleVue(motCleEnCours.getMotCle()), motCleEnCours.getMotCle(), motCleEnCours.getIdMotCle()) {public void surSuppression(String idMotCle) {if(Window.confirm(I18n.getVocabulary().indiceSupprimerMotCle()+" ?")) {motsClesService.supprimerMotCleImage(idMotCle, new SuppressionMotCleImageCallback() {@Overridepublic void surRetour(String objetRetour) {motsCles = null;chargerMotsCles();}});}};};mcP.go(vue.getZoneMotsCles());}}public void afficherMotsClesCel() {List<String> motsClesCelImages = image.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]));}}}