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 scale control.
007     * <br><br>
008     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#ScaleControlOptions">ScaleControlOptions API Doc</a> 
009     */
010    public class ScaleControlOptions extends JavaScriptObject {
011    
012      /**
013       * Options for the rendering of the scale control.
014       */
015      protected ScaleControlOptions() {}
016      
017      /**
018       * Options for the rendering of the scale control.
019       * @return ScaleControlOptions
020       */
021      public final static ScaleControlOptions newInstance() {
022        return JavaScriptObject.createObject().cast();
023      }
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      /**
037       * Position id. Used to specify the position of the control on the map. The default position is TOP_LEFT.
038       * @param position {@link ControlPosition}
039       */
040      public final void setPosition(ControlPosition position) {
041        setPositionImpl(position.value());
042      }
043    
044      private final native void setPositionImpl(int position) /*-{
045        this.position = position;
046      }-*/;
047      
048      /**
049       * set Style id. Used to select what style of scale control to display.
050       * @param style {@link ScaleControlStyle}
051       */
052      public final void setStyle(ScaleControlStyle style) {
053        setStyle(style.value());
054      }
055      
056      /**
057       * set Style id. Used to select what style of scale control to display.
058       * @param style 
059       */
060      private final native void setStyle(String style) /*-{
061        this.style = style;
062      }-*/;
063      
064      /**
065       * get Style id. Used to select what style of scale control to display.
066       * @return {@link ScaleControlStyle}
067       */
068      public final ScaleControlStyle getStyle() {
069        return ScaleControlStyle.fromValue(getStyleJs());
070      }
071      
072      /**
073       * get Style id. Used to select what style of scale control to display.
074       * @return String
075       */
076      private final native String getStyleJs() /*-{
077        return this.style;
078      }-*/;
079      
080    }