Where are those gwt extensions? I could not check out any thing!
	
		
			
			
				
	
							
						
					
					Originally posted by nlotz
					
				
				
			
		   public GwtRpcDataSource() {
      //setClientOnly(true);
   }
protected void executeFetch(final DSRequest request)
	{
		fetchEndpoint.callEndpoint(new AsyncCallback<Object>()
		{
			public void onFailure(Throwable caught)
			{
				fetchEndpoint.postFailure(caught);
			}
			public void onSuccess(Object object)
			{
				Collection<T> resultSet = fetchEndpoint.transformResult(object);
				 JavaScriptObject obj=request.getAttributeAsJavaScriptObject("parentNode");
			  	 TreeNode parentNode=new TreeNode(obj);
			  	 TreeNode[] nodes=new TreeNode[resultSet.size()];
			  	 
			  	 
			  	 int index=0;
				for (T result: resultSet)
				{
					
					DSRequest req = new DSRequest();
					req.setAttribute(DO_NOT_HANDLE, true);
					final TreeNode node = new TreeNode();
					populateRecord(node, result, request);
					nodes[index++]=node;
				}
				//http://forums.smartclient.com/showthread.php?t=173&highlight=client+tree
				// You have to pass somehow the Tree into DataSource. It is not good to make
				//DataSource depend on Tree. But this is the only way I can make it work.
				tree.addList(nodes, parentNode);
				// This approach does not work
				//parentNode.setChildren(nodes);
				fetchEndpoint.postSuccess(object);
			}
		}, request, parameters);
	}
protected abstract void populateRecord(ListGridRecord record, T object, DSRequest request);
protected void populateRecord(ListGridRecord record, Node node, DSRequest request)
	{
		record.setAttribute("name", node.getName());
		 JavaScriptObject obj=request.getAttributeAsJavaScriptObject("parentNode");
	  	 TreeNode parentNode=new TreeNode(obj);
	  	
		//need to set id based on request
		record.setAttribute("id", parentNode.getAttribute("id")+"."+node.getName());
		record.setAttribute("folder", true);
	}
public class RouterTab extends HLayout {
    private static DataSource dataSource = null;
    private VLayout vLayout = null;
    public RouterTab() {
        setHeight100();
        setWidth100();
        setMargin(10);        
        vLayout = new VLayout();
        vLayout.setWidth100();
        vLayout.setHeight100();
        vLayout.setPadding(10);
        addMember(vLayout);
        createDataGrid();
    }
    private void createDataGrid() throws IllegalStateException {
        dataSource = RouterDataSource.getInstance();
        final ListGrid listGrid = new ListGrid();
        listGrid.setWidth100();
        listGrid.setHeight100();
        listGrid.setAlternateRecordStyles(true);
        listGrid.setShowAllRecords(true);
        listGrid.setCanResizeFields(true);
        listGrid.setCanReorderFields(true);
        listGrid.setCanSort(true);
        ClientSession.getInstance().getLogger().info("setting datasource RouterDataSource...", null);
        listGrid.setDataSource(dataSource);
        listGrid.setAutoFetchData(true);
        listGrid.setShowFilterEditor(true);
        listGrid.setFilterOnKeypress(true);
        ClientSession.getInstance().getLogger().info("fetching data ...", null);
        listGrid.setAutoFitData(Autofit.BOTH);        
        listGrid.addRecordDoubleClickHandler(new RecordDoubleClickHandler() {
            public void onRecordDoubleClick(RecordDoubleClickEvent event) {
                GWT.log("clicked on record", null);
            }
        });
        GWT.log(RouterDataSource.getInstance().getTitle(), null);
        vLayout.addMember(listGrid);
        listGrid.fetchData();
    }
}
public class RouterDataSource extends GwtRpcDataSource<GWTMgtNetRouter> {
    public static String DATA_SOURCE_ID = "RouterDataSourceDS";
    private static RouterDataSource instance = null;
    public static RouterDataSource getInstance() {
        if (instance == null) {
            instance = new RouterDataSource();
        }
        return instance;
    }
    public RouterDataSource() {
        super();
        //setID(dataSourceId);
        setFetchEndpoint(new GwtRpcDataSourceEndpoint<GWTMgtNetRouter>() {
            @Override
            public void callEndpoint(AsyncCallback callback, Object... parameters) {
                ClientSession.getInstance().getLogger().info("event", null);
                MgtNetServiceAsync mgtNetService = ClientSession.getInstance().getMgtNetService();
                GWTUserContext context = ClientSession.getInstance().getGWTUserContext();
                mgtNetService.getMgtNetRouters(context, callback);
            }
        });
        setUpdateEndpoint(new GwtRpcDataSourceEndpoint<GWTMgtNetRouter>() {
            @Override
            public void callEndpoint(AsyncCallback callback, Object... parameters) {
                MgtNetServiceAsync stockService = GWT.create(MgtNetService.class);
                ListGridRecord record = (ListGridRecord) parameters[0];
            // edit
            //stockService.editStock(record.getAttributeAsInt("id"), record.getAttribute("symbol"), callback);
            }
        });
        setRemoveEndpoint(new GwtRpcDataSourceEndpoint<GWTMgtNetRouter>() {
            @Override
            public void callEndpoint(AsyncCallback callback, Object... parameters) {
                MgtNetServiceAsync stockService = GWT.create(MgtNetService.class);
                ListGridRecord record = (ListGridRecord) parameters[0];
            // remove
            //stockService.removeStock(record.getAttributeAsInt("id"), callback);
            }
        });
        setAddEndpoint(new GwtRpcDataSourceEndpoint<GWTMgtNetRouter>() {
            @Override
            public void callEndpoint(AsyncCallback callback, Object... parameters) {
                MgtNetServiceAsync stockService = GWT.create(MgtNetService.class);
                ListGridRecord record = (ListGridRecord) parameters[0];
            // add
            //stockService.addStock(record.getAttribute("symbol"), callback);
            }
        });
        DataSourceIntegerField idDataField = new DataSourceIntegerField("id", "ID");
        idDataField.setPrimaryKey(true);
        DataSourceTextField nameDataField = new DataSourceTextField("name", "Router Name");
        nameDataField.setCanEdit(false);
        DataSourceTextField ipAddressDataField = new DataSourceTextField("ipadress", "IP Adress");
        ipAddressDataField.setCanEdit(false);
        DataSourceDateField regDateDataField = new DataSourceDateField("regdate", "Register Date");
        regDateDataField.setCanEdit(false);
        DataSourceDateField updDateDataField = new DataSourceDateField("upddate", "Update Date");
        updDateDataField.setCanEdit(false);
        setFields(idDataField, nameDataField, ipAddressDataField, regDateDataField, updDateDataField);
    }
    @Override
    protected void populateRecord(ListGridRecord record, GWTMgtNetRouter gWTMgtNetRouter) {
        record.setAttribute("id", gWTMgtNetRouter.getId().intValue());
        record.setAttribute("name", gWTMgtNetRouter.getName());
        record.setAttribute("ipadress", gWTMgtNetRouter.getIpAddress());
        record.setAttribute("regdate", gWTMgtNetRouter.getRegDate());
        record.setAttribute("upddate", gWTMgtNetRouter.getUpdDate());
    }
}
Comment