/* * $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.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import wicket.contrib.gmap3.GMap; import wicket.contrib.gmap3.ReviewPending; /** * This behavior is used for map-events. * The lib handles map- and overlay-events differently. */ @ReviewPending // Remove if class is tested. public abstract class GMapEventListenerBehavior extends AbstractDefaultAjaxBehavior { private static final long serialVersionUID = 1L; @Override protected void onBind() { if ( !( getComponent() instanceof GMap ) ) { throw new IllegalArgumentException( "must be bound to GMap" ); } } public String getJSaddListener() { return getGMap().getJSinvoke( "addListener('" + getEvent() + "', '" + getCallbackUrl() + "')" ); } protected final GMap getGMap() { return (GMap) getComponent(); } /** * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#respond(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override protected final void respond( final AjaxRequestTarget target ) { getGMap().update(); onEvent( target ); } /** * Typically response parameters that are meant for this event are picket up * and made available for the further processing. * * @param target * Target to add the Components, that need to be redrawn, to. */ protected abstract void onEvent( AjaxRequestTarget target ); /** * See: Event table after <a href="http://www.google.com/apis/maps/documentation/reference.html#GMap2">GMap2</a>. * * @return The name of the GMap Event that this Listener ought to listen to. */ protected abstract String getEvent(); }