1
2
3
4
5 package nl.tudelft.simulation.introspection.mapping;
6
7 import java.awt.Component;
8 import java.util.ArrayList;
9 import java.util.Collection;
10 import java.util.List;
11
12 import javax.swing.JLabel;
13 import javax.swing.JTable;
14 import javax.swing.table.DefaultTableCellRenderer;
15
16 /***
17 * Renders Collection values in a human-readable manner.
18 *
19 * @author <a
20 * href="http://web.eur.nl/fbk/dep/dep1/Introduction/Staff/People/Lang">Niels
21 * Lang </a><a
22 * @since 1.5
23 */
24 public class CollectionRenderer extends DefaultTableCellRenderer
25 {
26 /***
27 * @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,
28 * java.lang.Object, boolean, boolean, int, int)
29 */
30 @Override
31 public Component getTableCellRendererComponent(JTable table, Object value,
32 boolean isSelected, boolean hasFocus, int row, int column)
33 {
34 List<Object> coll = new ArrayList<Object>((Collection< ? >) value);
35 String content = "Collection of ";
36 if (coll.size() > 0)
37 content += getShortName(coll.get(0).getClass());
38 else
39 content += "?";
40 content += ": ";
41 for (int i = 0; i < coll.size(); i++)
42 content += coll.get(i).toString() + "; ";
43 return new JLabel(content);
44 }
45
46 /***
47 * Returns the short name of a class
48 *
49 * @param clasz the class
50 * @return the short name
51 */
52 private static String getShortName(Class clasz)
53 {
54 String name = clasz.getName();
55 return name.substring(name.lastIndexOf('.') + 1);
56 }
57 }