Rev 1292 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.image;import org.tela_botanica.client.image.ImageMediateur;import org.tela_botanica.client.interfaces.Rafraichissable;import com.google.gwt.user.client.ui.HTML;import com.gwtext.client.widgets.Panel;/*** Arbre des mots clés, qui est une vue rafraichissable, qui contient des mots* clés cochables et réorganisables à volonté** @author aurelien**/public class ImageMotsClesVue extends Panel implements Rafraichissable {/*** Une string permettant connaitre les mots clés cochés en cours séparés par* des virgules*/private String motsClesEnCours = "";private String[] tableauMotsClesEnCours = new String[0];/*** Tableau contenant les mots clés qui n'ont pas encore été jaouté à l'arbre* (sert au lazy rendering quand on reçoit des mots clés avant que le rendu* du conteneur n'ai été effectué)*/private String[] motsClesEnAttente = new String[0];private HTML motsClesAffiches = new HTML();/*** Constructeur sans paramètre (privé car interdit d'utilisation)*/@SuppressWarnings("unused")private ImageMotsClesVue() {super();}/*** Constructeur avec paramètre** @param im* le médiateur à associer*/public ImageMotsClesVue(ImageMediateur im) {// on crée le panelsuper("Mots clés");this.setHeight("100%");this.add(motsClesAffiches);motsClesAffiches.setHeight("100%");this.setBorder(false);this.setBodyBorder(false);this.setCollapsible(true);this.setTitleCollapse(true);}/*** Méthode héritée de l'interface rafraichissable** @param nouvelleDonnees* les nouvelles données pour l'objet* @param repandreRafraichissement* booleen qui dit si on doit répandre l'évenement*/@Overridepublic void rafraichir(Object nouvelleDonnees,boolean repandreRafraichissement) {// Si on reçoit un tableau de String (cas ou l'on séléectionne une// nouvelle image)if (nouvelleDonnees instanceof String[]) {// le tableau de String contient les id des mots clés associés à// l'image// on affiche les mots clés contenu dans le tableautableauMotsClesEnCours = (String[]) nouvelleDonnees;afficherMotsCles(tableauMotsClesEnCours);}}private void afficherMotsCles(String[] tableauMotsClesEnCours) {motsClesEnCours = "<ul class=\"liste_mots_cles\">";for (int i = 0; i < tableauMotsClesEnCours.length; i++) {if(!tableauMotsClesEnCours[i].trim().isEmpty()) {motsClesEnCours += "<li>"+tableauMotsClesEnCours[i]+"</li>";}}motsClesEnCours += "</ul>";motsClesAffiches.setHTML(motsClesEnCours);}}