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.DataColumn;
import com.googlecode.gwt.charts.client.DataTable;
import com.googlecode.gwt.charts.client.RoleType;
import com.googlecode.gwt.charts.client.corechart.LineChart;
import com.googlecode.gwt.charts.client.corechart.LineChartOptions;
import com.googlecode.gwt.charts.client.options.CurveType;
import com.googlecode.gwt.charts.client.options.Interval;
import com.googlecode.gwt.charts.client.options.IntervalStyle;
import com.googlecode.gwt.charts.client.options.Legend;
import com.googlecode.gwt.charts.client.options.LegendPosition;
public class IntervalExample extends DockLayoutPanel {
private LineChart chart;
public IntervalExample() {
super(Unit.PX);
initialize();
}
private void initialize() {
ChartLoader chartLoader = new ChartLoader(ChartPackage.CORECHART);
chartLoader.loadApi(new Runnable() {
@Override
public void run() {
// Create and attach the chart
chart = new LineChart();
add(chart);
draw();
}
});
}
private void draw() {
// Prepare the data
DataTable dataTable = DataTable.create();
dataTable.addColumn(ColumnType.STRING, "x");
dataTable.addColumn(ColumnType.NUMBER, "values");
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i0"));
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i1"));
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i2"));
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i2"));
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i2"));
dataTable.addColumn(DataColumn.create(ColumnType.NUMBER, RoleType.INTERVAL, "i2"));
dataTable.addRow("a", 100, 90, 110, 85, 96, 104, 120);
dataTable.addRow("b", 120, 95, 130, 90, 113, 124, 140);
dataTable.addRow("c", 130, 105, 140, 100, 117, 133, 139);
dataTable.addRow("d", 90, 85, 95, 85, 88, 92, 95);
dataTable.addRow("e", 70, 74, 63, 67, 69, 70, 72);
dataTable.addRow("f", 30, 39, 22, 21, 28, 34, 40);
dataTable.addRow("g", 80, 77, 83, 70, 77, 85, 90);
dataTable.addRow("h", 100, 90, 110, 85, 95, 102, 110);
// Set options
LineChartOptions options = LineChartOptions.create();
options.setCurveType(CurveType.FUNCTION);
options.setLineWidth(4);
options.setTitle("Line intervals, default");
options.setLegend(Legend.create(LegendPosition.NONE));
Interval interval0 = Interval.create(IntervalStyle.LINE);
interval0.setColor("#D3362D");
interval0.setLineWidth(0.5);
options.setInterval("i0", interval0);
Interval interval1 = Interval.create(IntervalStyle.LINE);
interval1.setColor("#F1CA3A");
interval1.setLineWidth(1);
options.setInterval("i1", interval1);
Interval interval2 = Interval.create(IntervalStyle.LINE);
interval2.setColor("#5F9654");
interval2.setLineWidth(2);
options.setInterval("i2", interval2);
// Draw the chart
chart.draw(dataTable, options);
}
}