001    package com.google.gwt.maps.client.controls;
002    
003    import com.google.gwt.core.client.JavaScriptObject;
004    
005    /** 
006     * Options for the rendering of the zoom control.
007     * <br><br>
008     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#ZoomControlOptions">ZoomControlOptions API Doc</a>
009     */
010    public class ZoomControlOptions extends JavaScriptObject {
011    
012      /**
013       * creates Options for the rendering of the zoom control.
014       */
015      public final static ZoomControlOptions newInstance() {
016        return JavaScriptObject.createObject().cast();
017      }
018      
019      /**
020       * Options for the rendering of the zoom control.
021       * use newInstance();
022       */
023      protected ZoomControlOptions() {}
024      
025      /**
026       * Position id. Used to specify the position of the control on the map. The default position is TOP_LEFT.
027       */
028      public final ControlPosition getPosition() {
029        return ControlPosition.fromValue(getPositionImpl());
030      }
031      
032      private final native int getPositionImpl() /*-{
033        return this.position;
034      }-*/;
035      
036      public final native int getStyleJs() /*-{
037        return this.style;
038      }-*/;
039    
040      /**
041       * Position id. Used to specify the position of the control on the map. The default position is TOP_LEFT.
042       * @param position {@link ControlPosition}
043       */
044      public final void setPosition(ControlPosition position) {
045        setPositionImpl(position.value());
046      }
047     
048      private final native void setPositionImpl(int position) /*-{
049        this.position = position;
050      }-*/;
051      
052      private final native void setStyle(String type) /*-{
053        this.style = $wnd.google.maps.ZoomControlStyle[type]
054      }-*/;
055      
056      /*
057       * gets Style id. Used to select what style of zoom control to display.
058      public final ZoomControlStyle getStyle() {
059        return ZoomControlStyle.fromValue(getStyleJs());
060      }
061      */
062      
063      /**
064       * sets Style id. Used to select what style of zoom control to display.
065       * @param zoomControlStyle
066       */
067      public final void setStyle(ZoomControlStyle zoomControlStyle) {
068        setStyle(zoomControlStyle.value());
069      }
070      
071    }