Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfo.java @ 2897:133820d1e6bf
cosmetic.
flys-client/trunk@4624 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 07 Jun 2012 16:13:55 +0000 |
parents | 46fc11ad697f |
children | af2aa716152f |
line wrap: on
line source
package de.intevation.flys.client.client.ui.map; import java.util.List; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.util.SC; import org.gwtopenmaps.openlayers.client.Map; import org.gwtopenmaps.openlayers.client.LonLat; import org.gwtopenmaps.openlayers.client.Pixel; import org.gwtopenmaps.openlayers.client.event.MapClickListener; import de.intevation.flys.client.shared.model.FeatureInfo; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.services.GFIService; import de.intevation.flys.client.client.services.GFIServiceAsync; import de.intevation.flys.client.client.ui.ThemePanel; public class GetFeatureInfo implements MapClickListener { protected GFIServiceAsync gfiService = GWT.create(GFIService.class); protected FLYSConstants MSG = GWT.create(FLYSConstants.class); protected GetFeatureInfoWindow gfiWindow; protected Map map; protected ThemePanel themePanel; protected String infoFormat; /** * @param map * @param themes * @param url * @param infoFormat */ public GetFeatureInfo(Map map, ThemePanel themePanel, String infoFormat) { this.map = map; this.themePanel = themePanel; this.infoFormat = infoFormat; } public void activate(boolean activate) { if (activate) { map.addMapClickListener(this); } else { map.removeListener(this); } } protected void newGetFeatureInfoWindow(List<FeatureInfo> features) { if (gfiWindow != null) { gfiWindow.destroy(); } gfiWindow = new GetFeatureInfoWindow(features); gfiWindow.show(); } @Override public void onClick(MapClickListener.MapClickEvent e) { LonLat lonlat = e.getLonLat(); Pixel pixel = map.getPixelFromLonLat(lonlat); gfiService.query( themePanel.getThemeList().getActiveThemes(), infoFormat, map.getExtent().toString(), map.getProjection(), (int) map.getSize().getHeight(), (int) map.getSize().getWidth(), pixel.x(), pixel.y(), new AsyncCallback<List<FeatureInfo>>() { public void onFailure(Throwable e) { SC.warn(MSG.getString(e.getMessage())); } public void onSuccess(List<FeatureInfo> features) { newGetFeatureInfoWindow(features); } }); } }