📄 treenode.java
字号:
/* * Copyright 2004 original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.extremecomponents.tree.bean;import java.beans.PropertyDescriptor;import java.io.Serializable;import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * org.extremecomponents.tree.bean.TreeNode.java - * * @author Paul Horn */public class TreeNode extends HashMap implements Map, Serializable { private static Log logger = LogFactory.getLog(TreeNode.class); private static final long serialVersionUID = -1012054863887704736L; private Object identifier; private Object bean; private TreeNode parent; private List children; private int depth; private boolean open; public TreeNode() { super(); } public TreeNode(Object bean, Object identifier, int depth) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { if (bean instanceof Map) { this.putAll((Map) bean); } else { PropertyDescriptor[] descriptors = PropertyUtils.getPropertyDescriptors(bean.getClass()); for (int i = 0; i < descriptors.length; i++) { this.put(descriptors[i].getName(), BeanUtils.getProperty(bean, descriptors[i].getName())); } } setBean(bean); this.identifier = identifier; this.depth = depth; } /** * @param child */ public void addChild(Object child) { if (children == null) { children = new ArrayList(); } children.add(child); } /** * @return Returns the bean. */ public Object getBean() { return bean; } /** * @param bean * The bean to set. */ public void setBean(Object bean) { this.bean = bean; PropertyDescriptor[] descriptors = PropertyUtils.getPropertyDescriptors(bean); for (int i = 0; i < descriptors.length; i++) { try { String propertyName = descriptors[i].getDisplayName(); Object val = BeanUtils.getProperty(bean, propertyName); this.put(propertyName, val); } catch (Exception e) { logger.error("TreeNode.setBean() Problem", e); } } } /** * @return Returns the children. */ public List getChildren() { return children; } /** * @param children * The children to set. */ public void setChildren(List children) { this.children = children; } /** * @return Returns the parent. */ public TreeNode getParent() { return parent; } /** * @param parent * The parent to set. */ public void setParent(TreeNode parent) { this.parent = parent; } /** * @return Returns the depth. */ public int getDepth() { return depth; } /** * @param depth * The depth to set. */ public void setDepth(int depth) { this.depth = depth; } /** * @return Returns the open. */ public boolean isOpen() { return open; } /** * @param open * The open to set. */ public void setOpen(boolean open) { this.open = open; } /** * @return */ public Object getIdentifier() { return identifier; } /** * @param object */ public void setIdentifier(Object object) { identifier = object; } /** * @param object */ public boolean equals(Object obj) { TreeNode node = (TreeNode) obj; return (super.equals(obj) || this.identifier.equals(node.getIdentifier())); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -