001    package nl.cwi.sen1.error.viewer;
002    
003    import java.awt.Color;
004    import java.awt.Component;
005    
006    import javax.swing.Icon;
007    import javax.swing.JTree;
008    import javax.swing.tree.DefaultTreeCellRenderer;
009    
010    import nl.cwi.sen1.error.model.ErrorNode;
011    
012    public class ErrorTreeCellRenderer extends DefaultTreeCellRenderer {
013            
014            public ErrorTreeCellRenderer() {
015                    Icon personIcon = null;
016            setLeafIcon(personIcon);
017            setClosedIcon(personIcon);
018            setOpenIcon(personIcon);
019            }
020            
021            public Component getTreeCellRendererComponent(JTree tree, Object value,
022                            boolean sel, boolean expanded, boolean leaf, int row,
023                            boolean hasFocus) {
024                    Color textNonSelectionColor = getTextNonSelectionColor();
025                    Color backgroundNonSelectionColor = getBackgroundNonSelectionColor();
026    
027                    if (value instanceof ErrorNode) {
028                            ErrorNode node = (ErrorNode) value;
029    
030                            if (node.isWarning()) {
031                                    setTextNonSelectionColor(new Color(0, 0, 255));
032                            } else if (node.isError()) {
033                                    setTextNonSelectionColor(new Color(255, 0, 0));
034                            } else if (node.isFatal()) {
035                                    setBackgroundNonSelectionColor(new Color(255, 0, 0));
036                            }
037                    }
038    
039                    Component comp = super.getTreeCellRendererComponent(tree, value, sel,
040                                    expanded, leaf, row, hasFocus);
041    
042                    setTextNonSelectionColor(textNonSelectionColor);
043                    setBackgroundNonSelectionColor(backgroundNonSelectionColor);
044    
045                    return comp;
046            }
047    }