1 package fr.ifremer.tutti.ui.swing.content.validation.tree;
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 fr.ifremer.tutti.persistence.entities.data.Cruise;
28 import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
29 import org.nuiton.decorator.Decorator;
30
31 import javax.swing.JLabel;
32 import javax.swing.JTree;
33 import javax.swing.tree.DefaultTreeCellRenderer;
34 import java.awt.Component;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41
42
43
44 public class ValidationTreeCellRenderer extends DefaultTreeCellRenderer {
45
46 private static final long serialVersionUID = 1L;
47
48 private final Decorator<Cruise> cruiseDecorator;
49
50 private final Decorator<FishingOperation> fishingOperationDecorator;
51
52 public ValidationTreeCellRenderer(Decorator<Cruise> cruiseDecorator, Decorator<FishingOperation> fishingOperationDecorator) {
53 this.cruiseDecorator = cruiseDecorator;
54 this.fishingOperationDecorator = fishingOperationDecorator;
55 }
56
57 @Override
58 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
59 JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
60
61 if (value != null) {
62 if (value instanceof CruiseTreeNode) {
63 CruiseTreeNode node = (CruiseTreeNode) value;
64 String text = cruiseDecorator.toString(node.getUserObject());
65 label.setText(text);
66 label.setToolTipText(text);
67 label.setIcon(node.getIcon());
68
69 } else if (value instanceof OperationTreeNode) {
70 OperationTreeNode node = (OperationTreeNode) value;
71 String text = fishingOperationDecorator.toString(node.getUserObject());
72 label.setText(text);
73 label.setToolTipText(text);
74 label.setIcon(node.getIcon());
75
76 } else if (value instanceof MessageTreeNode) {
77 MessageTreeNode node = (MessageTreeNode) value;
78 String text = t(node.getUserObject());
79 label.setText(text);
80 label.setToolTipText(text);
81 label.setIcon(node.getIcon());
82 }
83 }
84 return label;
85 }
86 }