package com.googlecode.gwt.charts.showcase.client.others;
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.format.PatternFormat;
import com.googlecode.gwt.charts.client.timeline.Timeline;
import com.googlecode.gwt.charts.client.timeline.TimelineOptions;
import com.googlecode.gwt.charts.showcase.client.util.DateUtils;
public class TimelineExample extends DockLayoutPanel {
private Timeline timeline;
public TimelineExample() {
super(Unit.PX);
initialize();
}
private void initialize() {
ChartLoader chartLoader = new ChartLoader(ChartPackage.TIMELINE);
chartLoader.loadApi(new Runnable() {
@Override
public void run() {
// Create and attach the chart
timeline = new Timeline();
add(timeline);
draw();
}
});
}
private void draw() {
// Prepare the data
DataTable dataTable = DataTable.create();
dataTable.addColumn(ColumnType.STRING, "Term");
dataTable.addColumn(ColumnType.STRING, "Name");
dataTable.addColumn(ColumnType.DATE, "Start");
dataTable.addColumn(ColumnType.DATE, "End");
dataTable.addRows(3);
dataTable.setValue(0, 0, "1");
dataTable.setValue(0, 1, "George Washington");
dataTable.setValue(0, 2, DateUtils.create(1789, 3, 29));
dataTable.setValue(0, 3, DateUtils.create(1797, 2, 3));
dataTable.setValue(1, 0, "2");
dataTable.setValue(1, 1, "John Adams");
dataTable.setValue(1, 2, DateUtils.create(1797, 2, 3));
dataTable.setValue(1, 3, DateUtils.create(1801, 2, 3));
dataTable.setValue(2, 0, "3");
dataTable.setValue(2, 1, "Thomas Jefferson");
dataTable.setValue(2, 2, DateUtils.create(1801, 2, 3));
dataTable.setValue(2, 3, DateUtils.create(1809, 2, 3));
PatternFormat format = PatternFormat.create("{0}<div style=\"color:red; font-style:italic\">{1}</div>");
format.format(dataTable, 0, 2);
// Set options
TimelineOptions options = TimelineOptions.create();
options.setShowRowLabels(false);
// Draw the chart
timeline.draw(dataTable, options);
}
}