Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

CubeGrid - ListGridRecord[] vs DataSource

$
0
0
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

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
}

then I create my CubeItem array
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++;
        }

and create the cube as following:

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();
        }
    }

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:

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);
    }
}

the error I get is
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
I know I missed something, but am not able to find the problem

Viewing all articles
Browse latest Browse all 4756

Trending Articles