I'm guessing that what's happening here is that the MapClickHandler is getting in the way of closing the info window. Its not intuitive, but the map click handler fires even when you are clicking on an overlay on top of the map, like an InfoWindow:
http://gwt-google-apis.googlecode.com/svn/javadoc/maps/1.0/com/google/gwt/maps/client/event/MapClickHandler.html On Wed, Jul 15, 2009 at 8:33 AM, alixeb<[email protected]> wrote: > > Hiya, > > I am a Front End Developer. I am trying to learn GWT. > I think my code is pretty straightforward. > I am creating a DockPanel and in the center of it I have adding a > MapPage object that extends Vertical Panel. > > Each time you click on the Map a marker appear which some text in > InfoWindow. > Interaction is pretty much what this example does : > http://gwt.google.com/samples/HelloMaps-1.0.4/HelloMaps.html#Draggable%20Markers > > Ok for some reason when closing the InfoWindow using cross icon. > I get 3 alert errors, which YES/NO button to debug with IE tool: > Line: 1123 > Error: 'this.ra' is null or not an object > Click NO > Line: 469 > Error: 'null' is null or not an object > Click NO > Line: 469 > Error: 'null' is null or not an object > > In Eclipse: > com.google.gwt.core.client.JavaScriptException: (TypeError): 'null' is > null or not an object > number: -2146823281 > description: 'null' is null or not an object > at com.google.gwt.maps.client.impl.OverlayImpl.bindConcreteOverlay > (Native Method) > at com.google.gwt.maps.client.overlay.Overlay$ConcreteOverlay.<init> > (Overlay.java:42) > at com.google.gwt.maps.client.overlay.Marker.<init>(Marker.java:130) > at com.wikik.client.pages.MapPage$3.onClick(MapPage.java:96) > at com.google.gwt.maps.client.MapWidget$8.callback(MapWidget.java: > 481) > at com.google.gwt.maps.client.impl.EventImpl$OverlayLatLngCallback > $1.execute(EventImpl.java:193) > at > com.google.gwt.maps.client.impl.EventImpl.invokeAndReportUncaughtExceptions > (EventImpl.java:260) > at > com.google.gwt.maps.client.impl.EventImpl.invokeAndMaybeReportUncaughtExceptions > (EventImpl.java:246) > at com.google.gwt.maps.client.impl.EventImpl.access$0(EventImpl.java: > 241) > at com.google.gwt.maps.client.impl.EventImpl > $OverlayLatLngCallback.callbackWrapper(EventImpl.java:191) > > The code of MapPage.java > > > import com.google.gwt.user.client.ui.VerticalPanel; > > import com.google.gwt.maps.client.InfoWindowContent; > import com.google.gwt.maps.client.MapWidget; > import com.google.gwt.maps.client.control.LargeMapControl; > import com.google.gwt.maps.client.event.MapClickHandler; > import com.google.gwt.maps.client.geom.LatLng; > import com.google.gwt.maps.client.overlay.Marker; > import com.google.gwt.maps.client.overlay.MarkerOptions; > import com.google.gwt.maps.client.InfoWindow; > import com.google.gwt.maps.client.event.MarkerDragEndHandler; > import com.google.gwt.maps.client.event.MarkerDragStartHandler; > > public class MapPage extends VerticalPanel { > > private MapWidget map; > private Marker newMarker; > private InfoWindow info = null; > > private void createNewMarker() { > MarkerOptions options = MarkerOptions.newInstance(); > options.setDraggable(true); > LatLng point = LatLng.newInstance(0,0); > newMarker = new Marker(point, options); > newMarker.setVisible(false); > > newMarker.addMarkerDragEndHandler(new MarkerDragEndHandler() { > public void onDragEnd(MarkerDragEndEvent event) { > info.open(newMarker, new InfoWindowContent("heouhr oehro > eh")); > } > }); > > newMarker.addMarkerDragStartHandler(new MarkerDragStartHandler() > { > public void onDragStart(MarkerDragStartEvent event) { > info.setVisible(false); > } > }); > } > > public MapPage() { > map = new MapWidget(); > map.setZoomLevel(2); > map.setSize("100%", "100%"); > > // Add some controls for the zoom level > map.addControl(new LargeMapControl()); > > // remember InfoWindow > info = map.getInfoWindow(); > > // initialise newMarketobject > this.createNewMarker(); > > map.addMapClickHandler(new MapClickHandler() { > public void onClick(MapClickEvent event) { > if (newMarker != null) { > newMarker.setVisible(false); > } > LatLng point = event.getLatLng(); > newMarker.setLatLng(point); > map.addOverlay(newMarker); > > info.open(newMarker, new InfoWindowContent("heouhr > oehro eh")); > } > }); > map.setVisible(true); > add(map); > } > } > > Any idea why I see some errors? > > Cheers > > > > -- Eric Z. Ayers - GWT Team - Atlanta, GA USA http://code.google.com/webtoolkit/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
