/trunk/src/org/tela_botanica/client/vues/MiniZoomImageVue.java |
---|
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 |
{ |
287,7 → 295,12 |
}); |
/*addListener(new PanelListenerAdapter() { |
public void onResize(BoxComponent component, int adjWidth, int adjHeight, int rawWidth, int rawHeight) { |
verifierEtRetaillerImage(); |
} |
});*/ |
} |
/** |
* Accesseur pour le médiateur |
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(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/InformationRepartitionVue.java |
---|
105,6 → 105,7 |
} |
else { |
image.setUrl(urlImage); |
verifierEtRetaillerImage(); |
} |
} |
125,7 → 126,69 |
} |
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 = image.getWidth(); |
int originalY = image.getHeight(); |
// 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 = getWidth(); |
int tailleConteneurY = 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 |
image.setPixelSize(nouvelleTailleX , |
nouvelleTailleY); |
doLayout(); |
} |
/** |
* Ajoute les listeners pour la gestions d'évènement |
*/ |
/trunk/src/org/tela_botanica/client/vues/ImageGeneriqueVue.java |
---|
76,9 → 76,9 |
this.setCls("x-image-gen") ; |
add(image); |
image.setPixelSize(150, 150); |
add(image); |
image.sinkEvents(Event.ONDBLCLICK); |
// on ajoute les listeners |
104,6 → 104,7 |
} |
else { |
image.setUrl(urlImage); |
//verifierEtRetaillerImage(); |
} |
} |
138,5 → 139,64 |
image.setUrl(""); |
} |
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 = image.getWidth(); |
int originalY = image.getHeight(); |
// 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 = getWidth(); |
int tailleConteneurY = 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 |
image.setPixelSize(nouvelleTailleX , |
nouvelleTailleY); |
doLayout(); |
} |
} |