001    package com.google.gwt.maps.client.overlays;
002    
003    import com.google.gwt.core.client.JavaScriptObject;
004    import com.google.gwt.core.client.JsArray;
005    import com.google.gwt.maps.client.MapImpl;
006    import com.google.gwt.maps.client.MapWidget;
007    import com.google.gwt.maps.client.base.LatLng;
008    import com.google.gwt.maps.client.mvc.MVCArray;
009    
010    /**
011     * polyline options
012     * <br><br>
013     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#PolygonOptions">PolygonOptions API Doc</a>
014     */
015    public class PolylineOptions extends JavaScriptObject {
016      
017      /**
018       * use newInstance();
019       */
020      protected PolylineOptions() {}
021    
022      /**
023       * creates a new instance of options
024       */
025      public final static PolylineOptions newInstance() {
026        return JavaScriptObject.createObject().cast();
027      }
028      
029      /**
030       * sets Indicates whether this Polyline handles click events. Defaults to true.
031       * @param clickable
032       */
033      public final native void setClickable(boolean clickable) /*-{
034        this.clickable = clickable;
035      }-*/;
036      
037      /**
038       * gets Indicates whether this Polyline handles click events. Defaults to true.
039       */
040      public final native boolean getClickable() /*-{
041        return this.clickable;
042      }-*/;
043      
044      /**
045       * sets When true, render each edge as a geodesic (a segment of a "great circle"). A geodesic is the shortest path between two points along the surface of the Earth. When false, render each edge as a straight line on screen. Defaults to false.
046       * @param geodesic
047       */
048      public final native void setGeodesic(boolean geodesic) /*-{
049        this.geodesic = geodesic;
050      }-*/;
051      
052      /**
053       * gets When true, render each edge as a geodesic (a segment of a "great circle"). A geodesic is the shortest path between two points along the surface of the Earth. When false, render each edge as a straight line on screen. Defaults to false. 
054       */
055      public final native boolean getGeodesic() /*-{
056        return this.geodesic;
057      }-*/;
058      
059      /**
060       * sets Map on which to display Polyline.
061       * @param mapWidget
062       */
063      public final void setMap(MapWidget mapWidget) {
064        setMapImpl(mapWidget.getJso());
065      }
066    
067      private final native void setMapImpl(MapImpl map) /*-{
068        this.map = map;
069      }-*/;
070      
071      /**
072       * gets Map on which to display Polyline.
073       */
074      public final MapWidget getMapWidget() {
075        return MapWidget.newInstance(getMapImpl());
076      }
077    
078      private final native MapImpl getMapImpl() /*-{
079        return this.map;
080      }-*/;
081      
082      /**
083       * sets The ordered sequence of coordinates of the Polyline. This path may be specified using either a simple array of LatLngs, or an MVCArray of LatLngs. Note that if you pass a simple array, it will be converted to an MVCArray Inserting or removing LatLngs in the MVCArray will automatically update the polyline on the map.
084       * @param path
085       */
086      public final native void setPath(MVCArray<LatLng> path) /*-{
087        this.path = path;
088      }-*/;
089      
090      /**
091       * sets The ordered sequence of coordinates of the Polyline. This path may be specified using either a simple array of LatLngs, or an MVCArray of LatLngs. Note that if you pass a simple array, it will be converted to an MVCArray Inserting or removing LatLngs in the MVCArray will automatically update the polyline on the map.
092       * @param path
093       */
094      public final native void setPath(JsArray<LatLng> path) /*-{
095        this.path = path;
096      }-*/;
097      
098      /**
099       * gets The ordered sequence of coordinates of the Polyline. This path may be specified using either a simple array of LatLngs, or an MVCArray of LatLngs. Note that if you pass a simple array, it will be converted to an MVCArray Inserting or removing LatLngs in the MVCArray will automatically update the polyline on the map.
100       */
101      public final native MVCArray<LatLng> getPath_MVCArray() /*-{
102        return this.path;
103      }-*/;
104      
105      /**
106       * gets The ordered sequence of coordinates of the Polyline. This path may be specified using either a simple array of LatLngs, or an MVCArray of LatLngs. Note that if you pass a simple array, it will be converted to an MVCArray Inserting or removing LatLngs in the MVCArray will automatically update the polyline on the map.
107       */
108      public final native JsArray<LatLng> getPath_JsArray() /*-{
109        return this.path;
110      }-*/;
111      
112      /**
113       * sets The stroke color. All CSS3 colors are supported except for extended named colors.
114       * @param strokeColor
115       */
116      public final native void setStrokeColor(String strokeColor) /*-{
117        this.strokeColor = strokeColor;
118      }-*/;
119      
120      /**
121       * gets The stroke color. All CSS3 colors are supported except for extended named colors.
122       */
123      public final native String getStrokeColor() /*-{
124        return this.strokeColor;
125      }-*/;
126      
127      /**
128       * sets The stroke opacity between 0.0 and 1.0
129       * @param strokeOpacity
130       */
131      public final native void setStrokeOpacity(double strokeOpacity) /*-{
132        this.strokeOpacity = strokeOpacity;
133      }-*/;
134      
135      /**
136       * gets The stroke opacity between 0.0 and 1.0
137       */
138      public final native double getStrokeOpacity() /*-{
139        return this.strokeOpacity;
140      }-*/;
141      
142      /**
143       * sets The stroke width in pixels.
144       * @param strokeWeight
145       */
146      public final native void setStrokeWeight(int strokeWeight) /*-{
147        this.strokeWeight = strokeWeight;
148      }-*/;
149      
150      /**
151       * gets The stroke width in pixels.
152       */
153      public final native int getStrokeWeight() /*-{
154        return this.strokeWeight;
155      }-*/;
156      
157      /**
158       * sets The zIndex compared to other polys.
159       * @param zIndex
160       */
161      public final native void setZindex(int zIndex) /*-{
162        this.zIndex = zIndex;
163      }-*/;
164      
165      /**
166       * gets The zIndex compared to other polys.
167       */
168      public final native int getZindex() /*-{
169        return this.zIndex;
170      }-*/;
171      
172    }