New file |
0,0 → 1,95 |
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 panel |
super("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 |
*/ |
public 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 tableau |
tableauMotsClesEnCours = (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); |
} |
} |