New file |
0,0 → 1,207 |
package org.tela_botanica.client.vues; |
|
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.observation.ObservationMediateur; |
|
import com.google.gwt.user.client.Event; |
import com.google.gwt.user.client.ui.HTML; |
import com.gwtext.client.core.EventObject; |
import com.gwtext.client.core.Ext; |
import com.gwtext.client.core.ExtElement; |
import com.gwtext.client.widgets.Button; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.Window; |
import com.gwtext.client.widgets.event.ButtonListenerAdapter; |
import com.gwtext.client.widgets.form.TextArea; |
|
public class SaisieMotsClesVue extends Window implements Rafraichissable { |
private ObservationMediateur oMediateur = null ; |
|
private Object[][] listeMotsPesee = null; |
|
private String motsAAjouter = "" ; |
|
private int nbMotsClesMax = 1 ; |
|
private TextArea motsClesAjout = null; |
|
private Button validerAjout = null ; |
|
private Button voirCacherNuage = null; |
|
private boolean nuageVisible = false ; |
|
private Panel contenuNuage = null ; |
|
public SaisieMotsClesVue(ObservationMediateur om) { |
super("Entrez vos mots clés"); |
setCls("fenmotcles"); |
oMediateur = om ; |
setWidth(300); |
motsClesAjout = new TextArea(); |
motsClesAjout.setWidth(300); |
validerAjout = new Button("Valider"); |
voirCacherNuage= new Button("Afficher les mots clés"); |
final Rafraichissable r = this ; |
|
this.setCloseAction(CLOSE); |
|
validerAjout.addListener(new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
|
motsAAjouter = motsClesAjout.getText(); |
oMediateur.AjouterMotsClesEnMasse(motsAAjouter); |
} |
|
}); |
|
voirCacherNuage.addListener(new ButtonListenerAdapter() { |
public void onClick(Button button, EventObject e) { |
|
if(nuageVisible) { |
|
if(contenuNuage != null) { |
contenuNuage.clear(); |
} |
voirCacherNuage.setText("Afficher les mots clés"); |
nuageVisible = false; |
} |
else { |
oMediateur.obtenirNuageMotsCles(r); |
voirCacherNuage.setText("Cacher les mots clés"); |
nuageVisible = true; |
} |
} |
|
}); |
|
add(motsClesAjout); |
add(validerAjout); |
add(voirCacherNuage); |
|
contenuNuage = new Panel(); |
contenuNuage.setBorder(false); |
|
add(contenuNuage); |
} |
|
|
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; |
demasquerChargement(); |
} |
|
if(nouvelleDonnees instanceof Object[][]) { |
|
listeMotsPesee = (Object[][])nouvelleDonnees ; |
construireNuage(); |
demasquerChargement(); |
} |
|
if(nouvelleDonnees instanceof String) { |
|
String res = (String)nouvelleDonnees; |
if(res.equals("OK")) { |
masquerChargement(); |
oMediateur.obtenirListeObservation(); |
oMediateur.obtenirNuageMotsCles(this); |
} |
} |
} |
|
private void construireNuage() { |
|
contenuNuage.clear(); |
|
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) { |
|
motsAAjouter += " "+e.getTarget().getInnerHTML(); |
motsClesAjout.setValue(motsAAjouter); |
} |
}; |
|
contenuHTML.sinkEvents(Event.ONCLICK); |
contenuNuage.add(contenuHTML); |
|
contenuNuage.doLayout(); |
doLayout(); |
} |
|
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() ; |
} |
} |
|
|
} |