/*
* $Id: org.eclipse.jdt.ui.prefs 5004 2006-03-17 20:47:08 -0800 (Fri, 17 Mar 2006) eelco12 $
* $Revision: 5004 $
* $Date: 2006-03-17 20:47:08 -0800 (Fri, 17 Mar 2006) $
*
* ==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package wicket.contrib.gmap3.mapevent;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.cycle.RequestCycle;
import wicket.contrib.gmap3.api.GLatLng;
import wicket.contrib.gmap3.overlay.GOverlay;
/**
* See "CLICK" in the event section of <a
* href="http://www.google.com/apis/maps/documentation/reference.html#GMap2"
* >GMap2</a>.
*/
public abstract class ClickListener extends GMapEventListenerBehavior {
private static final long serialVersionUID = -6265838789648579340L;
@Override
protected String getEvent() {
return Event.CLICK.toString();
}
@Override
protected void onEvent( final AjaxRequestTarget target ) {
final Request request = RequestCycle.get().getRequest();
GOverlay overlay = null;
GLatLng latLng = null;
final String markerParameter = request.getRequestParameters().getParameterValue( "argument0" ).toString();
if ( markerParameter != null ) {
for ( final GOverlay ovl : getGMap().getOverlays() ) {
if ( ovl.getId().equals( markerParameter ) ) {
overlay = ovl;
break;
}
}
}
final String latLngParameter = request.getRequestParameters().getParameterValue( "latLng" ).toString();
if ( latLngParameter != null ) {
latLng = GLatLng.parse( latLngParameter );
}
onClick( target, latLng, overlay );
}
/**
* Override this method to provide handling of a click on the map. See the
* event section of <a href=
* "http://www.google.com/apis/maps/documentation/reference.html#GMap2"
* >GMap2</a>.
*
* @param latLng
* The clicked GLatLng. Might be null if a Marker was clicked.
* @param overlay
* The clicked overlay. Might be null.
* @param target
* The target that initiated the click.
*/
protected abstract void onClick( AjaxRequestTarget target, GLatLng latLng, GOverlay overlay );
}