001 package com.google.gwt.maps.client.services;
002
003 import com.google.gwt.core.client.JavaScriptObject;
004 import com.google.gwt.dom.client.Element;
005 import com.google.gwt.maps.client.MapImpl;
006 import com.google.gwt.maps.client.MapWidget;
007 import com.google.gwt.maps.client.overlays.InfoWindow;
008 import com.google.gwt.maps.client.overlays.MarkerOptions;
009 import com.google.gwt.maps.client.overlays.PolylineOptions;
010
011 /**
012 * This object defines the properties that can be set on a DirectionsRenderer object.
013 * <br><br>
014 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#DirectionsRendererOptions">DirectionsRendererOptions API Doc</a>
015 */
016 public class DirectionsRendererOptions extends JavaScriptObject {
017
018 /**
019 * use newInstance();
020 */
021 protected DirectionsRendererOptions() {}
022
023 /**
024 * This object defines the properties that can be set on a DirectionsRenderer object.
025 */
026 public static final DirectionsRendererOptions newInstance() {
027 return JavaScriptObject.createObject().cast();
028 }
029
030 /**
031 * The directions to display on the map and/or in a <code><div></code> panel, retrieved as a DirectionsResult object from DirectionsService.
032 * @param directions
033 */
034 public final native void setDirections(DirectionsResult directions) /*-{
035 this.directions = directions;
036 }-*/;
037
038 /**
039 * The directions to display on the map and/or in a <code><div></code> panel, retrieved as a DirectionsResult object from DirectionsService.
040 */
041 public final native DirectionsResult getDirections() /*-{
042 return this.directions;
043 }-*/;
044
045 /**
046 * If true, allows the user to drag and modify the paths of routes rendered by this DirectionsRenderer.
047 * @param draggable
048 */
049 public final native void setDraggable(boolean draggable) /*-{
050 this.draggable = draggable;
051 }-*/;
052
053 /**
054 * If true, allows the user to drag and modify the paths of routes rendered by this DirectionsRenderer.
055 */
056 public final native boolean getDraggable() /*-{
057 return this.draggable;
058 }-*/;
059
060 /**
061 * This property indicates whether the renderer should provide UI to select amongst alternative routes. By default, this flag is false and a user-selectable list of routes will be shown in the directions' associated panel. To hide that list, set hideRouteList to true.
062 * @param hideRouteList
063 */
064 public final native void setHideRouteList(boolean hideRouteList) /*-{
065 this.hideRouteList = hideRouteList;
066 }-*/;
067
068 /**
069 * This property indicates whether the renderer should provide UI to select amongst alternative routes. By default, this flag is false and a user-selectable list of routes will be shown in the directions' associated panel. To hide that list, set hideRouteList to true.
070 */
071 public final native boolean getHideRouteList() /*-{
072 return hideRouteList;
073 }-*/;
074
075 /**
076 * The InfoWindow in which to render text information when a marker is clicked. Existing info window content will be overwritten and its position moved. If no info window is specified, the DirectionsRenderer will create and use its own info window. This property will be ignored if suppressInfoWindows is set to true.
077 * @param infoWindow
078 */
079 public final native void setInfoWindow(InfoWindow infoWindow) /*-{
080 this.infoWindow = infoWindow;
081 }-*/;
082
083 /**
084 * The InfoWindow in which to render text information when a marker is clicked. Existing info window content will be overwritten and its position moved. If no info window is specified, the DirectionsRenderer will create and use its own info window. This property will be ignored if suppressInfoWindows is set to true.
085 */
086 public final native InfoWindow getInfoWindow() /*-{
087 return this.infoWindow;
088 }-*/;
089
090 /**
091 * Map on which to display the directions.
092 * @param mapWidget
093 */
094 public final void setMap(MapWidget mapWidget) {
095 setMapImpl(mapWidget.getJso());
096 }
097
098 private final native void setMapImpl(MapImpl map) /*-{
099 this.map = map;
100 }-*/;
101
102 /**
103 * Map on which to display the directions.
104 */
105 public final MapWidget getMapWidget() {
106 return MapWidget.newInstance(getMapImpl());
107 }
108
109 private final native MapImpl getMapImpl() /*-{
110 return this.map;
111 }-*/;
112
113 /**
114 * Options for the markers. All markers rendered by the DirectionsRenderer will use these options.
115 * @param markerOptions
116 */
117 public final native void setMarkerOptions(MarkerOptions markerOptions) /*-{
118 this.markerOptions = markerOptions;
119 }-*/;
120
121 /**
122 * Options for the markers. All markers rendered by the DirectionsRenderer will use these options.
123 */
124 public final native MarkerOptions getMarkerOptions() /*-{
125 return this.markerOptions;
126 }-*/;
127
128 /**
129 * The <code><div></code> in which to display the directions steps.
130 * @param panel
131 */
132 public final native void setPanel(Element panel) /*-{
133 this.panel = panel;
134 }-*/;
135
136 /**
137 * The <code><div></code> in which to display the directions steps.
138 */
139 public final native Element getPanel() /*-{
140 return this.panel;
141 }-*/;
142
143 /**
144 * Options for the polylines. All polylines rendered by the DirectionsRenderer will use these options.
145 * @param polylineOptions
146 */
147 public final native void setPolylineOptions(PolylineOptions polylineOptions) /*-{
148 this.polylineOptions = polylineOptions;
149 }-*/;
150
151 /**
152 * Options for the polylines. All polylines rendered by the DirectionsRenderer will use these options.
153 */
154 public final native PolylineOptions getPolylineOptions() /*-{
155 return this.polylineOptions;
156 }-*/;
157
158 /**
159 * By default, the input map is centered and zoomed to the bounding box of this set of directions. If this option is set to true, the viewport is left unchanged, unless the map's center and zoom were never set.
160 * @param preserveViewport
161 */
162 public final native void setPreserveViewport(boolean preserveViewport) /*-{
163 this.preserveViewport = preserveViewport;
164 }-*/;
165
166 /**
167 * By default, the input map is centered and zoomed to the bounding box of this set of directions. If this option is set to true, the viewport is left unchanged, unless the map's center and zoom were never set.
168 */
169 public final native boolean getPreserveViewport() /*-{
170 return this.preserveViewport;
171 }-*/;
172
173 /**
174 * The index of the route within the DirectionsResult object. The default value is 0.
175 * @param routeIndex
176 */
177 public final native void setRouteIndex(int routeIndex) /*-{
178 this.routeIndex = routeIndex;
179 }-*/;
180
181 /**
182 * The index of the route within the DirectionsResult object. The default value is 0.
183 */
184 public final native int getRouteIndex() /*-{
185 return this.routeIndex;
186 }-*/;
187
188 /**
189 * Suppress the rendering of the BicyclingLayer when bicycling directions are requested.
190 * @param suppressBicyclingLayer
191 */
192 public final native void setSuppressBicyclingLayer(boolean suppressBicyclingLayer) /*-{
193 this.suppressBicyclingLayer = suppressBicyclingLayer;
194 }-*/;
195
196 /**
197 * Suppress the rendering of the BicyclingLayer when bicycling directions are requested.
198 */
199 public final native boolean getSuppressBicyclingLayer() /*-{
200 return this.suppressBicyclingLayer;
201 }-*/;
202
203 /**
204 * Suppress the rendering of info windows.
205 * @param suppressInfoWindows
206 */
207 public final native void setSuppressInfoWindows(boolean suppressInfoWindows) /*-{
208 this.suppressInfoWindows = suppressInfoWindows;
209 }-*/;
210
211 /**
212 * Suppress the rendering of info windows.
213 */
214 public final native boolean getSuppressInfoWindows() /*-{
215 return this.suppressInfoWindows;
216 }-*/;
217
218 /**
219 * Suppress the rendering of markers.
220 * @param suppressMarkers
221 */
222 public final native void setSuppressMarkers(boolean suppressMarkers) /*-{
223 this.suppressMarkers = suppressMarkers;
224 }-*/;
225
226 /**
227 * Suppress the rendering of markers.
228 */
229 public final native boolean getSuppressMarkers() /*-{
230 return this.suppressMarkers;
231 }-*/;
232
233 /**
234 * Suppress the rendering of polylines.
235 * @param suppressPolylines
236 */
237 public final native void setSuppressPolylines(boolean suppressPolylines) /*-{
238 this.suppressPolylines = suppressPolylines;
239 }-*/;
240
241 /**
242 * Suppress the rendering of polylines.
243 */
244 public final native boolean getSuppressPolylines() /*-{
245 return this.suppressPolylines;
246 }-*/;
247
248 }