package org.activityinfo.ui.client.component.report.editor.map;
import com.extjs.gxt.ui.client.widget.Html;
import org.activityinfo.legacy.shared.reports.util.mapping.Extents;
import org.activityinfo.ui.client.util.LeafletUtil;
import org.discotools.gwt.leaflet.client.LeafletResourceInjector;
import org.discotools.gwt.leaflet.client.map.Map;
import org.discotools.gwt.leaflet.client.map.MapOptions;
public class LeafletMap extends Html {
private MapOptions options;
private Map map;
public LeafletMap(MapOptions options) {
this.options = options;
LeafletResourceInjector.ensureInjected();
setStyleName("gwt-Map");
setHtml("<div style=\"width:100%; height: 100%; position: relative;\"></div>");
}
@Override
protected void afterRender() {
super.afterRender();
map = new Map(getElement().getElementsByTagName("div").getItem(0), options);
}
@Override
protected void onResize(int width, int height) {
super.onResize(width, height);
map.invalidateSize(false);
}
public Map getMap() {
return map;
}
public void fitBounds(Extents extents) {
map.fitBounds(LeafletUtil.newLatLngBounds(extents));
}
}