Rev 45 | Rev 47 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.MouseListener;
import com.google.gwt.user.client.ui.MouseListenerAdapter;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Panel;
public class BarreNotationVue extends Panel implements Rafraichissable {
private ImageMediateur iMediateur = null ;
private int noteEnCours = 0 ;
private int noteMax = 0 ;
private int noteCurseur = 0 ;
private boolean estNote = false ;
private Image[] etoiles = null ;
private BarreNotationVue()
{
super() ;
}
public BarreNotationVue(ImageMediateur im, int noteMax)
{
iMediateur = im ;
setNoteMax(noteMax) ;
this.setSize(200, 100) ;
this.setBodyBorder(false) ;
this.setBorder(false) ;
ajouterListeners() ;
}
public void ajouterListeners()
{
for (int i = 0; i < etoiles.length; i++) {
noteCurseur = i ;
etoiles[i].addMouseListener(new MouseListenerAdapter() {
public void onMouseEnter(Widget sender) {
Image enCours = (Image)sender ;
int nEnCours = 0 ;
for(int i = 0 ; etoiles[i] != enCours ; i++)
{
etoiles[i].setUrl("etoile_curseur.jpg") ;
nEnCours = i ;
}
enCours.setUrl("etoile_curseur.jpg") ;
}
public void onMouseLeave(Widget sender) {
afficherNote() ;
}
}) ;
etoiles[i].addClickListener(new ClickListener() {
public void onClick(Widget sender) {
int i = 0 ;
while(etoiles[i] != (Image)sender)
{
i++ ;
}
noter(i) ;
System.out.println("Nouvelle note : "+noteEnCours);
}
}) ;
}
}
public void rafraichir(Object nouvelleDonnees,
boolean repandreRaffraichissement) {
if(nouvelleDonnees instanceof String[])
{
estNote = false ;
String[] note = (String[])nouvelleDonnees ;
int noteInt = Integer.parseInt(note[0]) ;
System.out.println("Note reçue : "+noteInt);
if(noteInt != -1)
{
noter(noteInt) ;
}
else
{
noteEnCours = 0 ;
afficherNote() ;
}
}
}
public void noter(int note)
{
noteEnCours = note ;
estNote = true ;
afficherNote() ;
}
public void setNoteMax(int nMax)
{
noteMax = nMax ;
etoiles = new Image[noteMax] ;
for(int i = 0 ; i < noteMax ; i++)
{
etoiles[i] = new Image("etoile_vide.jpg") ;
this.add(etoiles[i]) ;
}
}
public void afficherNote()
{
if(estNote)
{
for(int i = 0 ; i <= noteEnCours ; i++)
{
etoiles[i].setUrl("etoile_notee.jpg") ;
}
for (int j = noteEnCours + 1 ; j < noteMax ; j++)
{
etoiles[j].setUrl("etoile_vide.jpg") ;
}
}
else
{
for(int i = 0 ; i < noteMax ; i++)
{
etoiles[i].setUrl("etoile_vide.jpg") ;
}
}
}
public String getNote()
{
return ""+noteEnCours ;
}
}