TreeUtils.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package ui.view.outliner;
  2. import javax.swing.ImageIcon;
  3. import javax.swing.JScrollPane;
  4. import javax.swing.JTree;
  5. import javax.swing.tree.DefaultMutableTreeNode;
  6. import javax.swing.tree.DefaultTreeCellRenderer;
  7. import util.ImageImport;
  8. public class TreeUtils {
  9. static void signIconsForTree(JTree tree) {
  10. ImageIcon ClosedIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Close.png",9,9));
  11. ImageIcon OpenIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Open.png",9,9));
  12. ImageIcon LeafIcon = new ImageIcon(ImageImport.loadImage("/Button_Images/Leaf.png",9,9));
  13. if (ClosedIcon != null && OpenIcon != null && LeafIcon!= null) {
  14. DefaultTreeCellRenderer renderer =
  15. new DefaultTreeCellRenderer();
  16. renderer.setClosedIcon(null);
  17. renderer.setOpenIcon(null);
  18. renderer.setLeafIcon(LeafIcon);
  19. tree.setCellRenderer(renderer);
  20. }
  21. }
  22. public static void expand(JTree tree) {
  23. for (int i = 0; i < tree.getRowCount(); i++) {
  24. tree.expandRow(i);
  25. }
  26. }
  27. static JScrollPane makePanelFromNode(DefaultMutableTreeNode node) {
  28. JTree stateTree = new JTree(node);
  29. return makeDefaultPanelFromTree(stateTree);
  30. }
  31. public static JScrollPane makePanelFromTree(JTree stateTree) {
  32. return new JScrollPane(stateTree);
  33. }
  34. public static JScrollPane makeDefaultPanelFromTree(JTree stateTree) {
  35. stateTree.setRootVisible(false);
  36. TreeUtils.signIconsForTree(stateTree);
  37. TreeUtils.expand(stateTree);
  38. return new JScrollPane(stateTree);
  39. }
  40. }