01: /*
02: * Lucane - a collaborative platform
03: * Copyright (C) 2005 Vincent Fiack <vfiack@mail15.com>
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: */
19:
20: package org.lucane.applications.sharedfolder.gui;
21:
22: import org.lucane.applications.sharedfolder.model.FolderInfo;
23: import org.lucane.applications.sharedfolder.SharedFolderPlugin;
24:
25: import javax.swing.*;
26: import javax.swing.tree.DefaultTreeCellRenderer;
27: import java.awt.*;
28:
29: public class FolderTreeRenderer extends DefaultTreeCellRenderer {
30: private ImageIcon folderIcon;
31: private String rootLabel;
32:
33: public FolderTreeRenderer(SharedFolderPlugin plugin) {
34: this .folderIcon = plugin.getImageIcon("folder.png");
35: this .rootLabel = plugin.tr("folder.root");
36: }
37:
38: public Component getTreeCellRendererComponent(JTree tree,
39: Object value, boolean sel, boolean expanded, boolean leaf,
40: int row, boolean hasFocus) {
41: Component cmp = super .getTreeCellRendererComponent(tree, value,
42: sel, expanded, leaf, row, hasFocus);
43: JLabel label = (JLabel) cmp;
44:
45: FolderInfo item = (FolderInfo) value;
46: if (item.getId() == FolderInfo.ROOT_ID)
47: label.setText(rootLabel);
48: else
49: label.setText(item.getName());
50:
51: label.setIcon(folderIcon);
52:
53: if (item.isWritable())
54: label.setForeground(Color.BLUE);
55: else if (item.isReadable())
56: label.setForeground(Color.BLACK);
57: else
58: label.setForeground(Color.GRAY);
59:
60: return label;
61: }
62: }
|