I'm currently evaluating v4.0 power edition of SmartGWT.
I got the CubeGrid (basic) example working with my own data. here's the ListGridRecord
then I create my CubeItem array
and create the cube as following:
and add it to my Layout.
When passing along an array it's showing the data, but when passing along a DataSource I get an error. The DataSource is defined as following:
the error I get is
I know I missed something, but am not able to find the problem
I got the CubeGrid (basic) example working with my own data. here's the ListGridRecord
Code:
public class CubeItem extends ListGridRecord {
public static final String kid = "cellID";
public static final String ip = "ips";
public static final String url = "urls";
public static final String hour = "hours";
public static final String day = "days";
public static final String value = "_value";
public static final String contents = "contents";
public static final String hilite = "_hilite";
public CubeItem() {
}
public CubeItem(int id, String hour, String day, int value, String content, String ip, String url) {
kid(id);
hour(hour);
day(day);
value(value);
contents(content);
ip(ip);
url(url);
}
// methods omitted
}Code:
DataSource ds = new CubeDs(CubeDs.idPrefix + SgwtUtils.getRandomPositiveInt());
int cnt = 0;
CubeItem[] data = new CubeItem[l.size()];
for (MetaTestObj m : l) {
CubeItem ci = new CubeItem(cnt, m.getHour(), m.getDay(), m.getUrlcount(), "url", m.getIp(), m.getUrl());
ds.addData(ci);
data[cnt] = ci;
cnt++;
}Code:
private void createCube(CubeItem[] data, String[] rows, String[] cols, DataSource ds) {
cubeGrid = new CubeGrid();
if(SC.hasDrawing()) {
cubeGrid.setEnableCharting(true);
}
cubeGrid.setCanMoveFacets(true);
cubeGrid.setWidth100();
cubeGrid.setHeight100();
cubeGrid.setHideEmptyFacetValues(true);
cubeGrid.setShowCellContextMenus(true);
cubeGrid.setAutoFetchData(false);
if (data != null) {
cubeGrid.setData(data);
}
cubeGrid.setColumnFacets(cols);
cubeGrid.setRowFacets(rows);
if (ds != null) {
cubeGrid.setDataSource(ds);
cubeGrid.fetchData();
}
}When passing along an array it's showing the data, but when passing along a DataSource I get an error. The DataSource is defined as following:
Code:
public class CubeDs extends DataSource {
public static final String idPrefix = "productRevenue";
public CubeDs(final String id) {
setID(id);
DataSourceIntegerField k = new DataSourceIntegerField(CubeItem.kid);
k.setPrimaryKey(true);
k.setRequired(true);
k.setHidden(true);
k.setCanEdit(false);
DataSourceTextField s = new DataSourceTextField(CubeItem.ip);
s.setCanEdit(false);
DataSourceTextField t = new DataSourceTextField(CubeItem.url);
t.setCanEdit(false);
DataSourceTextField r = new DataSourceTextField(CubeItem.day);
r.setCanEdit(false);
DataSourceTextField p = new DataSourceTextField(CubeItem.hour);
p.setCanEdit(false);
DataSourceTextField v = new DataSourceTextField(CubeItem.value);
v.setCanEdit(false);
DataSourceTextField c = new DataSourceTextField(CubeItem.contents);
c.setCanEdit(false);
setFields(k, s, t, r, p, v, c);
setClientOnly(true);
setAddGlobalId(false);
}
}Code:
(TypeError) @com.google.gwt.core.client.impl.Impl::apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)([JavaScript object(96), JavaScript object(72), JavaScript object(99)]): this.rowFields[i][0] is undefined