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
25
26
27 import org.apache.commons.lang3.StringUtils;
28
29 import javax.swing.JLabel;
30 import javax.swing.JTable;
31 import javax.swing.table.TableCellRenderer;
32 import java.awt.Component;
33 import java.time.LocalDate;
34 import java.time.format.DateTimeFormatter;
35
36
37
38
39
40
41 public class LocalDateCellRenderer implements TableCellRenderer {
42
43 protected TableCellRenderer delegate;
44 protected DateTimeFormatter dateFormat;
45
46 public LocalDateCellRenderer(TableCellRenderer renderer, String datePattern) {
47 this.delegate = renderer;
48 if (datePattern != null) {
49 dateFormat = DateTimeFormatter.ofPattern(datePattern);
50 } else {
51 dateFormat = DateTimeFormatter.ISO_DATE;
52 }
53 }
54
55 @Override
56 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
57 JLabel render = (JLabel) delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
58 LocalDate date = (LocalDate) value;
59 String formatedDate = StringUtils.EMPTY;
60 if (date != null) {
61 formatedDate = dateFormat.format(date);
62 }
63 render.setText(formatedDate);
64 render.setToolTipText(formatedDate);
65 return render;
66
67 }
68
69 }