1 package ca.uhn.hl7v2.testpanel.ui.conf; 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 ca.uhn.hl7v2.testpanel.model.conf.Table; 11 import ca.uhn.hl7v2.testpanel.model.conf.TableFile; 12 import ca.uhn.hl7v2.testpanel.ui.ImageFactory; 13 14 public class TableTreeRenderer extends DefaultTreeCellRenderer { 15 16 @Override 17 public Component getTreeCellRendererComponent(JTree theTree, Object theValue, boolean theSel, boolean theExpanded, boolean theLeaf, int theRow, boolean theHasFocus) { 18 super.getTreeCellRendererComponent(theTree, theValue, theSel, theExpanded, theLeaf, theRow, theHasFocus); 19 20 StringBuilder b = new StringBuilder(); 21 b.append("<html>"); 22 23 if (!theHasFocus) { 24 setBackground(Color.white); 25 } 26 27 Object obj = ((DefaultMutableTreeNode)theValue).getUserObject(); 28 if (obj instanceof TableFile) { 29 TableFile tf = (TableFile)obj; 30 b.append("Table File: "); 31 b.append(tf.getName()); 32 b.append(" ("); 33 b.append(tf.getFileName()); 34 b.append(")"); 35 setIcon(ImageFactory.getFile()); 36 } else if (obj instanceof Table) { 37 Table t = (Table)obj; 38 b.append(t.getCodeSystemName()); 39 b.append(" ("); 40 b.append(t.getCodeSystemId()); 41 b.append(") "); 42 b.append(t.getCodes().size()); 43 b.append(" code"); 44 if (t.getCodes().size() != 1) { 45 b.append('s'); 46 } 47 setIcon(ImageFactory.getTable()); 48 } else { 49 setIcon(null); 50 } 51 52 b.append("</html>"); 53 setText(b.toString()); 54 55 return this; 56 } 57 58 }