Subversion Repositories eFlore/Archives.cel-v2

Rev

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

Rev Author Line No. Line
45 aperonnet 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.image.ImageMediateur;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
 
6
import com.google.gwt.user.client.Event;
7
import com.google.gwt.user.client.ui.ClickListener;
8
import com.google.gwt.user.client.ui.Image;
9
import com.google.gwt.user.client.ui.MouseListener;
10
import com.google.gwt.user.client.ui.MouseListenerAdapter;
11
import com.google.gwt.user.client.ui.Widget;
12
import com.gwtext.client.core.EventObject;
13
import com.gwtext.client.widgets.Panel;
14
 
15
public class BarreNotationVue extends Panel implements Rafraichissable {
16
 
17
	private ImageMediateur iMediateur = null ;
18
	private int noteEnCours = 0 ;
19
	private int noteMax = 0 ;
20
	private int noteCurseur = 0 ;
46 aperonnet 21
	private boolean estNote = false ;
45 aperonnet 22
	private Image[] etoiles = null ;
23
 
24
	private BarreNotationVue()
25
	{
26
		super() ;
27
	}
28
 
29
	public BarreNotationVue(ImageMediateur im, int noteMax)
30
	{
31
		iMediateur = im ;
32
		setNoteMax(noteMax) ;
46 aperonnet 33
		this.setSize(200, 100) ;
34
		this.setBodyBorder(false) ;
35
		this.setBorder(false) ;
45 aperonnet 36
 
37
		ajouterListeners() ;
38
 
39
	}
40
 
41
	public void ajouterListeners()
42
	{
43
		for (int i = 0; i < etoiles.length; i++) {
44
 
45
			noteCurseur = i ;
46
 
47
			etoiles[i].addMouseListener(new MouseListenerAdapter() {
48
 
49
 
50
				public void onMouseEnter(Widget sender) {
51
 
52
					Image enCours = (Image)sender ;
53
					int nEnCours = 0 ;
54
 
55
					for(int i = 0 ; etoiles[i] != enCours ; i++)
56
					{
57
						etoiles[i].setUrl("etoile_curseur.jpg") ;
58
						nEnCours = i ;
59
					}
60
						enCours.setUrl("etoile_curseur.jpg") ;
61
 
62
				}
63
 
64
				public void onMouseLeave(Widget sender) {
65
 
46 aperonnet 66
					afficherNote() ;
45 aperonnet 67
				}
68
 
69
 
70
			}) ;
71
 
72
			etoiles[i].addClickListener(new ClickListener() {
73
 
74
				public void onClick(Widget sender) {
75
 
76
					int i = 0 ;
77
 
78
					while(etoiles[i] != (Image)sender)
79
					{
80
						i++ ;
81
					}
82
 
46 aperonnet 83
					noter(i) ;
45 aperonnet 84
					System.out.println("Nouvelle note : "+noteEnCours);
85
 
86
				}
87
 
88
 
89
			}) ;
90
		}
91
 
92
	}
93
 
94
 
95
	public void rafraichir(Object nouvelleDonnees,
96
			boolean repandreRaffraichissement) {
97
 
46 aperonnet 98
		if(nouvelleDonnees instanceof String[])
99
		{
100
			estNote = false ;
101
 
102
			String[] note = (String[])nouvelleDonnees ;
103
			int noteInt = Integer.parseInt(note[0]) ;
104
 
105
			System.out.println("Note reçue : "+noteInt);
106
			if(noteInt != -1)
107
			{
108
				noter(noteInt) ;
109
			}
110
			else
111
			{
112
				noteEnCours = 0 ;
113
				afficherNote() ;
114
			}
115
 
116
		}
117
 
45 aperonnet 118
	}
119
 
46 aperonnet 120
	public void noter(int note)
121
	{
122
		noteEnCours = note ;
123
		estNote = true ;
124
		afficherNote() ;
125
	}
126
 
45 aperonnet 127
	public void setNoteMax(int nMax)
128
	{
129
		noteMax = nMax ;
130
		etoiles = new Image[noteMax] ;
131
 
132
		for(int i = 0 ; i < noteMax ; i++)
133
		{
134
			etoiles[i] = new Image("etoile_vide.jpg") ;
135
			this.add(etoiles[i]) ;
136
		}
137
	}
138
 
46 aperonnet 139
	public void afficherNote()
45 aperonnet 140
	{
46 aperonnet 141
		if(estNote)
45 aperonnet 142
		{
46 aperonnet 143
			for(int i = 0 ; i <= noteEnCours ; i++)
144
			{
145
				etoiles[i].setUrl("etoile_notee.jpg") ;
146
			}
147
 
148
			for (int j = noteEnCours + 1 ; j < noteMax ; j++)
149
			{
150
				etoiles[j].setUrl("etoile_vide.jpg") ;
151
			}
45 aperonnet 152
		}
46 aperonnet 153
		else
154
		{
155
			for(int i = 0 ; i < noteMax ; i++)
156
			{
157
				etoiles[i].setUrl("etoile_vide.jpg") ;
158
			}
159
		}
45 aperonnet 160
 
46 aperonnet 161
 
45 aperonnet 162
	}
46 aperonnet 163
 
164
	public String getNote()
165
	{
166
		return ""+noteEnCours ;
167
	}
45 aperonnet 168
 
169
}