package ui.view.outliner; import javax.swing.ImageIcon; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import utility.ImageImport; public class TreeUtils { static void signIconsForTree(JTree tree) { ImageIcon ClosedIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Close.png",9,9)); ImageIcon OpenIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Open.png",9,9)); ImageIcon LeafIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Leaf.png",9,9)); if (ClosedIcon != null && OpenIcon != null && LeafIcon!= null) { DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); renderer.setClosedIcon(null); renderer.setOpenIcon(null); renderer.setLeafIcon(LeafIcon); tree.setCellRenderer(renderer); } } static void expand(JTree tree) { for (int i = 0; i < tree.getRowCount(); i++) { tree.expandRow(i); } } static JScrollPane makePanelFromNode(DefaultMutableTreeNode node) { JTree stateTree = new JTree(node); return makeDefaultPanelFromTree(stateTree); } static JScrollPane makePanelFromTree(JTree stateTree) { return new JScrollPane(stateTree); } static JScrollPane makeDefaultPanelFromTree(JTree stateTree) { stateTree.setRootVisible(false); TreeUtils.signIconsForTree(stateTree); TreeUtils.expand(stateTree); return new JScrollPane(stateTree); } }