📄 simpletree.java
字号:
package jm.framework.gui.module.jmtree;
import javax.swing.tree.TreeCellRenderer;
import jm.framework.gui.module.JMScrollPane;
import jm.framework.gui.module.jmtree.model.JMNode;
import jm.framework.gui.module.jmtree.model.JMTreeNode;
import jm.util.JM2DArray;
import jm.util.JMCheck;
import jm.util.JMMap;
import jm.util.JMVector;
/**
*
* <p>Title: SimpleTree</p>
*
* <p>Copyright: Copyright (c) 2004-2006</p>
*
* <p>Company: 1SHome</p>
*
* <p>@author Spook</p>
*
* @version 1.2.1
* @see JDK 1.5.0.6
*/
public class SimpleTree extends JMScrollPane {
/**
*
*/
private static final long serialVersionUID = 8353095462186051782L;
protected static final String CLASS_NAME = "SimpleTree";
JMTree tree = null;
Object data = null;
JMTreeNode root = null;
public SimpleTree (String name, JMVector<JMNode> datasSource) {
root = new JMTreeNode(JMNode.NODE_PATH, JMNode.NODE_CODE, name, JMNode.NODE_VALUE);
tree = new JMTree(root);
data = datasSource;
try {
creatTree();
this.getViewport().add(tree);
} catch (Exception ex) {
ex.printStackTrace();
}
}
//0:path,1:code,2:name,3:value
public SimpleTree (String name, JM2DArray datasSource) {
root = new JMTreeNode(JMNode.NODE_PATH, JMNode.NODE_CODE, name, JMNode.NODE_VALUE);
tree = new JMTree(root);
data = datasSource;
try {
creatTree();
this.getViewport().add(tree);
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 设置树的名称
* @param name String
*/
public void setRootName (String name) {
root.setNodeName(name);
}
/**
* 设置树
* @param treeCellRenderer TreeCellRenderer
*/
public void setCellRenderer (TreeCellRenderer treeCellRenderer) {
tree.setCellRenderer(treeCellRenderer);
}
/**
* 创建树
* @throws Exception
*/
public void init () throws Exception {
try {
tree.removeAll();
creatTree();
this.getViewport().add(tree);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void expandAllRow(){
try{
int rows = 1;
if (data instanceof JMVector) {
rows = ((JMVector) data).size();
} else if (data instanceof JM2DArray) {
rows = ((JM2DArray) data).rowCount();
}
for (int i = 0; i < rows; i++) {
tree.expandRow(i);
}
}catch(Exception e){
}
}
/**
* 创建树
* @throws Exception
*/
protected void creatTree () throws Exception {
if (data instanceof JMVector) {
creatTreeWithJMVector();
} else if (data instanceof JM2DArray) {
creatTreeWithJM2DArray();
}
}
/**
* 创建树
* @throws Exception
*/
@SuppressWarnings("unchecked")
protected void creatTreeWithJMVector () throws Exception {
if (data == null) {
return;
}
JMVector<JMTreeNode> dataSource = (JMVector<JMTreeNode>) data;
if (dataSource.size() == 0) {
return;
}
JMMap<String, JMTreeNode> values = new JMMap<String, JMTreeNode>();
while (values.size() < dataSource.size()) {
for (JMTreeNode tempInNode : dataSource)
{
addNode(values, tempInNode);
}
}
}
/**
* 创建树
* @throws Exception
*/
protected void creatTreeWithJM2DArray () throws Exception {
if (data == null) {
return;
}
JM2DArray dataSource = (JM2DArray) data;
if (dataSource.rowCount() == 0) {
return;
}
JMTreeNode tempInNode = null;
JMMap<String, JMTreeNode> values = new JMMap<String, JMTreeNode>();
// boolean treeSure = false;
//while (values.size() < dataSource.rowCount()) {
//生成Tree
for (int i = 0; i < dataSource.rowCount(); i++) {
if (values.containsKey(dataSource.getStringValue(i, JMNode.NODE_CODE))) {
continue;
}
tempInNode = new JMTreeNode(
dataSource.getStringValue(i, JMNode.NODE_PATH),
dataSource.getStringValue(i, JMNode.NODE_CODE),
dataSource.getStringValue(i, JMNode.NODE_NAME),
dataSource.getStringValue(i, JMNode.NODE_VALUE)
);
if(dataSource.getColNames().contains(JMNode.NODE_RESERVE01)){
tempInNode.getUserObject().setNodeReserve01(dataSource.getStringValue(i, JMNode.NODE_RESERVE01));
}
if(dataSource.getColNames().contains(JMNode.NODE_RESERVE02)){
tempInNode.getUserObject().setNodeReserve02(dataSource.getStringValue(i, JMNode.NODE_RESERVE02));
}
if(dataSource.getColNames().contains(JMNode.NODE_RESERVE03)){
tempInNode.getUserObject().setNodeReserve03(dataSource.getStringValue(i, JMNode.NODE_RESERVE03));
}
tempInNode.getUserObject().setNodeIndex(i);
addNode(values, tempInNode);
// if(JMNode.NODE_PATH_ROOT.equals(tempInNode.getNodePath())) treeSure = true;
}
//配置错误的时候中断
// if(!treeSure) break;
// }//生成结束
}
/**
* 创建树的内容
* @param values JMMap
* @param tempInNode JMTreeNode
* @throws Exception
*/
protected void addNode (JMMap<String, JMTreeNode> values, JMTreeNode tempInNode) throws Exception {
JMTreeNode tempOutNode = null;
String path = tempInNode.getNodePath();
String code = tempInNode.getNodeCode();
if (JMNode.NODE_PATH_ROOT.equals(path) || JMCheck.isNull(path)) {
root.add(tempInNode);
values.put(code, tempInNode);
} else {
tempOutNode = values.get(path);
if (!JMCheck.isNull(tempOutNode)) {
tempOutNode.add(tempInNode);
values.put(code, tempInNode);
}
}
}
public JMTree getTree () {
return tree;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -