1 package fr.ifremer.dali.ui.swing.util.validator;
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 import com.opensymphony.xwork2.validator.ValidationException;
27 import fr.ifremer.dali.dto.DaliBeans;
28 import fr.ifremer.dali.dto.ErrorAware;
29 import fr.ifremer.dali.dto.ErrorDTO;
30 import fr.ifremer.quadrige3.ui.core.dto.QuadrigeBean;
31 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliRowUIModel;
32 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIModel;
33 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
34
35 import static org.nuiton.i18n.I18n.t;
36
37
38
39
40
41
42 public class ControlTableExpressionValidator extends AbstractControlExpressionValidator {
43
44
45 @Override
46 public void validate(Object object) throws ValidationException {
47
48 Object objectValue = getFieldValue(getFieldName(), object);
49
50 if (!(objectValue instanceof AbstractDaliTableUIModel)) {
51 return;
52 }
53
54 AbstractDaliTableUIModel<? extends QuadrigeBean, ? extends AbstractDaliRowUIModel, ?> model =
55 (AbstractDaliTableUIModel<? extends QuadrigeBean, ? extends AbstractDaliRowUIModel, ?>) objectValue;
56
57 for (AbstractDaliRowUIModel row : model.getRows()) {
58 if (row instanceof ErrorAware) {
59
60 if (isErrorActive()) {
61 for (ErrorDTO error : DaliBeans.getErrors((ErrorAware) row, false)) {
62 addFieldErrorMessage(ApplicationUIUtil.removeHtmlTags(t("dali.validator.error", error.getMessage())));
63 }
64 }
65
66 if (isControlErrorActive()) {
67 for (ErrorDTO error : DaliBeans.getErrors((ErrorAware) row, true)) {
68 addFieldErrorMessage(ApplicationUIUtil.removeHtmlTags(t("dali.validator.error.control", error.getMessage())));
69 }
70 }
71
72 if (isWarningActive()) {
73 for (ErrorDTO warning : DaliBeans.getWarnings((ErrorAware) row, false)) {
74 addFieldErrorMessage(ApplicationUIUtil.removeHtmlTags(t("dali.validator.warning", warning.getMessage())));
75 }
76 }
77
78 if (isControlWarningActive()) {
79 for (ErrorDTO warning : DaliBeans.getWarnings((ErrorAware) row, true)) {
80 addFieldErrorMessage(ApplicationUIUtil.removeHtmlTags(t("dali.validator.warning.control", warning.getMessage())));
81 }
82 }
83 }
84 }
85 }
86
87 }
88