1 package fr.ifremer.dali.ui.swing.content.manage.rule.controlrule.precondition;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import com.google.common.collect.HashMultimap;
25 import com.google.common.collect.Multimap;
26 import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
27 import fr.ifremer.dali.dto.referential.pmfm.QualitativeValueDTO;
28 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIModel;
29
30 import java.util.Collection;
31
32
33
34
35 public class RulePreconditionUIModel extends AbstractDaliTableUIModel<QualitativeValueDTO, RulePreconditionRowModel, RulePreconditionUIModel> {
36
37 private PmfmDTO basePmfm;
38 public static final String PROPERTY_BASE_PMFM = "basePmfm";
39 private PmfmDTO usedPmfm;
40 public static final String PROPERTY_USED_PMFM = "usedPmfm";
41 private boolean adjusting;
42
43 private Multimap<QualitativeValueDTO, QualitativeValueDTO> qvMap;
44
45 public PmfmDTO getBasePmfm() {
46 return basePmfm;
47 }
48
49 public void setBasePmfm(PmfmDTO basePmfm) {
50 this.basePmfm = basePmfm;
51 firePropertyChange(PROPERTY_BASE_PMFM, null, basePmfm);
52 }
53
54 public PmfmDTO getUsedPmfm() {
55 return usedPmfm;
56 }
57
58 public void setUsedPmfm(PmfmDTO usedPmfm) {
59 this.usedPmfm = usedPmfm;
60 firePropertyChange(PROPERTY_USED_PMFM, null, usedPmfm);
61 }
62
63 public void setQvMap(Multimap<QualitativeValueDTO, QualitativeValueDTO> qvMap) {
64 this.qvMap = qvMap;
65 }
66
67 public Multimap<QualitativeValueDTO, QualitativeValueDTO> getQvMap() {
68 if (qvMap == null) {
69 qvMap = HashMultimap.create();
70 }
71 return qvMap;
72 }
73
74 public boolean isAdjusting() {
75 return adjusting;
76 }
77
78 public void setAdjusting(boolean adjusting) {
79 this.adjusting = adjusting;
80 }
81
82
83 public void setSelectedValues(Collection<QualitativeValueDTO> values) {
84 QualitativeValueDTO key = getSingleSelectedRow().toBean();
85 getQvMap().removeAll(key);
86 getQvMap().putAll(key, values);
87 if (!isAdjusting()) {
88 setModify(true);
89
90 firePropertyChange(PROPERTY_MODIFY, false, true);
91 }
92 }
93
94 public boolean isRulePreconditionValid() {
95 return !getQvMap().isEmpty() && !getQvMap().values().isEmpty();
96 }
97
98 public void setRulePreconditionValid(boolean dummy) {
99 }
100
101 }