Package com.gwtext.client.widgets.map

Source Code of com.gwtext.client.widgets.map.Marker

/*
* 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();
    }-*/;
}
TOP

Related Classes of com.gwtext.client.widgets.map.Marker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.