package com.vci.client.omd.linktype; import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import com.vci.client.omd.ui.OmdTreeCellRenderer; import com.vci.corba.omd.ltm.LinkType; import com.vci.omd.utils.LinkTypeComparator; public class LinkTypeTree extends JTree{ /** * */ private static final long serialVersionUID = 403940569006997460L; private LinkType[] linkTypes; private static DefaultMutableTreeNode linkTypeRootNode = new DefaultMutableTreeNode("链接类型");; public LinkTypeTree(){ super(linkTypeRootNode, false); this.setAutoscrolls(true); //setCellRenderer(new LTTreeCellRenderer()); //设置单选模式 this.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); initOrUpdate(); this.setCellRenderer(new OmdTreeCellRenderer()); } public void initOrUpdate(){ try { linkTypes = LinkTypeStart.getService().getLinkTypes(); List ltList = Arrays.asList(linkTypes); Collections.sort(ltList, new LinkTypeComparator()); linkTypeRootNode = (DefaultMutableTreeNode) this.getModel().getRoot(); if(!linkTypeRootNode.isLeaf()){ linkTypeRootNode.removeAllChildren(); } for(LinkType lt : ltList){ LinkTypeWrapper wrapper = new LinkTypeWrapper(lt); DefaultMutableTreeNode node = new DefaultMutableTreeNode(wrapper); linkTypeRootNode.add(node); } // for(int i = 0; i < ltList.size(); i++){ // LinkTypeWrapper wrapper = new LinkTypeWrapper(ltList[i]); // DefaultMutableTreeNode node = new DefaultMutableTreeNode(wrapper); // linkTypeRootNode.add(node); // } this.updateUI(); this.expandPath(new TreePath(linkTypeRootNode)); }catch(Exception e){ e.printStackTrace(); } } }