DemoTree.java :  » Swing-Library » DJ-Project-0.9.9 » chrriis » dj » nativeswing » swtimpl » demo » Java Open Source

Java Open Source » Swing Library » DJ Project 0.9.9 
DJ Project 0.9.9 » chrriis » dj » nativeswing » swtimpl » demo » DemoTree.java
/*
 * Christopher Deckers (chrriis@nextencia.net)
 * http://www.nextencia.net
 *
 * See the file "readme.txt" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */
package chrriis.dj.nativeswing.swtimpl.demo;

import java.awt.Component;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;

/**
 * @author Christopher Deckers
 */
public class DemoTree extends JTree {

  protected static final Icon EXAMPLE_GROUP_ICON = new ImageIcon(DemoTree.class.getResource("resource/fldr_obj.gif"));
  protected static final Icon EXAMPLE_ICON = new ImageIcon(DemoTree.class.getResource("resource/brkp_obj.gif"));

  public DemoTree() {
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Demo");
    for(ExampleGroup exampleGroup: DemoExampleDefinitionLoader.getExampleGroupList()) {
      DefaultMutableTreeNode parent = new DefaultMutableTreeNode(exampleGroup);
      for(Example example: exampleGroup.getExamples()) {
        parent.add(new DefaultMutableTreeNode(example));
      }
      root.add(parent);
    }
    setModel(new DefaultTreeModel(root));
    setRootVisible(false);
    setShowsRootHandles(true);
    setCellRenderer(new DefaultTreeCellRenderer() {
      @Override
      public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
        Component c = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
        if(c instanceof JLabel) {
          Object userObject = ((DefaultMutableTreeNode)value).getUserObject();
          if(userObject instanceof ExampleGroup) {
            ((JLabel)c).setIcon(EXAMPLE_GROUP_ICON);
          } else if(userObject instanceof Example) {
            ((JLabel)c).setIcon(EXAMPLE_ICON);
          }
        }
        return c;
      }
    });
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.