001    package com.google.gwt.maps.client.layers;
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    
008    /**
009     * This object defines the properties that can be set on a FusionTablesLayer object.
010     * <br><br>
011     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#FusionTablesLayerOptions">FusionTablesLayerOptions API Doc</a>
012     */
013    public class FusionTablesLayerOptions extends JavaScriptObject {
014    
015      /**
016       * use newInstance();
017       */
018      protected FusionTablesLayerOptions() {}
019      
020      /**
021       * creates - This object defines the properties that can be set on a FusionTablesLayer object.
022       */
023      public static final FusionTablesLayerOptions newInstance() {
024        return JavaScriptObject.createObject().cast();
025      }
026      
027      /**
028       * sets If true, the layer receives mouse events. Default value is true.
029       * @param clickable
030       */
031      public final native void setClickable(boolean clickable) /*-{
032        this.clickable = clickable;
033      }-*/;
034      
035      /**
036       * gets If true, the layer receives mouse events. Default value is true.
037       */
038      public final native boolean getClickable() /*-{
039        return this.clickable;
040      }-*/;
041      
042      /**
043       * sets Options which define the appearance of the layer as a heatmap.
044       * @param heatmap
045       */
046      public final native void setHeatmap(FusionTableHeatmap heatmap) /*-{
047        this.heatmap = heatmap;
048      }-*/;
049      
050      /**
051       * gets Options which define the appearance of the layer as a heatmap.
052       */
053      public final native FusionTableHeatmap getHeatmap() /*-{
054        return this.heatmap;
055      }-*/;
056      
057      /**
058       * Renders the layer on the specified map. If map is set to null, the layer will be removed.
059       * @param mapWidget
060       */
061      public final void setMap(MapWidget mapWidget) {
062        setMapImpl(mapWidget.getJso());
063      }
064    
065      private final native void setMapImpl(MapImpl map) /*-{
066        this.map = map;
067      }-*/;
068      
069      /**
070       * Returns the map on which this layer is displayed.
071       */
072      public final MapWidget getMap() {
073        return MapWidget.newInstance(getMapImpl());
074      }
075    
076      private final native MapImpl getMapImpl() /*-{
077        return this.map;
078      }-*/;
079      
080      /**
081       * sets Options defining the data to display.
082       * @param query
083       */
084      public final native void setQuery(FusionTablesQuery query) /*-{
085        this.query = query;
086      }-*/;
087      
088      /**
089       * gets Options defining the data to display.
090       */
091      public final native FusionTablesQuery getQuery() /*-{
092        return this.query;
093      }-*/;
094      
095      /**
096       * sets An array of up to 5 style specifications, which control the appearance of features within the layer.
097       * @param styles
098       */
099      public final native void setStyles(JsArray<FusionTablesStyle> styles) /*-{
100        this.styles = styles;
101      }-*/;
102      
103      /**
104       * gets An array of up to 5 style specifications, which control the appearance of features within the layer.
105       */
106      public final native JsArray<FusionTablesStyle> getStyles() /*-{
107        return this.styles;
108      }-*/;
109      
110      /**
111       * sets Suppress the rendering of info windows when layer features are clicked.
112       * @param suppressInfoWindows
113       */
114      public final native void setSuppressInfoWindows(boolean suppressInfoWindows) /*-{
115        this.suppressInfoWindows = suppressInfoWindows;
116      }-*/;
117      
118      /**
119       * gets Suppress the rendering of info windows when layer features are clicked.
120       */
121      public final native boolean getSuppressInfoWindows() /*-{
122        return this.suppressInfoWindows;
123      }-*/;
124      
125    }