This is what I did in my wrapper:

package com.marathonizer.client.widgets;

import com.google.gwt.ajaxloader.client.ArrayHelper;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayString;
import com.google.gwt.dom.client.Element;
import com.google.gwt.visualization.client.AbstractDataTable;
import com.google.gwt.visualization.client.AbstractDrawOptions;
import com.google.gwt.visualization.client.Selectable;
import com.google.gwt.visualization.client.Selection;
import com.google.gwt.visualization.client.events.SelectHandler;
import com.google.gwt.visualization.client.visualizations.Visualization;

public class HeatMap extends Visualization<HeatMap.Options> implements 
Selectable {

/**
   * Options for drawing the chart.
   * 
   */
  public static class Options extends AbstractDrawOptions {
    public static Options create() {
      return JavaScriptObject.createObject().cast();
    }

    protected Options() {
    }

    public final native void setColors(JsArrayString colors) /*-{
      this.colors = colors;
    }-*/;

    public final void setColors(String... colors) {
      setColors(ArrayHelper.toJsArrayString(colors));
    }

    public final native void setHeight(int height) /*-{
      this.height = height;
    }-*/;

    public final void setRegion(String region) {
     setRegionJSNI(region.toLowerCase());
    }
    
    public final void setDisplayMode(DisplayMode displayMode ) {
     setDisplayMode(displayMode.name().toLowerCase());
     
    }

    public final native void setShowOneTab(boolean show) /*-{
      this.showOneTab = show;
    }-*/;

    public final void setSize(int width, int height) {
      setWidth(width);
      setHeight(height);
    }

    public final native void setWidth(int width) /*-{
      this.width = width;
    }-*/;

    private native void setRegionJSNI(String region) /*-{
      this.region = region;
    }-*/;
    
    private native void setDisplayMode(String displayMode) /*-{
      this.displayMode = displayMode;
    }-*/;
    
  }
//  /**
//   * Argument to {@link IntensityMap.Options#setRegion(String)}
//   */
//  public static enum Region {
//    AFRICA, ASIA, EUROPE, MIDDLE_EAST, SOUTH_AMERICA, USA, WORLD
//  }
//  
  public static enum DisplayMode {
  MARKERS, REGIONS, AUTO;
  }

  public static final String PACKAGE = "geochart";

  public HeatMap() {
    super();
  }

  public HeatMap(AbstractDataTable data, Options options) {
    super(data, options);
  }

  public final void addSelectHandler(SelectHandler handler) {
    Selection.addSelectHandler(this, handler);
  }

  public final JsArray<Selection> getSelections() {
    return Selection.getSelections(this);
  }

  public final void setSelections(JsArray<Selection> sel) {
    Selection.setSelections(this, sel);
  }

  @Override
  protected native JavaScriptObject createJso(Element parent) /*-{
    return new $wnd.google.visualization.GeoChart(parent);
  }-*/;

}


And here is my GWT Widget:


package com.marathonizer.client.widgets;

import com.google.gwt.core.client.GWT;

import com.google.gwt.uibinder.client.UiBinder;

import com.google.gwt.uibinder.client.UiField;

import com.google.gwt.user.client.ui.Composite;

import com.google.gwt.user.client.ui.VerticalPanel;

import com.google.gwt.user.client.ui.Widget;

import com.google.gwt.visualization.client.AbstractDataTable;

import com.google.gwt.visualization.client.AbstractDataTable.ColumnType;

import com.google.gwt.visualization.client.DataTable;

import com.google.gwt.visualization.client.VisualizationUtils;


public class VisualizingWidget extends Composite {

private static VisualizingWidgetUiBinder uiBinder = GWT
.create(VisualizingWidgetUiBinder.class);

interface VisualizingWidgetUiBinder extends UiBinder<Widget, 
VisualizingWidget> {

}

HeatMap.Options options;

@UiField

VerticalPanel visualizationHolder;

HeatMap imMap;

public VisualizingWidget() {

initWidget(uiBinder.createAndBindUi(this));

final Runnable onLoadCallbackGeochart = new Runnable() {

public void run() {

AbstractDataTable data = createLineTable();

options = createOptions();

imMap = new HeatMap(data, options);

visualizationHolder.add(imMap);

}

};

VisualizationUtils.loadVisualizationApi(onLoadCallbackGeochart,
HeatMap.PACKAGE);

};

private HeatMap.Options createOptions() {

HeatMap.Options optionsIm = HeatMap.Options.create();

// optionsIm.setWidth(400);

optionsIm.setHeight(500);

// optionsIm.setRegion("US"); <-- ERROR HERE

optionsIm.setColors("green", "blue");

return optionsIm;

}

private DataTable createLineTable() {

DataTable data = DataTable.create();

data.addColumn(ColumnType.STRING, "City");

data.addColumn(ColumnType.NUMBER, "Population");

data.addColumn(ColumnType.NUMBER, "Area");

data.addRows(8);


data.setValue(0, 0, "Rome");

data.setValue(0, 1, 2761477);

data.setValue(0, 2, 1285.31);


data.setValue(1, 0, "Milan");

data.setValue(1, 1, 1324110);

data.setValue(1, 2, 181.76);


data.setValue(2, 0, "Naples");

data.setValue(2, 1, 959574);

data.setValue(2, 2, 117.27);


data.setValue(3, 0, "Turin");

data.setValue(3, 1, 907563);

data.setValue(3, 2, 130.17);


data.setValue(4, 0, "Palermo");

data.setValue(4, 1, 655875);

data.setValue(4, 2, 158.9);


data.setValue(5, 0, "Genoa");

data.setValue(5, 1, 607906);

data.setValue(5, 2, 243.60);


data.setValue(6, 0, "Bologna");

data.setValue(6, 1, 380181);

data.setValue(6, 2, 140.7);


data.setValue(7, 0, "Florence");

data.setValue(7, 1, 371282);

data.setValue(7, 2, 102.41);

return data;

}

}

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-visualization-api/-/6juE23PIVCMJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to