New file |
0,0 → 1,172 |
package org.tela_botanica.client.vues; |
|
import org.tela_botanica.client.interfaces.Filtrable; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationMediateur; |
|
import com.google.gwt.core.client.JavaScriptObject; |
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.ui.ClickListener; |
import com.google.gwt.user.client.ui.HTML; |
import com.gwtext.client.core.Ajax; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.widgets.BoxComponent; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.Window; |
import com.gwtext.client.widgets.event.ContainerListener; |
import com.gwtext.client.widgets.event.ContainerListenerAdapter; |
|
public class NuageMotsClesVue extends Window implements Filtrable, Rafraichissable { |
|
private ObservationMediateur oMediateur = null ; |
|
private Object[][] listeMotsPesee = null; |
|
private String motsAChercher = "" ; |
|
private int nbMotsClesMax = 1 ; |
|
private boolean nuageCharge = false ; |
|
public NuageMotsClesVue(ObservationMediateur om) { |
super("Nuage de mots clés"); |
setCls("fenmotcles"); |
oMediateur = om ; |
setWidth(200); |
this.setCloseAction(CLOSE); |
//oMediateur.obtenirNuageMotsCles(this); |
|
this.addListener(new ContainerListenerAdapter() { |
|
@Override |
public void onAfterLayout(Container self) { |
if(!nuageCharge) { |
masquerChargement(); |
} |
|
} |
|
@Override |
public void onRender(Component component) { |
|
} |
|
@Override |
public void onShow(Component component) { |
// TODO Auto-generated method stub |
|
} |
|
}); |
} |
|
|
public boolean renvoyerEtatFiltre() { |
// TODO Auto-generated method stub |
return false; |
} |
|
|
public String renvoyerNomFiltre() { |
// TODO Auto-generated method stub |
return null; |
} |
|
|
public String[] renvoyerValeursAFiltrer() { |
// TODO Auto-generated method stub |
return null; |
} |
|
|
public void valider() { |
// TODO Auto-generated method stub |
|
} |
|
|
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
|
if(nouvelleDonnees instanceof Integer) { |
nbMotsClesMax = (Integer)nouvelleDonnees; |
} |
|
if(nouvelleDonnees instanceof Object[][]) { |
|
listeMotsPesee = (Object[][])nouvelleDonnees ; |
construireNuage(); |
} |
} |
|
private void construireNuage() { |
|
String contenu = "<ul class=\"nuagetag\">" ; |
|
for(int i = 0; i<listeMotsPesee.length; i++) { |
|
String classeMotCle = "motcletaille"+calculerPoids((Integer)listeMotsPesee[i][1]) ; |
contenu += "<li class=\""+classeMotCle+"\">"; |
contenu += (String)listeMotsPesee[i][0]; |
contenu += "</li>"; |
} |
|
contenu += "</ul>" ; |
|
HTML contenuHTML = new HTML(contenu) { |
public void onBrowserEvent(Event e) { |
|
//oMediateur.ajouterMotCleRecherche(e.getTarget().getInnerHTML()); |
} |
}; |
|
contenuHTML.sinkEvents(Event.ONCLICK); |
|
this.clear(); |
this.add(contenuHTML); |
|
doLayout(); |
nuageCharge = true; |
demasquerChargement(); |
} |
|
private int calculerPoids(int poidMot) { |
|
int poids = (poidMot*10)/nbMotsClesMax; |
if(poids < 1) { |
return 1; |
} |
|
return poids; |
} |
|
/** |
* Recherche l'élement actuellement affiché et affiche son message de chargement |
*/ |
public void masquerChargement() |
{ |
ExtElement masked = Ext.get(getId()) ; |
|
|
if (masked!=null) { |
masked.mask("Chargement") ; |
} |
|
} |
|
/** |
* Recherche l'élement actuellement affiché et retire son message de chargement si l'était affiché |
*/ |
public void demasquerChargement() |
{ |
ExtElement masked = Ext.get(getId()) ; |
|
if (masked!=null) { |
masked.unmask() ; |
} |
} |
|
} |