Subversion Repositories eFlore/Applications.cel

Rev

Rev 84 | Rev 99 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 84 Rev 97
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import org.tela_botanica.client.interfaces.Rafraichissable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.observation.ObservationMediateur;
4
import org.tela_botanica.client.observation.ObservationMediateur;
-
 
5
 
-
 
6
import com.google.gwt.user.client.DOM;
-
 
7
import com.google.gwt.user.client.Event;
5
 
8
import com.google.gwt.user.client.Window;
6
import com.google.gwt.user.client.ui.Image;
9
import com.google.gwt.user.client.ui.Image;
-
 
10
import com.gwtext.client.widgets.Panel;
7
import com.gwtext.client.widgets.Panel;
11
import com.gwtext.client.widgets.Window.CloseAction;
8
 
12
 
9
/**
13
/**
10
 * Un panneau affichant une image generique provenant d eflore
14
 * Un panneau affichant une image generique provenant d eflore
11
 * 
15
 * 
12
 * @author David Delon
16
 * @author David Delon
13
 * 
17
 * 
14
 */
18
 */
15
public class ImageGeneriqueVue extends Panel implements Rafraichissable {
19
public class ImageGeneriqueVue extends Panel implements Rafraichissable {
16
 
20
 
17
	/**
21
	/**
18
	 * Le médiateur associé
22
	 * Le médiateur associé
19
	 */
23
	 */
20
	
24
	
21
	private ObservationMediateur observationMediateur = null;
25
	private ObservationMediateur observationMediateur = null;
22
	
26
	
23
	
27
	
24
	/**
28
	/**
25
	 * l'image à afficher
29
	 * l'image à afficher
26
	 */
30
	 */
27
	private Image image = new Image();
31
	private Image image = new Image();
-
 
32
	
-
 
33
	private String urlImage = "" ;
-
 
34
	
-
 
35
	private com.gwtext.client.widgets.Window imgZoom = new com.gwtext.client.widgets.Window("Agrandissement") ;
28
	
36
	
29
	
37
	
30
	/**
38
	/**
31
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
39
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
32
	 */
40
	 */
33
	
41
	
34
	@SuppressWarnings("unused")
42
	@SuppressWarnings("unused")
35
	private ImageGeneriqueVue() {
43
	private ImageGeneriqueVue() {
36
		super();
44
		super();
37
	}
45
	}
38
 
46
 
39
	/**
47
	/**
40
	 * Constructeur avec argument
48
	 * Constructeur avec argument
41
	 * @param obs le médiateur à associer
49
	 * @param obs le médiateur à associer
42
	 */
50
	 */
43
	
51
	
44
	
52
	
45
	public ImageGeneriqueVue(ObservationMediateur obs) {
53
	public ImageGeneriqueVue(ObservationMediateur obs) {
46
		
54
		
47
			
55
			
48
		this.observationMediateur = obs;
56
		this.observationMediateur = obs;
-
 
57
		imgZoom.setCloseAction(com.gwtext.client.widgets.Window.HIDE) ;
-
 
58
		image = new Image() {
49
	
59
 
-
 
60
			public void onBrowserEvent(Event event) {
-
 
61
 
-
 
62
				// lors du double clic
-
 
63
				if (Event.ONDBLCLICK == DOM.eventGetType(event)) {
-
 
64
 
-
 
65
					// on notifie le médiateur
-
 
66
					agrandirImage() ;
-
 
67
				}
-
 
68
			}
-
 
69
			
-
 
70
		};
-
 
71
		
-
 
72
		
-
 
73
		this.setCls("x-image-gen") ;
50
		image.setPixelSize(150, 150);
74
		image.setPixelSize(150, 150);
51
		add(image);
75
		add(image);
-
 
76
		
-
 
77
		image.sinkEvents(Event.ONDBLCLICK);
52
		
78
		
53
		// on ajoute les listeners
79
		// on ajoute les listeners
54
		ajouterListeners();
80
		ajouterListeners();
55
 
81
 
56
	}
82
	}
57
 
83
 
58
 
84
 
59
	/**
85
	/**
60
	 * Affichage image generique
86
	 * Affichage image generique
61
	 * 
87
	 * 
62
	 */
88
	 */
63
	
89
	
64
	public void rafraichir(Object nouvelleDonnees,boolean repandreRaffraichissement) {
90
	public void rafraichir(Object nouvelleDonnees,boolean repandreRaffraichissement) {
65
 
91
 
66
		// si on recoit une String contenant une URL
92
		// si on recoit une String contenant une URL
67
		if (nouvelleDonnees instanceof String) {
93
		if (nouvelleDonnees instanceof String) {
68
			
94
			
69
			String urlImage=(String) nouvelleDonnees;
95
			urlImage=(String) nouvelleDonnees;
70
			
96
			
71
			if (urlImage.length()==0) {
97
			if (urlImage.length()==0) {
72
				raz() ;
98
				raz() ;
73
			}
99
			}
74
			else {
100
			else {
75
				image.setUrl(urlImage);
101
				image.setUrl(urlImage);
76
			}
102
			}
77
		}
103
		}
78
		
104
		
79
		observationMediateur.deMasquerChargementInfosObservations() ;
105
		observationMediateur.deMasquerChargementInfosObservations() ;
80
				
106
				
81
	}
107
	}
-
 
108
	
-
 
109
	public void agrandirImage() {
-
 
110
		
-
 
111
		if(!imgZoom.isVisible())
-
 
112
		{
-
 
113
			String urlAgrandie = urlImage.replace("min", "max") ;
-
 
114
			imgZoom.setHtml("<img src=\""+urlAgrandie+"\" />") ;
-
 
115
			imgZoom.setPagePosition( Window.getClientWidth()/2, Window.getClientHeight()/5) ;
-
 
116
			imgZoom.setAutoHeight(true) ;
-
 
117
			imgZoom.setAutoWidth(true) ;
-
 
118
			imgZoom.show(this.getElement()) ;
-
 
119
		}
-
 
120
 
-
 
121
		
-
 
122
	}
82
 
123
 
83
	
124
	
84
	/**
125
	/**
85
	 * Ajoute les listeners pour la gestions d'évènement
126
	 * Ajoute les listeners pour la gestions d'évènement
86
	 */
127
	 */
87
	public void ajouterListeners() {
128
	public void ajouterListeners() {
88
		
129
		
89
	}
130
	}
90
	
131
	
91
	public void raz() {
132
	public void raz() {
92
		image.setUrl("");
133
		image.setUrl("");
93
	}
134
	}
94
	
135
	
95
 
136
 
96
}
137
}