001    package com.google.gwt.maps.client.weatherlib;
002    
003    import com.google.gwt.core.client.JavaScriptObject;
004    import com.google.gwt.maps.client.MapImpl;
005    import com.google.gwt.maps.client.MapWidget;
006    
007    /**
008     * This object defines the properties that can be set on a WeatherLayer object. <br>
009     * <br>
010     * See <a href=
011     * "https://developers.google.com/maps/documentation/javascript/reference#WeatherLayerOptions"
012     * >WeatherLayerOptions API Doc</a>
013     */
014    public class WeatherLayerOptions extends JavaScriptObject {
015    
016            /**
017             * use newInstance();
018             */
019            protected WeatherLayerOptions() {
020            }
021    
022            /**
023             * creates - This object defines the properties that can be set on a
024             * WeatherLayer object.
025             */
026            public static final WeatherLayerOptions newInstance() {
027                    return JavaScriptObject.createObject().cast();
028            }
029    
030            /**
031             * sets If true, the layer receives mouse events. Default value is true.
032             * 
033             * @param clickable
034             */
035            public final native void setClickable(boolean clickable) /*-{
036                    this.clickable = clickable;
037            }-*/;
038    
039            /**
040             * gets If true, the layer receives mouse events. Default value is true.
041             */
042            public final native boolean getClickable() /*-{
043                    return this.clickable;
044            }-*/;
045            
046            /**
047             * Sets the color of labels on the weather layer. If this is not explicitly set, the label color is chosen automatically depending on the map type.
048             * 
049             * @param labelColor
050             */
051            public final native void setLabelColor(LabelColor labelColor) /*-{
052                    this.labelColor = labelColor;
053            }-*/;
054            
055            /**
056             * Sets the color of labels on the weather layer.
057             */
058            public final native LabelColor getLabelColor() /*-{
059                    return this.labelColor;
060            }-*/;
061            
062            /**
063             * Sets the units to use for temperature.
064             * 
065             * @param temperatureUnits
066             */
067            public final native void setTemperatureUnits(TemperatureUnit temperatureUnits) /*-{
068                    this.temperatureUnits = temperatureUnits;
069            }-*/;
070            
071            /**
072             * Gets the units to use for temperature.
073             */
074            public final native TemperatureUnit getTemperatureUnits() /*-{
075                    return this.temperatureUnits;
076            }-*/;
077            
078            /**
079             * Sets the units to use for wind speed.
080             * 
081             * @param windSpeedUnits
082             */
083            public final native void setWindSpeedUnits(WindSpeedUnit windSpeedUnits) /*-{
084                    this.windSpeedUnits = windSpeedUnits;
085            }-*/;
086            
087            /**
088             * Gets the units to use for wind speed.
089             */
090            public final native WindSpeedUnit getWindSpeedUnits() /*-{
091                    return this.windSpeedUnits;
092            }-*/;
093    
094            /**
095             * Layer will be rendered to this map
096             * 
097             * @param mapWidget
098             */
099            public final void setMap(MapWidget mapWidget) {
100                    if (mapWidget == null) {
101                            setMapImpl(null);
102                    } else {
103                            setMapImpl(mapWidget.getJso());
104                    }
105            }
106    
107            private final native void setMapImpl(MapImpl map) /*-{
108                    this.map = map;
109            }-*/;
110    
111            /**
112             * Returns the map on which this layer is displayed.
113             */
114            public final MapWidget getMap() {
115                    return MapWidget.newInstance(getMapImpl());
116            }
117    
118            private final native MapImpl getMapImpl() /*-{
119                    return this.map;
120            }-*/;
121    
122            /**
123             * Sets Suppress the rendering of info windows when layer features are
124             * clicked.
125             * 
126             * @param suppressInfoWindows
127             */
128            public final native void setSuppressInfoWindows(boolean suppressInfoWindows) /*-{
129                    this.suppressInfoWindows = suppressInfoWindows;
130            }-*/;
131    
132            /**
133             * gets Suppress the rendering of info windows when layer features are
134             * clicked.
135             */
136            public final native boolean getSuppressInfoWindows() /*-{
137                    return this.suppressInfoWindows;
138            }-*/;
139    
140    }