Subversion Repositories eFlore/Applications.cel

Compare Revisions

Problem with comparison.

Ignore whitespace Rev HEAD → Rev 97

/trunk/src/org/tela_botanica/client/vues/ImageGeneriqueVue.java
New file
0,0 → 1,137
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.observation.ObservationMediateur;
 
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Image;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.Window.CloseAction;
 
/**
* Un panneau affichant une image generique provenant d eflore
*
* @author David Delon
*
*/
public class ImageGeneriqueVue extends Panel implements Rafraichissable {
 
/**
* Le médiateur associé
*/
private ObservationMediateur observationMediateur = null;
/**
* l'image à afficher
*/
private Image image = new Image();
private String urlImage = "" ;
private com.gwtext.client.widgets.Window imgZoom = new com.gwtext.client.widgets.Window("Agrandissement") ;
/**
* Constructeur sans argument (privé car ne doit pas être utilisé)
*/
@SuppressWarnings("unused")
private ImageGeneriqueVue() {
super();
}
 
/**
* Constructeur avec argument
* @param obs le médiateur à associer
*/
public ImageGeneriqueVue(ObservationMediateur obs) {
this.observationMediateur = obs;
imgZoom.setCloseAction(com.gwtext.client.widgets.Window.HIDE) ;
image = new Image() {
 
public void onBrowserEvent(Event event) {
 
// lors du double clic
if (Event.ONDBLCLICK == DOM.eventGetType(event)) {
 
// on notifie le médiateur
agrandirImage() ;
}
}
};
this.setCls("x-image-gen") ;
image.setPixelSize(150, 150);
add(image);
image.sinkEvents(Event.ONDBLCLICK);
// on ajoute les listeners
ajouterListeners();
 
}
 
 
/**
* Affichage image generique
*
*/
public void rafraichir(Object nouvelleDonnees,boolean repandreRaffraichissement) {
 
// si on recoit une String contenant une URL
if (nouvelleDonnees instanceof String) {
urlImage=(String) nouvelleDonnees;
if (urlImage.length()==0) {
raz() ;
}
else {
image.setUrl(urlImage);
}
}
observationMediateur.deMasquerChargementInfosObservations() ;
}
public void agrandirImage() {
if(!imgZoom.isVisible())
{
String urlAgrandie = urlImage.replace("min", "max") ;
imgZoom.setHtml("<img src=\""+urlAgrandie+"\" />") ;
imgZoom.setPagePosition( Window.getClientWidth()/2, Window.getClientHeight()/5) ;
imgZoom.setAutoHeight(true) ;
imgZoom.setAutoWidth(true) ;
imgZoom.show(this.getElement()) ;
}
 
}
 
/**
* Ajoute les listeners pour la gestions d'évènement
*/
public void ajouterListeners() {
}
public void raz() {
image.setUrl("");
}
 
}