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;
} }

UEP-树和表的更多相关文章

  1. jeecg入门操作—树型表单开发

    树表类型表单 表单创建,基础配置如下: 1.设置表单类型为:单表; 2.是否树选择:是; 3.设置特殊字段:[树形表单父id][树开表单列] 结果测试

  2. SNF软件开发机器人-子系统-功能-功能类型(普通表改为树型表)

    功能类型(普通表改为树型表) 功能类型分为普通功能和树形功能.因为资源表中不存在ParentId字段,故只能将多表的主表改为树型表. 1.效果展示: 2.使用说明: (1)当需要用一张普通的资源表显示 ...

  3. MySQL递归查询树状表的子节点、父节点具体实现

    mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...

  4. eas左树右表基础资料界面引用为左树右表F7的简单方法

    age:   /** * 加载配件F7(左树右表) * @param F7Filed           要加载的F7控件 * @param ctx               界面上下文 * @单据 ...

  5. zstu.4191: 无向图找环(dfs树 + 邻接表)

    4191: 无向图找环 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 117  Solved: 34 Description 给你一副无向图,每条边有 ...

  6. 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)

    题目链接 \(Description\) 给定一棵树.每次询问给定\(a\sim b,c\sim d\)两个下标区间,从这两个区间中各取一个点,使得这两个点距离最远.输出最远距离. \(n,q\leq ...

  7. BZOJ 4556: [Tjoi2016&Heoi2016]字符串(后缀数组 + 二分答案 + 主席树 + ST表 or 后缀数组 + 暴力)

    题意 一个长为 \(n\) 的字符串 \(s\),和 \(m\) 个询问.每次询问有 \(4\) 个参数分别为 \(a,b,c,d\). 要你告诉它 \(s[a...b]\) 中的所有子串 和 \(s ...

  8. luoguP5108 仰望半月的夜空 [官方?]题解 后缀数组 / 后缀树 / 后缀自动机 + 线段树 / st表 + 二分

    仰望半月的夜空 题解 可以的话,支持一下原作吧... 这道题数据很弱..... 因此各种乱搞估计都是能过的.... 算法一 暴力长度然后判断判断,复杂度\(O(n^3)\) 期望得分15分 算法二 通 ...

  9. [NOI2010][bzoj2006] 超级钢琴 [主席树/ST表+堆]

    题面: 传送门 思路: 首先容易想到用堆维护的O(n2logn)暴力 那么肯定就是在这个基础上套数据结构了[愉快] 然而我因为过于蒟蒻......只想得到主席树暴力***过去的方法 大概就是把前缀和算 ...

  10. HDU-6356 Glad You Came 线段树 ST表

    HDU-6356 题意:有m次操作,每次操作通过给定的随机函数生成 l , r , v,使得在 l 到 r 区间内,所有的a[i]变为max(a[i] , v). 最后输出n个a[i]* i的异或和. ...

随机推荐

  1. node.js stream

    stream是一个接口,流是可以从一个读取或写入数据的目标对象 ,Node 中有很多对象实现了这个接口   一.nodejs stream类型 1. Readable - 可读操作. Writable ...

  2. node学习心得

    此次学习主要使用的是基于nodejs平台的web应用开发框架. 一.express的工程结构 1.bin/www:express的执行入口,存放可执行文件: 2.node_modules:存放pack ...

  3. [编织消息框架][JAVA核心技术]动态代理应用6-设计生成类

    上篇介绍到rpc可以使用接口与实现类来约束书写 根据接口用javassist生成两个代理类 1.sendProxy 发送处理,调用方式可以是远程/本地 2.receiveProxy 接收处理,内部调用 ...

  4. 前端之 HTML🎃

    HTML这知识点很多很杂,所以整理很乱.所以将就看.

  5. PHP生成验证码

    <?php check_code(); function check_code($width = 100, $height = 50, $num = 4, $type = 'jpeg') { $ ...

  6. PHP进阶,使用交互模式进行快速测试实验?

    额,那啥,PHP很强,大家都知道哈.不过呢,在搞PHP里的人中,自然也要分高下的.当然了,我更喜欢用好玩来形容了. 什么叫做快速开发?我觉得,快就得快到随手写几个字,就能让代码跑起来!那么,PHP能做 ...

  7. Java Web高级编程(三)

    使用过滤器改进应用程序 一.过滤器的目的 过滤器是可以拦截访问资源的请求.资源的响应或者同时拦截两者的应用组件.过滤器可以检测和修改请求和响应,同时也可以拒绝.重定向或转发请求.javax.servl ...

  8. 关于SPF记录的说明

    详细了解SPF记录的可以查看一下这篇博文:http://www.renfei.org/blog/introduction-to-spf.html 关于 SPF SPF:Sender Policy Fr ...

  9. css布局--水平居中

    一.水平居中 1. 使用text-align和display:inline-block实现水平居中 html <div class="parent"> <div ...

  10. python 命令

    pip list 可以查看已经安装的插件 pip show name 可以查看插件的信息(如:pip show selenium) pip install selenium==[version num ...