Subversion Repositories eFlore/Applications.cel

Rev

Rev 140 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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