package com.googlecode.gwt.charts.showcase.client.others; import com.google.gwt.core.client.JsArray; import com.google.gwt.core.client.JsArrayMixed; import com.google.gwt.core.client.JsonUtils; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.googlecode.gwt.charts.client.ChartLoader; import com.googlecode.gwt.charts.client.ChartPackage; import com.googlecode.gwt.charts.client.ColumnType; import com.googlecode.gwt.charts.client.DataTable; import com.googlecode.gwt.charts.client.treemap.TreeMap; import com.googlecode.gwt.charts.client.treemap.TreeMapOptions; public class TreeMapExample extends DockLayoutPanel { private TreeMap treeMap; public TreeMapExample() { super(Unit.PX); initialize(); } private void initialize() { ChartLoader chartLoader = new ChartLoader(ChartPackage.TREEMAP); chartLoader.loadApi(new Runnable() { @Override public void run() { // Create and attach the chart treeMap = new TreeMap(); add(treeMap); draw(); } }); } private void draw() { JsArray<JsArrayMixed> dataArray = JsonUtils .unsafeEval("[['Global',null,0,0],['America','Global',0,0],['Europe','Global',0,0],['Asia','Global',0,0],['Australia','Global',0,0],['Africa','Global',0,0],['Brazil','America',11,10],['USA','America',52,31],['Mexico','America',24,12],['Canada','America',16,-23],['France','Europe',42,-11],['Germany','Europe',31,-2],['Sweden','Europe',22,-13],['Italy','Europe',17,4],['UK','Europe',21,-5],['China','Asia',36,4],['Japan','Asia',20,-12],['India','Asia',40,63],['Laos','Asia',4,34],['Mongolia','Asia',1,-5],['Israel','Asia',12,24],['Iran','Asia',18,13],['Pakistan','Asia',11,-52],['Egypt','Africa',21,0],['S. Africa','Africa',30,43],['Sudan','Africa',12,2],['Congo','Africa',10,12],['Zair','Africa',8,10]]"); // Prepare the data DataTable dataTable = DataTable.create(); dataTable.addColumn(ColumnType.STRING, "Location"); dataTable.addColumn(ColumnType.STRING, "Parent"); dataTable.addColumn(ColumnType.NUMBER, "Market trade volume (size)"); dataTable.addColumn(ColumnType.NUMBER, "Market increase/decrease (color)"); dataTable.addRows(dataArray); // Set options TreeMapOptions options = TreeMapOptions.create(); options.setMinColor("#ff7777"); options.setMidColor("#ffff77"); options.setMaxColor("#77ff77"); options.setHeaderHeight(15); options.setShowScale(true); // Draw the chart treeMap.draw(dataTable, options); } }