📄 treetemp.java
字号:
package com.doone.test;
import java.util.HashMap;
import java.util.Map;
import com.doone.data.DataRow;
import com.doone.data.DataTable;
import com.doone.util.FileLogger;
import com.doone.web.Tree;
import com.doone.web.TreeNode;
import com.doone.web.TreeNodeList;
public class TreeTemp {
/**
* 根据DataTable构建树。
*
*/
public Tree Tree(DataTable dataSource) {
HashMap map = new HashMap(); // 存放根节点。
for ( int i=0; i<dataSource.getRows().getCount(); i++) {
map.put( dataSource.getRow(i).getString("PROD_TYPEIPROD_TYPE_ID"), dataSource.getRow(i).getString("PROD_TYPEIPROD_TYPE_NAME") );
}
Tree tree = new Tree();
loadTree(tree.getChildNodes(), map, dataSource, "");
return tree;
}
/**
* 从DataTable中加载树节点。
*
* @param dataSource
* DataTable数据源
* @param fields
* 各节点属性对应的字段名称。
* @param upid
* 父节点编号
* @param filterValue
* 过滤字段名称
*/
private void loadTree(TreeNodeList nodeList, Map map, DataTable dataSource,
String str) {
while (! map.isEmpty() ) {
String sID = null;
String sName = null;
Object[] keys = map.keySet().toArray();
for ( int i=0; i<keys.length; i++) {
String tmp = (String)map.get(keys[i]);
if ( tmp.length() - str.length() > 0 ) {
String lastStr = tmp.substring(tmp.length()-str.length(), tmp.length());
if ( str.equals(lastStr)) {
sID = (String)keys[i];
sName = tmp;
map.remove(sID);
break;
}
}
}
if ( sID == null || sName == null ) break;
try {
TreeNode node = nodeList.addTreeNode();
node.setId(sID);
node.setText(sName);
for ( int i=0; i<dataSource.getRows().getCount(); i++) {
DataRow dr = dataSource.getRow(i);
if ( sID.equals(dr.getString("PROD_TYPEIPROD_TYPE_ID")) ) {
TreeNode child = node.getChildNodes().addTreeNode();
if ( ! dr.getString("PRODIPROD_ID").equals("")) {
child.setId(dr.getString("PRODIPROD_ID"));
child.setText(dr.getString("PRODIPROD_NAME"));
}
}
}
loadTree(node.getChildNodes(),map, dataSource, sName);
} catch (Exception ex) {
FileLogger.getLogger().info(ex.getMessage(), ex);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -