/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.desktopapp.client.spreadsheet;
import com.sencha.gxt.core.client.ValueProvider;
public class ChartValueProvider implements ValueProvider<Row, Number> {
private int columnIndex;
private Worksheet worksheet;
public ChartValueProvider(Worksheet worksheet, int columnIndex) {
this.worksheet = worksheet;
this.columnIndex = columnIndex;
}
@Override
public String getPath() {
return worksheet.getValue(0, columnIndex);
}
@Override
public Number getValue(Row row) {
Number number;
String value = row.getColumns().get(columnIndex);
if (value.startsWith(Evaluator.EXPRESSION_MARKER)) {
int rowIndex = worksheet.getListStore().indexOf(row);
number = worksheet.evaluate(value, rowIndex, columnIndex);
} else {
try {
number = Double.parseDouble(value);
} catch (RuntimeException e) {
number = 0;
}
}
return number;
}
@Override
public void setValue(Row row, Number value) {
throw new UnsupportedOperationException();
}
}