Java tutorial
/* * GWT-Ext Widget Library * Copyright 2007 - 2008, GWT-Ext LLC., and individual contributors as indicated * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 3 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package com.gwtext.client.widgets.map; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.gwtext.client.core.JsObject; import com.gwtext.client.widgets.Component; import com.gwtext.client.widgets.WidgetComponent; /** * A marker pin. * * @author Sanjiv Jivan */ public class Marker extends JsObject implements MapProviders { /** * Create a new Marker. * * @param point the LatLonPoint */ public Marker(LatLonPoint point) { jsObj = create(point.getJsObj()); } public Marker(JavaScriptObject jsObj) { super(jsObj); } public static Marker instance(JavaScriptObject jsObj) { return new Marker(jsObj); } private native JavaScriptObject create(JavaScriptObject latLonJS) /*-{ return new $wnd.Marker(latLonJS); }-*/; /** * Hide the marker. */ public native void hide() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.hide(); }-*/; /** * Opens the infoBubble. */ public native void openBubble() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.openBubble(); }-*/; public native void setAttribute(String name, Object value) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setAttribute(name, value); }-*/; public native void setChild(JavaScriptObject proprietaryMarker) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setChild(proprietaryMarker); }-*/; /** * Sets the icon for a marker. * * @param iconUrl the icon url */ public native void setIcon(String iconUrl) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setIcon(iconUrl); }-*/; /** * The html/text content for a bubble popup for a marker. * * @param html the html/text content for a bubble popup for a marker */ public native void setInfoBubble(String html) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setInfoBubble(html); }-*/; /** * Sets the info bubble to be a Widget. Only supported by GoogleMaps. For other map providers use * {@link #setInfoBubble(String)}. * * @param widget the widget to add to the info bubble. */ public void setInfoBubble(Widget widget) { if (widget instanceof Component) { Component component = (Component) widget; if (!component.isRendered()) { WidgetComponent.createHiddenDiv(); component.render(WidgetComponent.hiddenDivID); } } else { if (!widget.isAttached()) { WidgetComponent.createHiddenDiv(); RootPanel.get(WidgetComponent.hiddenDivID).add(widget); } } setInfoBubble(widget.getElement()); } /** * Sets the info bubble to be the specified Element. Only supported by GoogleMaps. For other map providers use * {@link #setInfoBubble(String)}. * * @param widget the widget to add to the info bubble. */ public native void setInfoBubble(Element element) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setInfoBubble(element); }-*/; /** * Sets the text and the id of the div element where to the information useful for putting information in a div * outside of the map. * * @param html the html/text you want displayed * @param divID the element id to use for displaying the text/html */ public native void setInfoDiv(String html, String divID) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setInfoDiv(html, divID); }-*/; /** * Set the label of the marker. * * @param labelText the label text */ public native void setLabel(String labelText) /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.setLabel(labelText); }-*/; /** * Show the marker. */ public native void show() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); marker.show(); }-*/; /** * A FreeEarth compatible Marker. * * @return a FE.Pushpin object */ public native JavaScriptObject toFreeEarth() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toFreeEarth(); }-*/; /** * A Google Maps compatible Marker. * * @return a GMarker object */ public native JavaScriptObject toGoogle() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toGoogle(); }-*/; /** * A Map24 Marker. * * @return a Map24.Location object */ public native JavaScriptObject toMap24() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toMap24(); }-*/; /** * A MapQuest compatible Marker. * * @return a MQPoi object */ public native JavaScriptObject toMapQuest() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toMapQuest(); }-*/; /** * A Microsoft Virtual Earth compatible Marker. * * @return a VEPushpin object */ public native JavaScriptObject toMicrosoft() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toMicrosoft(); }-*/; /** * A MultiMap compatible Marker. * * @return a MMMarkerOverlay object */ public native JavaScriptObject toMultiMap() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toMultiMap(); }-*/; /** * An OpenLayers compatible Marker. * * @return a OpenLayers.Marker object */ public native JavaScriptObject toOpenLayers() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toOpenLayers(); }-*/; /** * A Yahoo compatible Marker. * * @return a YMarker object */ public native JavaScriptObject toYahoo() /*-{ var marker = this.@com.gwtext.client.core.JsObject::getJsObj()(); return marker.toYahoo(); }-*/; }