/*
* $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 org.wicketstuff.gmap.event;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.util.string.StringValueConversionException;
import org.wicketstuff.gmap.api.GLatLng;
/**
* See "dblclick" in the event section of <a href="https://developers.google.com/maps/documentation/javascript/reference#Map">GMap</a>.
*/
public abstract class DblClickListener extends GEventListenerBehavior
{
private static final long serialVersionUID = -6193218322346599432L;
@Override
protected String getEvent()
{
return "dblclick";
}
@Override
protected final void onEvent(AjaxRequestTarget target)
{
Request request = RequestCycle.get().getRequest();
NumberFormat fmt = DecimalFormat.getInstance(Locale.US);
GLatLng latLng = null;
String latStr = request.getRequestParameters().getParameterValue("lat").toString();
String lngStr = request.getRequestParameters().getParameterValue("lng").toString();
Double lat = null;
Double lng = null;
try
{
lat = fmt.parse(latStr).doubleValue();
lng = fmt.parse(lngStr).doubleValue();
} catch (ParseException e)
{
throw new StringValueConversionException("Unable to convert 'lat/lng' to a double value", e);
}
latLng = new GLatLng(lat, lng);
onDblClick(target, latLng);
}
/**
* Override this method to provide handling of a double-click on the map.
*
* @param target
* the target that initiated the click
* @param latLng
* the clicked GLatLng
*/
protected abstract void onDblClick(AjaxRequestTarget target, GLatLng latLng);
}