@Drag Drop com DataSource baseado em XML não funciona no SmartGWT
Estou usando o exemplo:
http: //www.smartclient.com/smartgwt/showcase/#tree_interaction_drag_node
mas mudou a fonte de dados para o arquivo XML e agora não está funcionand
O XML usado é:
<RootNode>
<ChildNode>
<ChildID>2</ChildID>
<Name>ChildNode1</Name>
<ReportsTo>1</ReportsTo>
</ChildNode>
<ChildNode>
<ChildID>3</ChildID>
<Name>ChildNode1.1</Name>
<ReportsTo>2</ReportsTo>
</ChildNode>
<ChildNode>
<ChildID>4</ChildID>
<Name>ChildNode2</Name>
<ReportsTo>1</ReportsTo>
</ChildNode>
<ChildNode>
<ChildID>5</ChildID>
<Name>ChildNode2.1</Name>
<ReportsTo>4</ReportsTo>
</ChildNode>
<ChildNode>
<ChildID>6</ChildID>
<Name>ChildNode2.1.1</Name>
<ReportsTo>5</ReportsTo>
</ChildNode>
</RootNode>
whereas para grid1 e grid2 estou alterando as fontes de dados para o arquivo xml da seguinte maneira:
Ao invés de
grid1.setData(grid1Tree);
grid1.getData().openAll();
Estou usando
grid1.setAutoFetchData(true);
grid1.setDataSource(EmployeeXmlDS.getInstance());
grid1.draw();
E da mesma forma para grid2. E aqui está a implementação EmployeeXmlDS:
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceIntegerField;
import com.smartgwt.client.data.fields.DataSourceTextField;
public class EmployeeXmlDS extends DataSource {
private static EmployeeXmlDS instance = null;
public static EmployeeXmlDS getInstance() {
if (instance == null) {
instance = new EmployeeXmlDS("employeesDS");
}
return instance;
}
public EmployeeXmlDS(String id) {
setID(id);
setTitleField("Name");
setRecordXPath("/RootNode/ChildNode");
DataSourceTextField nameField = new DataSourceTextField("Name", "Name", 128);
DataSourceIntegerField childIdField = new DataSourceIntegerField("ChildID", "Child ID");
childIdField.setPrimaryKey(true);
childIdField.setRequired(true);
DataSourceIntegerField reportsToField = new DataSourceIntegerField("ReportsTo", "Parent");
reportsToField.setRequired(true);
reportsToField.setForeignKey(id + ".ChildID");
reportsToField.setRootValue("1");
setFields(nameField,childIdField,reportsToField);
setDataURL("ds/test_data/tree2.xml");
setClientOnly(true);
}
}
Por favor ajude