content: package com.chap.links.client;
  
  import com.chap.links.client.DataTable;
  import com.chap.links.client.DataTable.Action;
  import com.google.gwt.core.client.EntryPoint;
  import com.google.gwt.core.client.JavaScriptObject;
  import com.google.gwt.json.client.JSONArray;
  import com.google.gwt.user.client.ui.RootPanel;
  import com.google.gwt.visualization.client.VisualizationUtils;
  
  /**
   * Entry point classes define <code>onModuleLoad()</code>.
   */
  public class TreeGridDemo1_basic_usage implements EntryPoint {
  	TreeGrid.Options options = null;
  	TreeGrid treegrid = null;
  	
  	/**
  	 * This is the entry point method.
  	 */
  	public void onModuleLoad() {
  		// Create a callback to be called when the visualization API
  		// has been loaded.
  		Runnable onLoadCallback = new Runnable() {
  			public void run() {
  				DataTable dataTable = new DataTable () {
  					@Override
  					public void onEvent(String event, JavaScriptObject items) {
  						JSONArray jsonItems = new JSONArray(items);
  						System.out.println("event=" + event + 
  								", items=" + jsonItems.toString());
  					}
  				};
  
  				for (int i = 0; i < 100; i++) {
  					dataTable.setField(i, "name", "Truck " + i);
  					dataTable.setField(i, "capacity", 100 * Math.round(Math.random() * 20));
  					dataTable.setField(i, "store", (Math.random() > 0.1) ? "main" : "spare");
  
  					Action action = new Action("edit");
  					dataTable.addAction(i, action);
  					action = new Action("delete");
  					dataTable.addAction(i, action);
  
  					DataTable childTable = new DataTable();
  					for (int j = 0; j < 5; j++) {
  						String priority = Math.random() > 0.2 ? "normal" : "high";
  						childTable.setField(j, "name", "Item " + j);
  						childTable.setField(j, "priority", priority);
  					}
  					dataTable.setChilds(i, childTable);
  				}
  				
  				// set options (optional)
  				options = TreeGrid.Options.create();
  				options.setHeight("400px");
  				options.setWidth("400px");
  				options.setItemsDefaultHeight(64);
  				
  				// create the treegrid, with data and options
  				treegrid = new TreeGrid(dataTable, options);
  				RootPanel.get("mytreegrid").add(treegrid);
  			}
  		};
  
  		// Load the visualization api, passing the onLoadCallback to be called
  		// when loading is done.
  		VisualizationUtils.loadVisualizationApi(onLoadCallback);
  	}
  }