/** * helper method * * @param marker */ public void clickAndOpenPopup(Marker marker, AjaxRequestTarget target) { String mapId = getOpenLayerMap().getJSInstance(); String jsToRun = "if (" + mapId + ".popup != null) {" + " " + mapId + ".map.removePopup(" + mapId + ".popup);" + " " + mapId + ".popup.destroy();" + " " + mapId + ".popup = null;" + "}"; target.prependJavaScript(jsToRun); // Currently only support clicking on markers! getOpenLayerMap().getInfoWindow().getContent().replaceWith(marker.getPopup()); getOpenLayerMap().getInfoWindow().setContent(marker.getPopup()); target.add(marker.getPopup()); jsToRun = mapId + ".popup = new OpenLayers.Popup('map', " + new LonLat(marker.getLonLat().getLng(), marker.getLonLat().getLat()) + ", " + new Size(195, 250).getJSconstructor() + ", document.getElementById(" + mapId + ".popupId).innerHTML, true);" + mapId + ".popup.setBackgroundColor('white');" + mapId + ".map.addPopup(" + mapId + ".popup);"; // open info window target.appendJavaScript(jsToRun); }
public String getCallBackForMarker(Marker marker) { return getCallbackUrl() + "&marker=" + marker.getId(); }