cleared some warnings
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / visual / workbench / WorkbenchTreeCellRenderer.java
1 package com.billkuker.rocketry.motorsim.visual.workbench;
2
3 import java.awt.Color;
4 import java.awt.Component;
5
6 import javax.swing.JTree;
7 import javax.swing.tree.DefaultMutableTreeNode;
8 import javax.swing.tree.DefaultTreeCellRenderer;
9
10 import com.billkuker.rocketry.motorsim.Motor;
11 import com.billkuker.rocketry.motorsim.Validating;
12 import com.billkuker.rocketry.motorsim.Validating.ValidationException;
13 import com.billkuker.rocketry.motorsim.visual.workbench.WorkbenchTreeModel.FuelNode;
14
15 public class WorkbenchTreeCellRenderer extends DefaultTreeCellRenderer {
16         private static final long serialVersionUID = 1L;
17
18         @Override
19         public Component getTreeCellRendererComponent(JTree tree, final Object value,
20                         boolean sel, boolean expanded, boolean leaf, int row,
21                         boolean hasFocus) {
22
23                 String tip = null;
24                 setTextNonSelectionColor(Color.black);
25                 setTextSelectionColor(Color.white);
26                 
27                 Object part = null;
28                 if (value instanceof DefaultMutableTreeNode) {
29                         part = ((DefaultMutableTreeNode) value).getUserObject();
30                 }
31                 
32                 if ( part instanceof Validating ){
33                                 try {
34                                         ((Validating)part).validate();
35                                 } catch (ValidationException e) {
36                                         setTextSelectionColor(Color.RED);
37                                         setTextNonSelectionColor(Color.RED);
38                                         setToolTipText(e.getMessage());
39                                         tip = e.getMessage();
40                                 }
41                 }
42                 
43                 super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,
44                                 row, hasFocus);
45
46                 if (part instanceof Motor) {
47                         setText(((Motor) part).getName());
48                 } else if ( value instanceof FuelNode ){
49                         setText(((FuelNode)value).getFuel().getName());
50                 } else if ( part instanceof String ) {
51                         setText((String)part);
52                 } else if ( part == null ) {
53                         setText("");
54                 } else {
55                         setText(part.getClass().getSimpleName());
56                 }
57                 setToolTipText(tip);
58                 
59
60
61                 return this;
62         }
63 }