package com.test.gpda.ihm.client;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.maps.gwt.client.LatLng;
import com.google.maps.gwt.client.MapOptions;
import com.google.maps.gwt.client.MapTypeId;

public class MapWidgetV3 extends Composite {

	SimplePanel simplePanel;
	MyGoogleMap googleMap;
	
	public MapWidgetV3(double lat, double lng) {
		super();
		simplePanel = new SimplePanel();
		simplePanel.setWidth("900px");
		simplePanel.setHeight("700px");
		
		LatLng myLatLng = LatLng.create(lat, lng);
		MapOptions myOptions = MapOptions.create();
		myOptions.setZoom(8.0);
		myOptions.setCenter(myLatLng);
		myOptions.setMapTypeId(MapTypeId.ROADMAP);
		
		googleMap = MyGoogleMap.create(simplePanel.getElement(), myOptions);
		initWidget(simplePanel);
		getElement().setAttribute("id", "map_container");
	}
	
	
	@Override
	protected void onUnload() {
		super.onUnload();
		try {
			googleMap.clearInstanceListeners();
		} catch (Exception e) {
			Window.alert("Probleme de cleear des clearOverlays " +e.getMessage());
		}
		
		googleMap.clearBoundsChangedListeners();
		googleMap.clearCenterChangedListeners();
		googleMap.clearClickListeners();
		googleMap.clearDblClickListeners();
		googleMap.clearDragEndListeners();
		googleMap.clearDragListeners();
		googleMap.clearDragStartListeners();
		googleMap.clearIdleListeners();
		googleMap.clearInstanceListeners();
		googleMap.clearMapTypeIdChangedListeners();
		googleMap.clearMouseMoveListeners();
		googleMap.clearMouseOutListeners();
		googleMap.clearMouseOverListeners();
		googleMap.clearProjectionChangedListeners();
		googleMap.clearResizeListeners();
		googleMap.clearRightClickListeners();
		googleMap.clearTilesLoadedListeners();
		googleMap.clearTiltChangedListeners();
		googleMap.clearZoomChangedListeners();
		
		for (int i = 0; i < googleMap.getControls().length(); i++) {
			googleMap.getControls().set(i, null);
		}

		googleMap.setOptions(null);
		googleMap.setControls(null);
		googleMap.setOverlayMapTypes(null);
		googleMap.setFeatures(null);
		googleMap.setValues(null);
	
	}

}
