📄 nodefactoryimpl.java
字号:
package org.minjey.cjsjk.view.tree;import java.lang.reflect.Field;import java.util.HashMap;import java.util.LinkedList;import java.util.Properties;import java.util.Queue;import org.minjey.cjsjk.core.SysDict;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.Station;import org.minjey.cjsjk.model.Student;import org.minjey.cjsjk.model.StudentStatue;import org.minjey.cjsjk.util.PropertyDict;import org.minjey.cjsjk.util.PropertyLoader;import org.minjey.cjsjk.view.tree.node.MyTreeNode;import org.minjey.cjsjk.view.tree.node.Node4ClassLeaves;import org.minjey.cjsjk.view.tree.node.Node4ClassMajors;public class NodeFactoryImpl extends NodeFactory { private Properties properties; private HashMap<Class, Class> typeMap; public NodeFactoryImpl() { properties = PropertyLoader.loadSystemProperty(); buildTypeMap(); } @Override public Class getChildType(MyTreeNode node) { Object userObject = node.getUserObject(); Class userObjectClass = userObject.getClass(); return typeMap.get(userObjectClass); } @Override public Class getChildType(Object userObject) { return typeMap.get(userObject.getClass()); } @Override public boolean isNodeObject(Object obj) { Class cla = obj.getClass(); return typeMap.containsKey(cla); } @Override public HashMap<Integer, Object> getChildObjects(MyTreeNode node) { HashMap<Integer, Object> map= null; Class cla = getChildType(node); if(cla == null){ map = null; } else if(cla.equals(EnrollTime.class)) { map = SysDict.getENROLLTIME(); } else if(cla.equals(MajorLength.class)) { map = SysDict.getMAJORLENGTH(); } else if(cla.equals(MajorRecord.class)) { map = SysDict.getMAJORRECORD(); } else if(cla.equals(MajorType.class)) { map = SysDict.getMAJORTYPE(); } else if(cla.equals(ExamType.class)) { map = SysDict.getEXAMTYPE(); } else if(cla.equals(StudentStatue.class)) { map = SysDict.getSTUDENTSTATUE(); } else if(cla.equals(Station.class)) { map = SysDict.getSTATION(); } else if(cla.equals(Major.class)) { Node4ClassMajors ncm = (Node4ClassMajors)node; map = ncm.getMajors(); } else if(cla.equals(Course.class)) { Node4ClassLeaves ncl = (Node4ClassLeaves)node; map = ncl.getCourses(); } else if(cla.equals(Student.class)) { Node4ClassLeaves ncl = (Node4ClassLeaves)node; map = ncl.getStudents(); } return map; } private void buildTypeMap() { typeMap = new HashMap<Class, Class>(); Queue<Class> tqueue = this.getTqueue(); Class key = String.class; while(!tqueue.isEmpty()) { Class value = tqueue.poll(); typeMap.put(key, value); key = value; } typeMap.put(key, null); } private Queue<Class> getTqueue() { System.out.println("Loading Tree Panel Configuration..."); Queue<Class> tqueue = new LinkedList<Class>(); tqueue.offer(Station.class); Class[] list = new Class[10]; Class cla = PropertyDict.TREENODE.class; Field[] fields = cla.getDeclaredFields(); Object omap = null; for(int i = 0; i < fields.length; i ++) { try { String pname = fields[i].get(cla).toString(); String pi = properties.getProperty(pname); if(pi.equals("")) { continue; } else { int pos = Integer.parseInt(pi); //获取位置序号 String fname = fields[i].getName(); //获取变量名 if(fname.equals("ENROLLTIME")) { fname = "EnrollTime"; } else if(fname.equals("MAJORTYPE")) { fname = "MajorType"; } else if(fname.equals("MAJORRECORD")) { fname = "MajorRecord"; } else if(fname.equals("MAJORLENGTH")) { fname = "MajorLength"; } else { continue; } fname = "org.minjey.cjsjk.model." + fname; Class ocla = Class.forName(fname); list[pos] = ocla; } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } for(int i = 0; i < list.length; i ++) { if(list[i] == null) { continue; }else { tqueue.offer(list[i]); } } tqueue.offer(Major.class); boolean show = Boolean.valueOf(properties.getProperty(PropertyDict.COURSE)); if(show) { show = Boolean.valueOf(properties.getProperty(PropertyDict.EXAMTYPE)); if(show) { tqueue.offer(ExamType.class); } tqueue.offer(Course.class); } else { show = Boolean.valueOf(properties.getProperty(PropertyDict.STUDENT)); if(show) { show = Boolean.valueOf(properties.getProperty(PropertyDict.STUDENTSTATUE)); if(show) { tqueue.offer(StudentStatue.class); } tqueue.offer(Student.class); } } System.out.println("Tree Panel Configuration Load Finished."); return tqueue; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -