001 package com.google.gwt.maps.client.events; 002 003 import com.google.gwt.ajaxloader.client.Properties; 004 import com.google.gwt.core.client.JavaScriptObject; 005 import com.google.gwt.event.shared.GwtEvent; 006 007 /** 008 * Inherit this into unique Map Event 009 * 010 * @param <H> {@link MapHandler} 011 * @param <E> {@link MapEvent} 012 */ 013 public abstract class MapEvent<H extends MapHandler<E>, E> extends GwtEvent<H> { 014 015 /** 016 * properties from the map event call back 017 * {@link com.google.gwt.ajaxloader.client.Properties} 018 */ 019 protected Properties properties; 020 021 /** 022 * create a new map event 023 * @param properties 024 */ 025 public MapEvent(Properties properties) { 026 this.properties = properties; 027 } 028 029 /** 030 * get the raw properties 031 * @return {@link com.google.gwt.ajaxloader.client.Properties} 032 */ 033 public Properties getProperties() { 034 return properties; 035 } 036 037 /** 038 * implement in the event that inherits this 039 */ 040 @Override 041 public abstract Type<H> getAssociatedType(); 042 043 /** 044 * implement in the event that inherits this 045 */ 046 @Override 047 protected abstract void dispatch(H handler); 048 049 /** 050 * get property object as json 051 * @param jso 052 */ 053 protected native String getAsJson(JavaScriptObject jso) /*-{ 054 return jso.toSource ? jso.toSource() : "NO SOURCE"; 055 }-*/; 056 057 }