1 package fr.ifremer.tutti.ui.swing.util.table;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.base.Preconditions;
26 import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
27 import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
28 import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
29
30 import java.io.Serializable;
31
32
33
34
35
36
37
38 public class CaracteristicColumnIdentifier<R> extends ColumnIdentifier<R> {
39
40 private static final long serialVersionUID = 1L;
41
42 public static <R> CaracteristicColumnIdentifier<R> newCaracteristicId(
43 Caracteristic caracteristic,
44 String propertyName,
45 String headerI18nKey,
46 String headerTipI18nKey) {
47
48 return new CaracteristicColumnIdentifier<>(caracteristic, propertyName,
49 headerI18nKey,
50 headerTipI18nKey
51 );
52 }
53
54 protected Caracteristic caracteristic;
55
56 protected CaracteristicColumnIdentifier(Caracteristic caracteristic,
57 String propertyName,
58 String headerI18nKey,
59 String headerTipI18nKey) {
60 super(propertyName, headerI18nKey, headerTipI18nKey);
61 this.caracteristic = caracteristic;
62 }
63
64 @Override
65 public Object getValue(R entry) {
66 CaracteristicMap map = (CaracteristicMap) super.getValue(entry);
67 return map.get(caracteristic);
68 }
69
70 @Override
71 public void setValue(R entry, Object value) {
72 CaracteristicMap map = (CaracteristicMap) super.getValue(entry);
73 Preconditions.checkNotNull(map, "caracteristicMap (" + getPropertyName() + ") is null in " + entry);
74
75 map = CaracteristicMap.copy(map);
76 map.put(caracteristic, (Serializable) value);
77
78 super.setValue(entry, map);
79 }
80
81 public Caracteristic getCaracteristic() {
82 return caracteristic;
83 }
84 }