Subversion Repositories eFlore/Applications.cel

Rev

Rev 1018 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1018 Rev 1292
1
package org.tela_botanica.client.vues.image;
1
package org.tela_botanica.client.vues.image;
2
 
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import com.google.gwt.user.client.ui.HTML;
5
import com.google.gwt.user.client.ui.HTML;
6
import com.gwtext.client.widgets.Panel;
6
import com.gwtext.client.widgets.Panel;
7
 
7
 
8
/**
8
/**
9
 * Arbre des mots clés, qui est une vue rafraichissable, qui contient des mots
9
 * Arbre des mots clés, qui est une vue rafraichissable, qui contient des mots
10
 * clés cochables et réorganisables à volonté
10
 * clés cochables et réorganisables à volonté
11
 * 
11
 * 
12
 * @author aurelien
12
 * @author aurelien
13
 * 
13
 * 
14
 */
14
 */
15
public class ImageMotsClesVue extends Panel implements Rafraichissable {
15
public class ImageMotsClesVue extends Panel implements Rafraichissable {
16
 
16
 
17
	/**
17
	/**
18
	 * Une string permettant connaitre les mots clés cochés en cours séparés par
18
	 * Une string permettant connaitre les mots clés cochés en cours séparés par
19
	 * des virgules
19
	 * des virgules
20
	 */
20
	 */
21
	private String motsClesEnCours = "";
21
	private String motsClesEnCours = "";
22
	
22
	
23
	private String[] tableauMotsClesEnCours = new String[0];
23
	private String[] tableauMotsClesEnCours = new String[0];
24
	/**
24
	/**
25
	 * Tableau contenant les mots clés qui n'ont pas encore été jaouté à l'arbre
25
	 * Tableau contenant les mots clés qui n'ont pas encore été jaouté à l'arbre
26
	 * (sert au lazy rendering quand on reçoit des mots clés avant que le rendu
26
	 * (sert au lazy rendering quand on reçoit des mots clés avant que le rendu
27
	 * du conteneur n'ai été effectué)
27
	 * du conteneur n'ai été effectué)
28
	 */
28
	 */
29
	private String[] motsClesEnAttente = new String[0];
29
	private String[] motsClesEnAttente = new String[0];
30
	
30
	
31
	private HTML motsClesAffiches = new HTML();
31
	private HTML motsClesAffiches = new HTML();
32
 
32
 
33
	/**
33
	/**
34
	 * Constructeur sans paramètre (privé car interdit d'utilisation)
34
	 * Constructeur sans paramètre (privé car interdit d'utilisation)
35
	 */
35
	 */
36
	@SuppressWarnings("unused")
36
	@SuppressWarnings("unused")
37
	private ImageMotsClesVue() {
37
	private ImageMotsClesVue() {
38
		super();
38
		super();
39
	}
39
	}
40
 
40
 
41
	/**
41
	/**
42
	 * Constructeur avec paramètre
42
	 * Constructeur avec paramètre
43
	 * 
43
	 * 
44
	 * @param im
44
	 * @param im
45
	 *            le médiateur à associer
45
	 *            le médiateur à associer
46
	 */
46
	 */
47
	public ImageMotsClesVue(ImageMediateur im) {
47
	public ImageMotsClesVue(ImageMediateur im) {
48
		// on crée le panel
48
		// on crée le panel
49
		super("Mots clés");
49
		super("Mots clés");
50
		this.setHeight("100%");
50
		this.setHeight("100%");
51
		this.add(motsClesAffiches);
51
		this.add(motsClesAffiches);
52
		motsClesAffiches.setHeight("100%");
52
		motsClesAffiches.setHeight("100%");
53
		
53
		
54
		this.setBorder(false);
54
		this.setBorder(false);
55
		this.setBodyBorder(false);
55
		this.setBodyBorder(false);
56
		this.setCollapsible(true);
56
		this.setCollapsible(true);
57
		this.setTitleCollapse(true);
57
		this.setTitleCollapse(true);
58
 
58
 
59
	}
59
	}
60
 
60
 
61
	/**
61
	/**
62
	 * Méthode héritée de l'interface rafraichissable
62
	 * Méthode héritée de l'interface rafraichissable
63
	 * 
63
	 * 
64
	 * @param nouvelleDonnees
64
	 * @param nouvelleDonnees
65
	 *            les nouvelles données pour l'objet
65
	 *            les nouvelles données pour l'objet
66
	 * @param repandreRafraichissement
66
	 * @param repandreRafraichissement
67
	 *            booleen qui dit si on doit répandre l'évenement
67
	 *            booleen qui dit si on doit répandre l'évenement
68
	 */
68
	 */
-
 
69
	@Override
69
	public void rafraichir(Object nouvelleDonnees,
70
	public void rafraichir(Object nouvelleDonnees,
70
			boolean repandreRafraichissement) {
71
			boolean repandreRafraichissement) {
71
		
72
		
72
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
73
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
73
		// nouvelle image)
74
		// nouvelle image)
74
		if (nouvelleDonnees instanceof String[]) {
75
		if (nouvelleDonnees instanceof String[]) {
75
 
76
 
76
				// le tableau de String contient les id des mots clés associés à
77
				// le tableau de String contient les id des mots clés associés à
77
				// l'image
78
				// l'image
78
				// on affiche les mots clés contenu dans le tableau
79
				// on affiche les mots clés contenu dans le tableau
79
				tableauMotsClesEnCours = (String[]) nouvelleDonnees;
80
				tableauMotsClesEnCours = (String[]) nouvelleDonnees;
80
				afficherMotsCles(tableauMotsClesEnCours);
81
				afficherMotsCles(tableauMotsClesEnCours);
81
		}
82
		}
82
	}
83
	}
83
 
84
 
84
	private void afficherMotsCles(String[] tableauMotsClesEnCours) {
85
	private void afficherMotsCles(String[] tableauMotsClesEnCours) {
85
		motsClesEnCours = "<ul class=\"liste_mots_cles\">"; 
86
		motsClesEnCours = "<ul class=\"liste_mots_cles\">"; 
86
		for (int i = 0; i < tableauMotsClesEnCours.length; i++) {
87
		for (int i = 0; i < tableauMotsClesEnCours.length; i++) {
87
			if(!tableauMotsClesEnCours[i].trim().isEmpty()) {
88
			if(!tableauMotsClesEnCours[i].trim().isEmpty()) {
88
				motsClesEnCours += "<li>"+tableauMotsClesEnCours[i]+"</li>";
89
				motsClesEnCours += "<li>"+tableauMotsClesEnCours[i]+"</li>";
89
			}
90
			}
90
		}
91
		}
91
		motsClesEnCours += "</ul>";
92
		motsClesEnCours += "</ul>";
92
		
93
		
93
		motsClesAffiches.setHTML(motsClesEnCours);
94
		motsClesAffiches.setHTML(motsClesEnCours);
94
	}
95
	}
95
}
96
}