View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.rule.controlrule.precondition;
2   
3   /*-
4    * #%L
5    * Dali :: UI
6    * %%
7    * Copyright (C) 2017 - 2018 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Affero General Public License as published by
11   * the Free Software Foundation, either version 3 of the License, or
12   * (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   *
19   * You should have received a copy of the GNU Affero General Public License
20   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21   * #L%
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   * @author peck7 on 05/02/2018.
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      // setter used by usedRuleQVDoubleList
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              // force validation
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 }