KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > irplugin > gui > explorer > ExplorerCellRenderer


1 /*
2  * ExplorerCellRenderer.java
3  *
4  * All rights reserved.
5  * Copyright (C) 2005 JasperSoft Corporation
6  *
7  * JasperSoft Corporation
8  * 303 Second Street, Suite 450 North
9  * San Francisco, CA 94107
10  * http://www.jaspersoft.com
11  *
12  *
13  * Created on May 24, 2006, 3:04 PM
14  *
15  */

16
17 package com.jaspersoft.jasperserver.irplugin.gui.explorer;
18
19 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor;
20 import com.jaspersoft.jasperserver.irplugin.gui.RepositoryTreeCellRenderer;
21 import java.awt.Component JavaDoc;
22 import java.awt.Graphics JavaDoc;
23 import java.awt.Image JavaDoc;
24 import javax.swing.DefaultListCellRenderer JavaDoc;
25 import javax.swing.ImageIcon JavaDoc;
26 import javax.swing.JList JavaDoc;
27 import javax.swing.JTable JavaDoc;
28 import javax.swing.table.TableCellRenderer JavaDoc;
29
30 /**
31  *
32  * @author gtoffoli
33  */

34 public class ExplorerCellRenderer extends DefaultListCellRenderer JavaDoc {
35     
36     final static ImageIcon JavaDoc longIcon = new ImageIcon JavaDoc("long.gif");
37     final static ImageIcon JavaDoc shortIcon = new ImageIcon JavaDoc("short.gif");
38
39     boolean comboboxMode = false;
40     /* This is the only method defined by ListCellRenderer. We just
41      * reconfigure the Jlabel each time we're called.
42      */

43     public ExplorerCellRenderer(boolean mode)
44     {
45         super();
46         this.comboboxMode = mode;
47     }
48     
49     public ExplorerCellRenderer()
50     {
51         super();
52     }
53     
54     public Component JavaDoc getListCellRendererComponent(
55         JList JavaDoc list,
56     Object JavaDoc value, // value to display
57
int index, // cell index
58
boolean iss, // is the cell selected
59
boolean chf) // the list and the cell have the focus
60
{
61         /* The DefaultListCellRenderer class will take care of
62          * the JLabels text property, it's foreground and background
63          * colors, and so on.
64          */

65         super.getListCellRendererComponent(list, value, index, iss, chf);
66
67         /* We additionally set the JLabels icon property here.
68          */

69         if (value instanceof ResourceDescriptor)
70         {
71             ResourceDescriptor rd = (ResourceDescriptor)value;
72             
73             if (rd.getUriString().equals("/"))
74             {
75                 setIcon(RepositoryTreeCellRenderer.getResourceIcon( null ) );
76                 setText( "Repository root (/)" );
77             }
78             else
79             {
80                 
81                 ImageIcon JavaDoc iconImage = RepositoryTreeCellRenderer.getResourceIcon( rd );
82                 
83                 if (comboboxMode && index > 0)
84                 {
85                     Image JavaDoc image = new java.awt.image.BufferedImage JavaDoc(iconImage.getIconWidth() + 8*index, iconImage.getIconHeight(), java.awt.image.BufferedImage.TYPE_INT_RGB );
86                     
87                     Graphics JavaDoc g = image.getGraphics();
88                     
89                     g.setColor( (iss) ? list.getSelectionBackground() : list.getBackground() );
90                     g.fillRect(0,0,image.getWidth(null), image.getHeight(null));
91                     g.drawImage(iconImage.getImage(), 8*index,0,null);
92                     
93                     
94                     setIcon(new ImageIcon JavaDoc(image));
95                 }
96                 else
97                 {
98                   setIcon(iconImage);
99                 }
100                 setText( rd.getName() );
101             }
102         }
103     return this;
104     }
105 }
106
Popular Tags