Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1556 Rev 1563
1
package org.tela_botanica.del.client.composants.images;
1
package org.tela_botanica.del.client.composants.images;
2
 
2
 
3
import org.tela_botanica.del.client.i18n.I18n;
3
import org.tela_botanica.del.client.i18n.I18n;
4
import com.google.gwt.core.client.GWT;
4
import com.google.gwt.core.client.GWT;
5
import com.google.gwt.event.dom.client.LoadEvent;
5
import com.google.gwt.event.dom.client.LoadEvent;
6
import com.google.gwt.event.dom.client.LoadHandler;
6
import com.google.gwt.event.dom.client.LoadHandler;
7
import com.google.gwt.event.logical.shared.ResizeEvent;
7
import com.google.gwt.event.logical.shared.ResizeEvent;
8
import com.google.gwt.event.logical.shared.ResizeHandler;
8
import com.google.gwt.event.logical.shared.ResizeHandler;
9
import com.google.gwt.uibinder.client.UiBinder;
9
import com.google.gwt.uibinder.client.UiBinder;
10
import com.google.gwt.uibinder.client.UiField;
10
import com.google.gwt.uibinder.client.UiField;
11
import com.google.gwt.user.client.Timer;
11
import com.google.gwt.user.client.Timer;
12
import com.google.gwt.user.client.Window;
12
import com.google.gwt.user.client.Window;
13
import com.google.gwt.user.client.ui.Composite;
13
import com.google.gwt.user.client.ui.Composite;
14
import com.google.gwt.user.client.ui.HTML;
14
import com.google.gwt.user.client.ui.HTML;
15
import com.google.gwt.user.client.ui.Image;
15
import com.google.gwt.user.client.ui.Image;
16
import com.google.gwt.user.client.ui.Widget;
16
import com.google.gwt.user.client.ui.Widget;
17
 
17
 
18
public class DetailImageVue extends Composite implements DetailImagePresenteur.Vue {
18
public class DetailImageVue extends Composite implements DetailImagePresenteur.Vue {
19
 
19
 
20
	// Gestion d'UiBinder
20
	// Gestion d'UiBinder
21
	interface Binder extends UiBinder<Widget, DetailImageVue> {
21
	interface Binder extends UiBinder<Widget, DetailImageVue> {
22
	}
22
	}
23
 
23
 
24
	private static Binder binder = GWT.create(Binder.class);
24
	private static Binder binder = GWT.create(Binder.class);
25
 
25
 
26
	@UiField
26
	@UiField
27
	protected Image photoPrincipale;
27
	protected Image photoPrincipale;
28
 
28
 
29
	@UiField
29
	@UiField
30
	protected HTML texteAlternatif;
30
	protected HTML texteAlternatif;
31
 
31
 
32
	public DetailImageVue() {
32
	public DetailImageVue() {
33
		initWidget(binder.createAndBindUi(this));
33
		initWidget(binder.createAndBindUi(this));
34
		photoPrincipale.addLoadHandler(new LoadHandler() {		
34
		photoPrincipale.addLoadHandler(new LoadHandler() {		
35
			@Override
35
			@Override
36
			public void onLoad(LoadEvent event) {
36
			public void onLoad(LoadEvent event) {
37
				setTailleOptimale();
37
				setTailleOptimale();
38
			}
38
			}
39
		});
39
		});
40
		
40
		
41
		Window.addResizeHandler(new ResizeHandler() {
41
		Window.addResizeHandler(new ResizeHandler() {
42
			
42
			
43
			Timer resizeTimer = new Timer() {  
43
			Timer resizeTimer = new Timer() {  
44
			    @Override
44
			    @Override
45
			    public void run() {
45
			    public void run() {
46
			    	setTailleOptimale();
46
			    	setTailleOptimale();
47
			    }
47
			    }
48
			};
48
			};
49
			  
49
			  
50
			@Override
50
			@Override
51
			public void onResize(ResizeEvent event) {
51
			public void onResize(ResizeEvent event) {
52
				resizeTimer.cancel();
52
				resizeTimer.cancel();
53
			    resizeTimer.schedule(250);
53
			    resizeTimer.schedule(250);
54
			}
54
			}
55
		});
55
		});
56
	}
56
	}
57
 
57
 
58
	public void chargerImage(org.tela_botanica.del.client.modeles.Image imageCourante) {
58
	public void chargerImage(org.tela_botanica.del.client.modeles.Image imageCourante) {
59
		setUrlImage(imageCourante.getUrlFormat("L"));
59
		setUrlImage(imageCourante.getUrlFormat("L"));
60
		setTitle(imageCourante.getUrlFormat("L"));
60
		setTitle(imageCourante.getUrlFormat("L"));
61
		setTexteAlternatif("<strong> "+I18n.getVocabulary().imageNumero()+""+ imageCourante.getIdImage() +" - "+ imageCourante.getObservation().getNomRetenuFormateReferentiel() + " "  + I18n.getVocabulary().par() + " " + imageCourante.getObservation().getAuteur() + "</strong><br />"
61
		setTexteAlternatif("<strong> "+I18n.getVocabulary().imageNumero()+""+ imageCourante.getIdImage() +" - "+ imageCourante.getObservation().getNomRetenuFormateReferentiel() + " "  + I18n.getVocabulary().par() + " " + imageCourante.getObservation().getAuteur() + "</strong><br />"
62
				+ I18n.getVocabulary().publiee() + " "+ imageCourante.getObservation().getDateReleve() + " - " + imageCourante.getObservation().getLocaliteAvecIdFormatee());
62
				+ I18n.getVocabulary().publiee() + " "+ imageCourante.getObservation().getDateReleve() + " - " + imageCourante.getObservation().getLocaliteAvecIdFormatee());
63
	}
63
	}
64
 
64
 
65
	public void setUrlImage(String urlImage) {
65
	public void setUrlImage(String urlImage) {
66
		photoPrincipale.setUrl(urlImage);
66
		photoPrincipale.setUrl(urlImage);
67
	}
67
	}
68
 
68
 
69
	public void setTexteAlternatif(String texteAlternatif) {
69
	public void setTexteAlternatif(String texteAlternatif) {
70
		this.texteAlternatif.setHTML(texteAlternatif);
70
		this.texteAlternatif.setHTML(texteAlternatif);
71
	}
71
	}
72
	
72
	
73
	public void setTailleOptimale() {
73
	public void setTailleOptimale() {
-
 
74
		
74
		double fenetreH = Window.getClientHeight();
75
		double fenetreH = Window.getClientHeight();
75
		double fenetreW = Window.getClientWidth();
76
		double fenetreW = Window.getClientWidth();
76
		
-
 
77
		double rapport = 0;
-
 
78
		
77
		
79
		double photoH = photoPrincipale.getHeight();
78
		double photoH = photoPrincipale.getHeight();
80
		double photoW = photoPrincipale.getWidth();
79
		double photoW = photoPrincipale.getWidth();
-
 
80
		
81
		
81
		double rapport = 0;
82
		double reduction = 150;
82
		double reduction = 150;
-
 
83
		
83
		
84
		if(photoH > (fenetreH - reduction) || photoW > (fenetreW - reduction)) {
84
		if(photoH >= (fenetreH - reduction) || photoW >= (fenetreW - reduction)) {
85
			
85
			if(photoH > photoW) {
86
			if(photoH >= (fenetreH - reduction)) {				
86
				rapport = photoW/photoH;
87
				rapport = photoW/photoH;
87
				photoH = fenetreH-reduction;
88
				photoH = fenetreH-reduction;
88
				photoW = photoH*rapport;
89
				photoW = photoH*rapport;
89
			} else {
90
			} 
-
 
91
			
-
 
92
			if(photoW >= (fenetreW - reduction)) {
90
				rapport = photoH/photoW;
93
				rapport = photoH/photoW;
91
				photoW = fenetreW-reduction;
94
				photoW = fenetreW-reduction;
92
				photoH = photoW*rapport;
95
				photoH = photoW*rapport;
93
			}
96
			}
94
		}
97
		}
95
		
98
		
96
		setWidth(photoW+"px");
99
		setWidth(photoW+"px");
97
		setHeight(photoH+"px");
100
		setHeight(photoH+"px");
98
	}
101
	}
99
}
102
}