18,8 → 18,11 |
import com.gwtext.client.dd.DragSource; |
import com.gwtext.client.dd.DropTarget; |
import com.gwtext.client.dd.DropTargetConfig; |
import com.gwtext.client.widgets.BoxComponent; |
import com.gwtext.client.widgets.Component; |
import com.gwtext.client.widgets.Container; |
import com.gwtext.client.widgets.Panel; |
import com.gwtext.client.widgets.event.PanelListener; |
import com.gwtext.client.widgets.event.PanelListenerAdapter; |
import com.gwtext.client.widgets.grid.GridDragData; |
import com.gwtext.client.widgets.layout.BorderLayout; |
141,6 → 144,8 |
|
}; |
|
image.setPixelSize(150, 150); |
|
infosImages = new String[0] ; |
|
this.setHeader(true); |
163,8 → 168,8 |
|
this.setLayout(new BorderLayout()); |
|
prev.setWidth("60px"); |
suiv.setWidth("60px"); |
prev.setWidth("15%"); |
suiv.setWidth("15%"); |
|
this.add(prev, new BorderLayoutData(RegionPosition.WEST)); |
this.add(imageConteneur, new BorderLayoutData(RegionPosition.CENTER)); |
213,6 → 218,9 |
{ |
activerPanneau() ; |
getImage().setUrl(convertirIdEnUrl(infosImages[index])); |
imageWidth =getImage().getWidth(); |
imageHeight = getImage().getHeight(); |
verifierEtRetaillerImage(); |
} |
else |
{ |
286,7 → 294,12 |
} |
|
}); |
|
|
/*addListener(new PanelListenerAdapter() { |
public void onResize(BoxComponent component, int adjWidth, int adjHeight, int rawWidth, int rawHeight) { |
verifierEtRetaillerImage(); |
} |
});*/ |
} |
|
/** |
457,5 → 470,70 |
|
return urlImg ; |
} |
|
/** |
* Verifie si l'image est plus grande que le conteneur et la retaille le cas |
* echeant |
*/ |
public void verifierEtRetaillerImage() { |
// si l'image est nulle |
if (image == null) { |
// on ne fait rien |
return; |
} |
|
// on prend la taille originale de l'image |
int originalX = getTailleImage()[0]; |
int originalY = getTailleImage()[1]; |
|
// on la transforme en float (la division entre entier donne de curieux |
// résultats) |
float fOriginalX = (new Float(originalX)).floatValue(); |
float fOriginalY = (new Float(originalY)).floatValue(); |
|
// et on fait le rapport longueur sur hauteur (pour connaitre le ratio) |
float rapportTaille = fOriginalX / fOriginalY; |
|
// la nouvelle taille est pour le moment égale à l'ancienne |
int nouvelleTailleX = originalX; |
int nouvelleTailleY = originalY; |
|
// on prend la taille du conteneur |
int tailleConteneurX = imageConteneur.getWidth(); |
int tailleConteneurY = imageConteneur.getHeight(); |
|
int maxConteneur = Math.min(tailleConteneurX, tailleConteneurY); |
int max = Math.min(maxConteneur, 300); |
|
// si l'image ne rentre pas telle quelle (longueur ou hauteur trop |
// grande) |
// si la longueur de l'image est la plus grande des deux |
|
int maxImage = Math.max(originalX, originalY); |
|
if(maxImage == originalX) { |
// on prend la longueur comme taille de référence, qu'on met à |
// la longueur du conteneur |
nouvelleTailleX = max; |
// et on recalcule la hauteur, par rapport à la nouvelle |
// longueur, en gardant le format de 'limage |
nouvelleTailleY = (int) Math.floor(nouvelleTailleX * 1 |
/ rapportTaille); |
} |
else |
{ |
// si la hauteur est la plus grande, on fait le même genre |
// d'opération en prenant la hauteur comme référence |
nouvelleTailleY = max; |
nouvelleTailleX = (int) Math.floor(nouvelleTailleY |
* rapportTaille); |
} |
|
// on modifie enfin la taille de l'image pour qu'elle soit affichée |
getImage().setSize("" + nouvelleTailleX + "px", |
"" + nouvelleTailleY + "px"); |
|
doLayout(); |
} |
} |
|