1 package net.sf.jlayercheck.gui;
2
3 import java.awt.Color;
4 import java.awt.Component;
5
6 import javax.swing.Icon;
7 import javax.swing.ImageIcon;
8 import javax.swing.JTree;
9 import javax.swing.tree.TreeCellRenderer;
10
11 import net.sf.jlayercheck.util.modeltree.ClassNode;
12 import net.sf.jlayercheck.util.modeltree.PackageNode;
13 import net.sf.jlayercheck.util.modeltree.UnallowedOrAllowedDependency;
14
15
16
17
18
19
20 public class DependenciesTreeCellRenderer extends ModelPackageClassRenderer
21 implements TreeCellRenderer {
22
23
24
25
26 private static final long serialVersionUID = -5484285023121201745L;
27
28 protected Icon classIcon = new ImageIcon(getClass().getResource("/class.png"));
29 protected Icon packageIcon = new ImageIcon(getClass().getResource("/package.png"));
30
31 @Override
32 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
33 if (value instanceof UnallowedOrAllowedDependency) {
34 UnallowedOrAllowedDependency dcn = (UnallowedOrAllowedDependency) value;
35
36 if (dcn.isUnallowedDependency()) {
37 setTextNonSelectionColor(Color.RED);
38 } else {
39 setTextNonSelectionColor(new Color(0, 128, 0));
40 }
41 } else {
42 setTextNonSelectionColor(null);
43 }
44
45 Component result = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
46
47 if (value instanceof ClassNode) {
48 setIcon(classIcon);
49 }
50 if (value instanceof PackageNode) {
51 setIcon(packageIcon);
52 }
53
54 return result;
55 }
56 }