Good afternoon, dear SmartGWT developers!
I have a fundamental(for me and my project) question. It's like "Am I behaving right or wrong?"
Every time when I look in SmartGWT showcase examples concerning grids, I see this:
	I know that almost everywhere in your examples you use XMLs as the datasources. And I understand how do you do it.
In my project I make calls to the server-side using RemoteServiceServlet class and AsyncCallback. And therefore in method onSuccess of AsyncCallback I use recieved result object to change my front-end correspondingly.
For example, I want to get list of objects using a stored procedure and update my ListGrid. Here is the code for it:
	For sure you can imagine that my MyObjectRecord class is something like this:
	I feel that something I do here I do wrong, although it all works. I mean the architecture thing. I assume that SmartGWT offers much more efficient way to do it.
I read the SmartGWT_Quick_Start_Guide.pdf and found lot of information about data binding and data sources there, BUT there are different approaches and there is said that I need SmartGWT server for some of them(can't recognize for which exactly).
Therefore considering that I'm using free SmartGWT version, can I use different approach in my task here? Can I use data sources here? How can I use it?
For sure I can make a static xml file on the server and read it from client using setDataSource, but I need to dynamically fill the grid, i.e. after server returns a resultset. Or do I need every time create this xml file from a RemoteServiceServlet and parse it from client somehow? Which approach can I use using free version of SmartGWT?
Thank you very much in advance! Your help in this question would be highly appreciated.
					I have a fundamental(for me and my project) question. It's like "Am I behaving right or wrong?"
Every time when I look in SmartGWT showcase examples concerning grids, I see this:
Code:
	
	DataSource dataSource = someDS.getInstance(); listGrid.setDataSource(dataSource);
In my project I make calls to the server-side using RemoteServiceServlet class and AsyncCallback. And therefore in method onSuccess of AsyncCallback I use recieved result object to change my front-end correspondingly.
For example, I want to get list of objects using a stored procedure and update my ListGrid. Here is the code for it:
Code:
	
	ObjectsGetterServiceAsync objectsGetterService = GWT.create(ObjectsGetterService.class);
final ListGrid listGrid = new ListGrid();  
listGrid.setShowAllRecords(true);
listGrid.setAlternateRecordStyles(true);
ListGridField objectNameField = new ListGridField("name", "Name", 200);  
ListGridField objectTypeField = new ListGridField("type", "Type", 200);  
ListGridField objectValueField = new ListGridField("value", "Value", 150);
ListGridField objectdescriptionField = new ListGridField("desrc", "Description", 500);
listGrid.setFields(new ListGridField[] {objectNameField, objectTypeField, objectValueField, objectdescriptionField});        
listGrid.setCanResizeFields(true);
AsyncCallback<List<MyObject>> callback = new AsyncCallback<List<MyObject>>()
{
    @Override
    public void onSuccess(List<MyObject> result)
    {
        if((result != null) && (result.size() > 0))
        {
            MyObjectRecord [] records = new MyObjectRecord[result.size()];
            int i = 0;
            for(MyObject obj: result)
            {
                MyObjectRecord r = new MyObjectRecord();
                r.setName(obj.getName());
                r.setType(obj.getType());
                r.setValue(obj.getValue());
                r.setDescription(obj.getDescription());
                records[i] = r;
                i++;
            }
        
            listGrid.setData(records);
        }            
        else
            SC.say("There is no objects!");
    }
    
    @Override
    public void onFailure(Throwable caught)
    {
        SC.warn("Getting objects failed!");
    }
};
objectsGetterService.getObjects(callback);
Code:
	
	public class MyObjectRecord extends ListGridRecord
{
    public Integer getName()
    {
        return getAttribute("name");
    }
    public void setName(String name)
    {
        setAttribute("name", name);
    }
    // etc...
}
I read the SmartGWT_Quick_Start_Guide.pdf and found lot of information about data binding and data sources there, BUT there are different approaches and there is said that I need SmartGWT server for some of them(can't recognize for which exactly).
Therefore considering that I'm using free SmartGWT version, can I use different approach in my task here? Can I use data sources here? How can I use it?
For sure I can make a static xml file on the server and read it from client using setDataSource, but I need to dynamically fill the grid, i.e. after server returns a resultset. Or do I need every time create this xml file from a RemoteServiceServlet and parse it from client somehow? Which approach can I use using free version of SmartGWT?
Thank you very much in advance! Your help in this question would be highly appreciated.

Comment