Subversion Repositories eFlore/Applications.cel

Rev

Rev 99 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 99 Rev 130
Line 103... Line 103...
103
			if (urlImage.length()==0) {
103
			if (urlImage.length()==0) {
104
				raz() ;
104
				raz() ;
105
			}
105
			}
106
			else {
106
			else {
107
				image.setUrl(urlImage);
107
				image.setUrl(urlImage);
-
 
108
				verifierEtRetaillerImage();
108
			}
109
			}
109
		}
110
		}
Line 110... Line 111...
110
				
111
				
Line 122... Line 123...
122
			imgZoom.setAutoWidth(true) ;
123
			imgZoom.setAutoWidth(true) ;
123
			imgZoom.show(this.getElement()) ;
124
			imgZoom.show(this.getElement()) ;
124
		}
125
		}
Line 125... Line 126...
125
		
126
		
-
 
127
	}
-
 
128
	
-
 
129
	public void verifierEtRetaillerImage() {
-
 
130
		// si l'image est nulle
-
 
131
		if (image == null) {
-
 
132
			// on ne fait rien
-
 
133
			return;
-
 
134
		}
-
 
135
 
-
 
136
		// on prend la taille originale de l'image
-
 
137
		int originalX = image.getWidth();
-
 
138
		int originalY = image.getHeight();
-
 
139
 
-
 
140
		// on la transforme en float (la division entre entier donne de curieux
-
 
141
		// résultats)
-
 
142
		float fOriginalX = (new Float(originalX)).floatValue();
-
 
143
		float fOriginalY = (new Float(originalY)).floatValue();
-
 
144
 
-
 
145
		// et on fait le rapport longueur sur hauteur (pour connaitre le ratio)
-
 
146
		float rapportTaille = fOriginalX / fOriginalY;
-
 
147
 
-
 
148
		// la nouvelle taille est pour le moment égale à l'ancienne
-
 
149
		int nouvelleTailleX = originalX;
-
 
150
		int nouvelleTailleY = originalY;
-
 
151
 
-
 
152
		// on prend la taille du conteneur
-
 
153
		int tailleConteneurX = getWidth();
-
 
154
		int tailleConteneurY = getHeight();
-
 
155
		
-
 
156
		int maxConteneur = Math.min(tailleConteneurX, tailleConteneurY);
-
 
157
		int max = Math.min(maxConteneur, 300);
-
 
158
		
-
 
159
		// si l'image ne rentre pas telle quelle (longueur ou hauteur trop
-
 
160
		// grande)	
-
 
161
		// si la longueur de l'image est la plus grande des deux
-
 
162
			
-
 
163
			int maxImage = Math.max(originalX, originalY);
-
 
164
			
-
 
165
			if(maxImage == originalX) {
-
 
166
				// on prend la longueur comme taille de référence, qu'on met à
-
 
167
				// la longueur du conteneur
-
 
168
				nouvelleTailleX = max;
-
 
169
				// et on recalcule la hauteur, par rapport à la nouvelle
-
 
170
				// longueur, en gardant le format de 'limage
-
 
171
				nouvelleTailleY = (int) Math.floor(nouvelleTailleX * 1
-
 
172
						/ rapportTaille);
-
 
173
			} 
-
 
174
			else
-
 
175
			{	
-
 
176
				// si la hauteur est la plus grande, on fait le même genre
-
 
177
				// d'opération en prenant la hauteur comme référence
-
 
178
				nouvelleTailleY = max;
-
 
179
				nouvelleTailleX = (int) Math.floor(nouvelleTailleY
-
 
180
						* rapportTaille);
-
 
181
			}
-
 
182
 
-
 
183
		// on modifie enfin la taille de l'image pour qu'elle soit affichée
-
 
184
		image.setPixelSize(nouvelleTailleX ,
-
 
185
				nouvelleTailleY);
-
 
186
		
-
 
187
		doLayout();
-
 
188
	}
Line 126... Line 189...
126
	}
189
 
127
 
190
 
128
	
191