Subversion Repositories eFlore/Archives.cel-v2

Rev

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