View Javadoc

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   * Draws labels for allowed dependencies green, for unallowed red.
17   *  
18   * @author webmaster@earth3d.org
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  }