Originally posted by kassec
My understanding is that lazy many-to-one relations do not cope with the GWT concept.
(I would be happy should anyone correct me on this.)
setAttribute("boss",entity.getBoss().getId());
class Person { private Integer id; private String name; private Person boss; }
DataSourceField field; field = new DataSourceIntegerField("id"); field.setPrimaryKey(true); field.setRequired(false); field.setCanEdit(false); addField(field); field = new DataSourceTextField("name"); field.setRequired(true); addField(field); field = new DataSourceIntegerField("boss"); field.setRequired(false); field.setForeignKey("id"); addField(field);
setAttribute("boss",entity.getBoss().getId());
public class TestEntry implements EntryPoint { @Override public void onModuleLoad() { final ListGrid grid = new ListGrid(); ListGridField lgf = new ListGridField("firstname", "First Name"); ListGridField lgf2 = new ListGridField("lastname", "Last Name"); grid.setShowFilterEditor(true); grid.setAutoFetchAsFilter(true); grid.setAutoFetchData(true); grid.setShowAllRecords(false); grid.setFields(lgf, lgf2); DataSource ds = new MyDS(); grid.setDataSource(ds); RootPanel.get().add(grid); } public static class MyDS extends GwtRpcDataSource { @Override protected void executeAdd(String requestId, DSRequest request, DSResponse response) { } @Override protected void executeRemove(String requestId, DSRequest request, DSResponse response) { } @Override protected void executeUpdate(String requestId, DSRequest request, DSResponse response) { } @Override protected void executeFetch(String requestId, DSRequest request, DSResponse response) { GWT.log("Fetch", null); ListGridRecord[] records = new ListGridRecord[3]; ListGridRecord lgr = new ListGridRecord(); lgr.setAttribute("firstname", "John"); lgr.setAttribute("lastname", "Smith"); records[0] = lgr; lgr = new ListGridRecord(); lgr.setAttribute("firstname", "Mike"); lgr.setAttribute("lastname", "Smith"); records[1] = lgr; lgr = new ListGridRecord(); lgr.setAttribute("firstname", "Bill"); lgr.setAttribute("lastname", "Roberts"); records[2] = lgr; response.setData(records); response.setTotalRows(records.length); processResponse(requestId, response); } } }
public abstract class AbstractRecord extends ListGridRecord
public void executeFetch(final String requestId, final DSRequest request, final DSResponse response) { Object critObject = request.getCriteria().getAttributeAsObject(PilotCriteria.SEARCH_CRITERIA); if (critObject != null) { getService().getAll(critObject, new AsyncCallback<List<IDTO>>() { public void onFailure(Throwable throwable) { response.setStatus(RPCResponse.STATUS_FAILURE); processResponse(requestId, response); } public void onSuccess(List<IDTO> contractDTOs) { SC.say(contractDTOs.size() + " документ(-ов) найдено."); List<AbstractRecord> records = new ArrayList<AbstractRecord>(); if (contractDTOs != null && contractDTOs.size() > 0) { for (IDTO document : contractDTOs) { records.add(createRecord(document)); } } response.setData(records.toArray(new AbstractRecord[]{})); response.setTotalRows(records.size()); processResponse(requestId, response); } }); } else { getService().getAll(new AsyncCallback<List<IDTO>>() { public void onFailure(Throwable throwable) { response.setStatus(RPCResponse.STATUS_FAILURE); processResponse(requestId, response); } public void onSuccess(List<IDTO> dataList) { List<AbstractRecord> records = new ArrayList<AbstractRecord>(); if (dataList != null && dataList.size() > 0) { for (IDTO document : dataList) { records.add(createRecord(document)); } } response.setData(records.toArray(new AbstractRecord[]{})); response.setTotalRows(records.size()); processResponse(requestId, response); } }); } }
Leave a comment: