Rev 97 | Blame | Last modification | View Log | RSS feed
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.HTML;import com.google.gwt.user.client.ui.Image;import com.gwtext.client.widgets.Panel;import com.gwtext.client.widgets.ToolTip;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") ;private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> Double cliquez pour agrandir l'image </div>") ;/*** 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 clicif (Event.ONDBLCLICK == DOM.eventGetType(event)) {// on notifie le médiateuragrandirImage() ;}}};tp.applyTo(image.getElement()) ;this.setCls("x-image-gen") ;image.setPixelSize(150, 150);add(image);image.sinkEvents(Event.ONDBLCLICK);// on ajoute les listenersajouterListeners();}/*** Affichage image generique**/public void rafraichir(Object nouvelleDonnees,boolean repandreRaffraichissement) {// si on recoit une String contenant une URLif (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("");}}