树形控件是web前端展现的一个很重要的部分,所以在SmartGwt中也封装了该控件。构建一个Tree一般要先构建该Tree的TreeNode。SmartGwt中的TreeNode类只有两个构造函数一个是TreeNode()和TreeNode(JavaScriptObject jso)。故我们在建自己的树形的时候一般都是要使用自己的TreeNode,所以就要对TreeNode 进行继承另外地扩展一些我们用得到的展示的信息。如Id,name parent等
Tree一般是要放在TreeGrid上进行展示,通过Tree的setNamePorperty()可以设置Tree上展示的name,通过Tree的setIdField()可以设置tree的Id区域,通过Tree的setParentIdField()可以设置tree的父级区域。通过设置setModelTye()可以设置树形的两种展现方式,CHILDREN和PARENT两种展现方式。通过设置这些参数就可以建立起一个简单的树形。如下为一个简单的实例
public void onModuleLoad() {
TreeGrid treeGrid = new TreeGrid();
treeGrid.setWidth(300);
treeGrid.setHeight(400);
Tree testTree = new Tree();
testTree.setModelType(TreeModelType.PARENT);
testTree.setIdField("id");
testTree.setParentIdField("parent");
testTree.setNameProperty("name");
testTree.setShowRoot(false);
TestTreeNode[] nodeArray = new TestTreeNode[]{new TestTreeNode("1", "所有分组", ""),new TestTreeNode("2", "接口", "1"),
new TestTreeNode("5", "分组1", "2"),new TestTreeNode("3", "分组2", "1"),new TestTreeNode("4", "分组3", "3")};
testTree.setData(nodeArray);
treeGrid.setData(testTree);
treeGrid.draw();
}
public class TestTreeNode extends TreeNode {
TestTreeNode(String id,String name,String parent){
setAttribute("id", id);
setAttribute("name", name);
setAttribute("parent", parent);
}
}