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 com.google.common.collect.Lists;
28 import com.google.common.collect.Sets;
29 import fr.ifremer.tutti.persistence.entities.data.Cruise;
30 import jaxx.runtime.SwingUtil;
31 import org.nuiton.validator.NuitonValidatorResult;
32 import org.nuiton.validator.NuitonValidatorScope;
33
34 import javax.swing.ImageIcon;
35 import java.util.List;
36 import java.util.Set;
37
38 import static org.nuiton.i18n.I18n.t;
39
40
41
42
43
44
45
46 public class CruiseTreeNode extends TuttiMessageNodeSupport<Cruise> {
47
48 private static final long serialVersionUID = 1L;
49
50 private static final ImageIcon CRUISE_ICON = SwingUtil.createActionIcon("cruise");
51
52 public CruiseTreeNode(Cruise cruise, NuitonValidatorResult validationResult) {
53 super(cruise, CRUISE_ICON, null);
54
55 setAllowsChildren(true);
56 createChildren(validationResult);
57 }
58
59 public void createChildren(NuitonValidatorResult validationResult) {
60
61 boolean withMessage = false;
62
63 if (validationResult.hasFatalMessages()) {
64 addMessages(NuitonValidatorScope.FATAL,
65 validationResult.getMessagesForScope(NuitonValidatorScope.FATAL));
66 withMessage = true;
67 }
68
69 if (validationResult.hasErrorMessagess()) {
70 addMessages(NuitonValidatorScope.ERROR,
71 validationResult.getMessagesForScope(NuitonValidatorScope.ERROR));
72 withMessage = true;
73 }
74
75 if (validationResult.hasWarningMessages()) {
76 addMessages(NuitonValidatorScope.WARNING,
77 validationResult.getMessagesForScope(NuitonValidatorScope.WARNING));
78 withMessage = true;
79 }
80
81 if (!withMessage) {
82 addMessages(NuitonValidatorScope.INFO,
83 Lists.newArrayList(t("tutti.validator.info.cruise.noError")));
84 }
85 }
86
87 protected void addMessages(NuitonValidatorScope scope, List<String> messages) {
88
89 Set<String> messageSet = Sets.newHashSet(messages);
90 for (String message : messageSet) {
91 MessageTreeNode child = new MessageTreeNode(scope, message, null);
92 this.add(child);
93 }
94 }
95
96 }