Model Select:表格要展示的数据
Tree DataSource:树的数据源
数据源是自定义java类
实现接口:ITreeRetriever创建根节点、判断子节点、创建子节点
--数据源
package com.haiyisoft.bill.page.tree; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.haiyisoft.entity.UepContract;
import com.haiyisoft.entity.UepCustomer;
import com.haiyisoft.ep.common.jpa.util.JPAUtil;
import com.haiyisoft.ep.common.model.QueryParam;
import com.haiyisoft.ep.common.model.QueryParamList;
import com.haiyisoft.ep.framework.model.ITreeRetriever;
import com.haiyisoft.ep.framework.model.TreeBean; public class TreeSourceDP implements ITreeRetriever { @Override
public TreeBean createTree(String arg0) {
TreeBean root = new TreeBean();
if(arg0 != null && "".equals(arg0)){
root.setCode("0");
}else{
root.setCode(arg0);
}
root.setLabel("客户合同树根");
root.setType("ROOT"); return root;
} @Override
public boolean hasChild(TreeBean arg0) {
return this.retrieveNode(arg0).size()>0;
} @Override
public List<TreeBean> retrieveNode(TreeBean arg0) {
List<TreeBean> list = new ArrayList<TreeBean>();
if("ROOT".equals(arg0.getType())){
List<UepCustomer> dataList = JPAUtil.loadAll(UepCustomer.class);
for(UepCustomer entity : dataList){
TreeBean node = new TreeBean();
node.setCode(entity.getId().toString());
node.setLabel(entity.getCustomerName());
node.setType("CUSTOMER");
//向前台传递参数或属性
Map<String,String> extProp = new HashMap<String,String>();
extProp.put("config", node.getCode()+"_"+node.getLabel());
node.setExtProp(extProp); list.add(node);
}
}else if("CUSTOMER".equals(arg0.getType())){
QueryParamList params = new QueryParamList();
params.addParam("customerId",new BigDecimal(arg0.getCode()));
List<UepContract> dataList = JPAUtil.load(UepContract.class,params);
for(UepContract entity : dataList){
TreeBean node = new TreeBean();
node.setCode(entity.getId().toString()); node.setLabel(entity.getContractName());
node.setType("CONTRACT");
list.add(node);
}
} return list;
} }