1 package fr.ifremer.quadrige3.ui.swing.table.renderer;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import fr.ifremer.quadrige3.core.dao.technical.enumeration.EnumValue;
25 import fr.ifremer.quadrige3.core.dao.technical.enumeration.Enums;
26
27 import javax.swing.JTable;
28 import javax.swing.table.DefaultTableCellRenderer;
29 import java.awt.Component;
30
31
32
33
34 public class EnumValueCellRenderer extends DefaultTableCellRenderer {
35
36 private final Class enumClass;
37
38 public <E extends Enum<E>> EnumValueCellRenderer(Class<E> enumClass) {
39 this.enumClass = enumClass;
40 }
41
42 @Override
43 @SuppressWarnings("unchecked")
44 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
45
46 if (value instanceof EnumValue) {
47 value = ((EnumValue) value).getLabel();
48 } else if (value instanceof String) {
49 EnumValue enumValue = Enums.fromCode(enumClass, (String) value);
50 if (enumValue != null) value = enumValue.getLabel();
51 }
52
53 return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
54 }
55 }