1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package jaxx.runtime.swing.renderer;
23
24 import org.nuiton.decorator.Decorator;
25
26 import javax.swing.JTable;
27 import javax.swing.table.DefaultTableCellRenderer;
28 import javax.swing.table.TableCellRenderer;
29 import java.awt.Component;
30 import javax.swing.JComponent;
31
32
33
34
35
36
37
38
39 public class DecoratorTableCellRenderer implements TableCellRenderer {
40
41
42 protected TableCellRenderer delegate;
43
44
45 protected Decorator<?> decorator;
46
47 protected boolean showToolTipText = false;
48
49 public DecoratorTableCellRenderer(Decorator<?> decorator) {
50 this(new DefaultTableCellRenderer(), decorator, false);
51 }
52
53 public DecoratorTableCellRenderer(Decorator<?> decorator, boolean showToolTipText) {
54 this(new DefaultTableCellRenderer(), decorator, showToolTipText);
55 }
56
57 public DecoratorTableCellRenderer(TableCellRenderer delegate, Decorator<?> decorator) {
58 this(new DefaultTableCellRenderer(), decorator, false);
59 }
60
61 public DecoratorTableCellRenderer(TableCellRenderer delegate,
62 Decorator<?> decorator,
63 boolean showToolTipText) {
64 this.delegate = delegate;
65 this.decorator = decorator;
66 this.showToolTipText = showToolTipText;
67 }
68
69 @Override
70 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasfocus, int row, int column) {
71 String text = null;
72 if (value != null) {
73 text = decorator.toString(value);
74 }
75 JComponent result =
76 (JComponent) delegate.getTableCellRendererComponent(table,
77 text,
78 isSelected,
79 hasfocus,
80 row,
81 column);
82 if (showToolTipText) {
83 result.setToolTipText(text);
84 }
85 return result;
86 }
87 }