home *** CD-ROM | disk | FTP | other *** search
/ Australian PC Authority 1999 May / may1999.iso / May / JBUILDER / JSAMPLES.Z / SampleTree.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-30  |  5.9 KB  |  131 lines

  1. import com.sun.java.swing.AbstractButton;
  2. import com.sun.java.swing.ButtonGroup;
  3. import com.sun.java.swing.JCheckBox;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.JFrame;
  6. import com.sun.java.swing.JMenu;
  7. import com.sun.java.swing.JMenuBar;
  8. import com.sun.java.swing.JMenuItem;
  9. import com.sun.java.swing.JPanel;
  10. import com.sun.java.swing.JRadioButton;
  11. import com.sun.java.swing.JScrollPane;
  12. import com.sun.java.swing.JTree;
  13. import com.sun.java.swing.ToolTipManager;
  14. import com.sun.java.swing.UIManager;
  15. import com.sun.java.swing.tree.DefaultMutableTreeNode;
  16. import com.sun.java.swing.tree.DefaultTreeModel;
  17. import com.sun.java.swing.tree.TreePath;
  18. import java.awt.BorderLayout;
  19. import java.awt.Color;
  20. import java.awt.Container;
  21. import java.awt.Dimension;
  22. import java.awt.FlowLayout;
  23. import java.awt.Font;
  24.  
  25. public class SampleTree {
  26.    protected JFrame frame;
  27.    protected JTree tree;
  28.    protected DefaultTreeModel treeModel;
  29.  
  30.    public SampleTree() {
  31.       try {
  32.          UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
  33.       } catch (Exception var5) {
  34.          System.err.println("Error loading L&F: " + var5);
  35.       }
  36.  
  37.       JMenuBar var1 = this.constructMenuBar();
  38.       JPanel var2 = new JPanel(true);
  39.       this.frame = new JFrame("SampleTree");
  40.       this.frame.getContentPane().add("Center", var2);
  41.       this.frame.setJMenuBar(var1);
  42.       this.frame.setBackground(Color.lightGray);
  43.       DefaultMutableTreeNode var3 = this.createNewNode("Root");
  44.       this.treeModel = new SampleTreeModel(var3);
  45.       this.tree = new JTree(this.treeModel);
  46.       ToolTipManager.sharedInstance().registerComponent(this.tree);
  47.       this.tree.setCellRenderer(new SampleTreeCellRenderer());
  48.       this.tree.setRowHeight(-1);
  49.       JScrollPane var4 = new JScrollPane();
  50.       ((JComponent)var4).setPreferredSize(new Dimension(300, 300));
  51.       var4.getViewport().add(this.tree);
  52.       ((Container)var2).setLayout(new BorderLayout());
  53.       ((Container)var2).add("Center", var4);
  54.       ((Container)var2).add("South", this.constructOptionsPanel());
  55.       this.frame.addWindowListener(new SampleTree$1());
  56.       this.frame.pack();
  57.       this.frame.show();
  58.    }
  59.  
  60.    private JPanel constructOptionsPanel() {
  61.       JPanel var2 = new JPanel(false);
  62.       JPanel var3 = new JPanel(false);
  63.       ((Container)var3).setLayout(new BorderLayout());
  64.       ((Container)var2).setLayout(new FlowLayout());
  65.       JCheckBox var1 = new JCheckBox("show handles");
  66.       ((AbstractButton)var1).setSelected(this.tree.getShowsRootHandles());
  67.       ((AbstractButton)var1).addChangeListener(new SampleTree$ShowHandlesChangeListener(this));
  68.       ((Container)var2).add(var1);
  69.       var1 = new JCheckBox("show root");
  70.       ((AbstractButton)var1).setSelected(this.tree.isRootVisible());
  71.       ((AbstractButton)var1).addChangeListener(new SampleTree$ShowRootChangeListener(this));
  72.       ((Container)var2).add(var1);
  73.       var1 = new JCheckBox("editable");
  74.       ((AbstractButton)var1).setSelected(this.tree.isEditable());
  75.       ((AbstractButton)var1).addChangeListener(new SampleTree$TreeEditableChangeListener(this));
  76.       ((JComponent)var1).setToolTipText("Triple click to edit");
  77.       ((Container)var2).add(var1);
  78.       ((Container)var3).add(var2, "North");
  79.       ButtonGroup var4 = new ButtonGroup();
  80.       JPanel var5 = new JPanel(false);
  81.       ((Container)var5).setLayout(new FlowLayout());
  82.       JRadioButton var6 = new JRadioButton("Single");
  83.       ((AbstractButton)var6).addActionListener(new SampleTree$2(this));
  84.       var4.add(var6);
  85.       ((Container)var5).add(var6);
  86.       var6 = new JRadioButton("Contiguous");
  87.       ((AbstractButton)var6).addActionListener(new SampleTree$3(this));
  88.       var4.add(var6);
  89.       ((Container)var5).add(var6);
  90.       var6 = new JRadioButton("Discontiguous");
  91.       ((AbstractButton)var6).addActionListener(new SampleTree$4(this));
  92.       ((AbstractButton)var6).setSelected(true);
  93.       var4.add(var6);
  94.       ((Container)var5).add(var6);
  95.       ((Container)var3).add(var5, "South");
  96.       return var3;
  97.    }
  98.  
  99.    private JMenuBar constructMenuBar() {
  100.       JMenuBar var2 = new JMenuBar();
  101.       JMenu var1 = new JMenu("File");
  102.       var2.add(var1);
  103.       JMenuItem var3 = var1.add(new JMenuItem("Exit"));
  104.       ((AbstractButton)var3).addActionListener(new SampleTree$5());
  105.       var1 = new JMenu("Tree");
  106.       var2.add(var1);
  107.       var3 = var1.add(new JMenuItem("Add"));
  108.       ((AbstractButton)var3).addActionListener(new SampleTree$AddAction(this));
  109.       var3 = var1.add(new JMenuItem("Insert"));
  110.       ((AbstractButton)var3).addActionListener(new SampleTree$InsertAction(this));
  111.       var3 = var1.add(new JMenuItem("Reload"));
  112.       ((AbstractButton)var3).addActionListener(new SampleTree$ReloadAction(this));
  113.       var3 = var1.add(new JMenuItem("Remove"));
  114.       ((AbstractButton)var3).addActionListener(new SampleTree$RemoveAction(this));
  115.       return var2;
  116.    }
  117.  
  118.    protected DefaultMutableTreeNode getSelectedNode() {
  119.       TreePath var1 = this.tree.getSelectionPath();
  120.       return var1 != null ? (DefaultMutableTreeNode)var1.getLastPathComponent() : null;
  121.    }
  122.  
  123.    protected DefaultMutableTreeNode createNewNode(String var1) {
  124.       return new DynamicTreeNode(new SampleData((Font)null, Color.black, var1));
  125.    }
  126.  
  127.    public static void main(String[] var0) {
  128.       new SampleTree();
  129.    }
  130. }
  131.