📄 mytreenode.java
字号:
package org.minjey.cjsjk.view.tree.node;import java.util.HashMap;import java.util.Iterator;import javax.swing.tree.DefaultMutableTreeNode;import org.minjey.cjsjk.model.Course;import org.minjey.cjsjk.model.EnrollTime;import org.minjey.cjsjk.model.ExamType;import org.minjey.cjsjk.model.Major;import org.minjey.cjsjk.model.MajorLength;import org.minjey.cjsjk.model.MajorRecord;import org.minjey.cjsjk.model.MajorType;import org.minjey.cjsjk.model.Student;import org.minjey.cjsjk.model.StudentStatue;import org.minjey.cjsjk.util.Reflector;import org.minjey.cjsjk.view.tree.NodeFactory;import org.minjey.cjsjk.view.tree.NodeTypeConverter;public abstract class MyTreeNode extends DefaultMutableTreeNode { protected HashMap<Integer, MyTreeNode> childNodes; private NodeFactory factory; private boolean isVirtual; protected Reflector reflector; public MyTreeNode(Object userObject) { super(userObject); factory = NodeFactory.getNodeFactory(); isVirtual = false; reflector = new Reflector(); } public abstract void addNode(MyTreeNode node); public abstract void deleteNode(MyTreeNode node); public Class getChildType() { Object userObject = getUserObject(); return NodeFactory.getNodeFactory().getChildType(userObject); } public void setVirtualChild() { add(new Node4Virtual()); isVirtual = true; } public void buildChildNodes() { if(isLeaf() || isVirtual) { removeAllChildren(); HashMap<Integer, Object> cobjs = factory.getChildObjects(this); if(cobjs != null) { Iterator it = cobjs.values().iterator(); while(it.hasNext()) { Object uobj = it.next(); MyTreeNode node = NodeTypeConverter.objectToNode(uobj); add(node); } } isVirtual = false; } } public boolean isChildType(Object uobj) { Object userObject = getUserObject(); Class cla = factory.getChildType(userObject); return cla.isInstance(uobj); } protected boolean isLeagleChild(Object pobj, Object cobj) { boolean leagle = false; if(cobj instanceof EnrollTime || cobj instanceof MajorRecord || cobj instanceof MajorLength || cobj instanceof MajorType || cobj instanceof ExamType || cobj instanceof StudentStatue) { leagle = true; } else { if(pobj instanceof Major || pobj instanceof ExamType || pobj instanceof StudentStatue) { } else if(cobj instanceof Course || cobj instanceof Student) { cobj = reflector.getValue(cobj, "major"); } Class pcla = pobj.getClass(); String fieldname = pcla.getSimpleName().toLowerCase() + "_id"; Integer pid = (Integer)reflector.getValue(pobj, "id"); Integer crid = (Integer)reflector.getValue(cobj, fieldname); leagle = pid.equals(crid); } return leagle; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -