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

  1. import com.sun.java.swing.Icon;
  2. import com.sun.java.swing.ImageIcon;
  3. import com.sun.java.swing.JComponent;
  4. import com.sun.java.swing.JLabel;
  5. import com.sun.java.swing.JTree;
  6. import com.sun.java.swing.tree.DefaultMutableTreeNode;
  7. import com.sun.java.swing.tree.TreeCellRenderer;
  8. import java.awt.Color;
  9. import java.awt.Component;
  10. import java.awt.Font;
  11. import java.awt.Graphics;
  12.  
  13. public class SampleTreeCellRenderer extends JLabel implements TreeCellRenderer {
  14.    protected static Font defaultFont;
  15.    protected static ImageIcon collapsedIcon;
  16.    protected static ImageIcon expandedIcon;
  17.    protected static final Color SelectedBackgroundColor;
  18.    protected boolean selected;
  19.  
  20.    public Component getTreeCellRendererComponent(JTree var1, Object var2, boolean var3, boolean var4, boolean var5, int var6, boolean var7) {
  21.       String var8 = var1.convertValueToText(var2, var3, var4, var5, var6, var7);
  22.       ((JLabel)this).setText(var8);
  23.       ((JComponent)this).setToolTipText(var8);
  24.       if (var4) {
  25.          ((JLabel)this).setIcon(expandedIcon);
  26.       } else if (!var5) {
  27.          ((JLabel)this).setIcon(collapsedIcon);
  28.       } else {
  29.          ((JLabel)this).setIcon((Icon)null);
  30.       }
  31.  
  32.       SampleData var9 = (SampleData)((DefaultMutableTreeNode)var2).getUserObject();
  33.       if (var7) {
  34.          ((Component)this).setForeground(Color.cyan);
  35.       } else {
  36.          ((Component)this).setForeground(var9.getColor());
  37.       }
  38.  
  39.       if (var9.getFont() == null) {
  40.          ((JLabel)this).setFont(defaultFont);
  41.       } else {
  42.          ((JLabel)this).setFont(var9.getFont());
  43.       }
  44.  
  45.       this.selected = var3;
  46.       return this;
  47.    }
  48.  
  49.    public void paint(Graphics var1) {
  50.       Icon var3 = ((JLabel)this).getIcon();
  51.       Color var2;
  52.       if (this.selected) {
  53.          var2 = SelectedBackgroundColor;
  54.       } else if (((Component)this).getParent() != null) {
  55.          var2 = ((Component)this).getParent().getBackground();
  56.       } else {
  57.          var2 = ((Component)this).getBackground();
  58.       }
  59.  
  60.       var1.setColor(var2);
  61.       if (var3 != null && ((JLabel)this).getText() != null) {
  62.          int var4 = var3.getIconWidth() + ((JLabel)this).getIconTextGap();
  63.          var1.fillRect(var4, 0, ((JComponent)this).getWidth() - 1 - var4, ((JComponent)this).getHeight() - 1);
  64.       } else {
  65.          var1.fillRect(0, 0, ((JComponent)this).getWidth() - 1, ((JComponent)this).getHeight() - 1);
  66.       }
  67.  
  68.       super.paint(var1);
  69.    }
  70.  
  71.    static {
  72.       SelectedBackgroundColor = Color.yellow;
  73.  
  74.       try {
  75.          defaultFont = new Font("SansSerif", 0, 12);
  76.       } catch (Exception var2) {
  77.       }
  78.  
  79.       try {
  80.          collapsedIcon = new ImageIcon("images/collapsed.gif");
  81.          expandedIcon = new ImageIcon("images/expanded.gif");
  82.       } catch (Exception var1) {
  83.          System.out.println("Couldn't load images: " + var1);
  84.       }
  85.    }
  86. }
  87.