Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
199 david 1
package org.tela_botanica.client.vues.observation.indicateurs;
113 aurelien 2
 
3
import org.tela_botanica.client.interfaces.Filtrable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.observation.ObservationMediateur;
6
 
7
import com.google.gwt.user.client.Event;
8
import com.google.gwt.user.client.ui.HTML;
9
import com.gwtext.client.core.Ext;
10
import com.gwtext.client.core.ExtElement;
140 aurelien 11
import com.gwtext.client.widgets.Component;
12
import com.gwtext.client.widgets.Container;
113 aurelien 13
import com.gwtext.client.widgets.Window;
140 aurelien 14
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
113 aurelien 15
 
16
public class NuageMotsClesVue extends Window implements Filtrable, Rafraichissable {
17
 
18
	private ObservationMediateur oMediateur = null ;
19
 
20
	private Object[][] listeMotsPesee = null;
21
 
22
	private String motsAChercher = "" ;
23
 
24
	private int nbMotsClesMax = 1 ;
25
 
140 aurelien 26
	private boolean nuageCharge = false ;
27
 
113 aurelien 28
	public NuageMotsClesVue(ObservationMediateur om) {
29
		super("Nuage de mots clés");
30
		setCls("fenmotcles");
31
		oMediateur = om ;
32
		setWidth(200);
33
		this.setCloseAction(CLOSE);
140 aurelien 34
		//oMediateur.obtenirNuageMotsCles(this);
35
 
36
		this.addListener(new ContainerListenerAdapter() {
37
 
38
			@Override
39
			public void onAfterLayout(Container self) {
40
				if(!nuageCharge) {
41
					masquerChargement();
42
				}
43
 
44
			}
45
 
46
			@Override
47
			public void onRender(Component component) {
48
 
49
			}
50
 
51
			@Override
52
			public void onShow(Component component) {
53
				// TODO Auto-generated method stub
54
 
55
			}
56
 
57
		});
113 aurelien 58
	}
59
 
60
 
61
	public boolean renvoyerEtatFiltre() {
62
		// TODO Auto-generated method stub
63
		return false;
64
	}
65
 
66
 
67
	public String renvoyerNomFiltre() {
68
		// TODO Auto-generated method stub
69
		return null;
70
	}
71
 
72
 
73
	public String[] renvoyerValeursAFiltrer() {
74
		// TODO Auto-generated method stub
75
		return null;
76
	}
77
 
78
 
79
	public void valider() {
80
		// TODO Auto-generated method stub
81
 
82
	}
83
 
84
 
85
	public void rafraichir(Object nouvelleDonnees,
86
			boolean repandreRaffraichissement) {
87
 
88
		if(nouvelleDonnees instanceof Integer) {
89
			nbMotsClesMax = (Integer)nouvelleDonnees;
90
		}
91
 
92
		if(nouvelleDonnees instanceof Object[][]) {
93
 
94
			listeMotsPesee = (Object[][])nouvelleDonnees ;
95
			construireNuage();
96
		}
97
	}
98
 
99
	private void construireNuage() {
100
 
101
		String contenu = "<ul class=\"nuagetag\">" ;
102
 
103
		for(int i = 0; i<listeMotsPesee.length; i++) {
104
 
105
			String classeMotCle = "motcletaille"+calculerPoids((Integer)listeMotsPesee[i][1]) ;
106
			contenu += "<li class=\""+classeMotCle+"\">";
107
			contenu += (String)listeMotsPesee[i][0];
108
			contenu += "</li>";
109
		}
110
 
111
		contenu += "</ul>" ;
112
 
113
		HTML contenuHTML = new HTML(contenu) {
114
			public void onBrowserEvent(Event e) {
115
 
140 aurelien 116
				//oMediateur.ajouterMotCleRecherche(e.getTarget().getInnerHTML());
113 aurelien 117
			}
118
		};
119
 
120
		contenuHTML.sinkEvents(Event.ONCLICK);
121
 
122
		this.clear();
123
		this.add(contenuHTML);
124
 
125
		doLayout();
140 aurelien 126
		nuageCharge = true;
127
		demasquerChargement();
113 aurelien 128
	}
129
 
130
	private int calculerPoids(int poidMot) {
131
 
132
		int poids = (poidMot*10)/nbMotsClesMax;
133
		if(poids < 1) {
134
			return 1;
135
		}
136
 
137
		return poids;
138
	}
139
 
140
	/**
141
	 * Recherche l'élement actuellement affiché et affiche son message de chargement
142
	 */
143
	public void masquerChargement()
144
	{
145
			ExtElement masked = Ext.get(getId()) ;
146
 
147
 
148
			if (masked!=null) {
149
				masked.mask("Chargement") ;
150
			}
151
 
152
	}
153
 
154
	/**
155
	 * Recherche l'élement actuellement affiché et retire son message de chargement si l'était affiché
156
	 */
157
	public void demasquerChargement()
158
	{
159
			ExtElement masked = Ext.get(getId()) ;
160
 
161
			if (masked!=null) {
162
					masked.unmask() ;
163
			}
164
	}
165
 
166
}