View Javadoc
1   
2   package fr.ifremer.tutti.ui.swing.content.operation.fishing;
3   
4   /*
5    * #%L
6    * Tutti :: UI
7    * %%
8    * Copyright (C) 2012 - 2014 Ifremer
9    * %%
10   * This program is free software: you can redistribute it and/or modify
11   * it under the terms of the GNU General Public License as
12   * published by the Free Software Foundation, either version 3 of the 
13   * License, or (at your option) any later version.
14   * 
15   * This program is distributed in the hope that it will be useful,
16   * but WITHOUT ANY WARRANTY; without even the implied warranty of
17   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18   * GNU General Public License for more details.
19   * 
20   * You should have received a copy of the GNU General Public 
21   * License along with this program.  If not, see
22   * <http://www.gnu.org/licenses/gpl-3.0.html>.
23   * #L%
24   */
25  
26  import com.google.common.base.Predicates;
27  import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
28  import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
29  import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
30  import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
31  import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
32  import org.nuiton.jaxx.application.swing.tab.TabContentModel;
33  
34  import java.io.Serializable;
35  import java.util.List;
36  
37  /**
38   * @author Kevin Morin - kmorin@codelutin.com
39   * @since 1.0
40   */
41  public abstract class AbstractCaracteristicTabUIModel<RM extends AbstractTuttiBeanUIModel<Serializable, RM>, M extends AbstractCaracteristicTabUIModel<RM, M>>
42          extends AbstractTuttiTableUIModel<FishingOperation, RM, M> implements TabContentModel {
43  
44      public static final String PROPERTY_CARACTERISTIC_MAP = "caracteristicMap";
45  
46      public static final String PROPERTY_REMOVE_CARACTERISTIC_ENABLED = "removeCaracteristicEnabled";
47  
48      public static final String PROPERTY_AVAILABLE_CARACTERISTICS = "availableCaracteristics";
49  
50      private static final long serialVersionUID = 1L;
51  
52      protected List<Caracteristic> availableCaracteristics;
53  
54      /**
55       * Caracteristics
56       *
57       * @since 1.0
58       */
59      protected CaracteristicMap caracteristicMap;
60  
61      /**
62       * Can user remove a selected caracteristic?
63       *
64       * @since 1.0
65       */
66      protected boolean removeCaracteristicEnabled;
67  
68      public AbstractCaracteristicTabUIModel() {
69          super(FishingOperation.class, null, null);
70      }
71  
72      public List<Caracteristic> getAvailableCaracteristics() {
73          return availableCaracteristics;
74      }
75  
76      public void setAvailableCaracteristics(List<Caracteristic> availableCaracteristics) {
77          Object oldValue = getAvailableCaracteristics();
78          this.availableCaracteristics = availableCaracteristics;
79          firePropertyChange(PROPERTY_AVAILABLE_CARACTERISTICS, oldValue, availableCaracteristics);
80      }
81  
82      public CaracteristicMap getCaracteristicMap() {
83          return caracteristicMap;
84      }
85  
86      public void setCaracteristicMap(CaracteristicMap caracteristicMap) {
87          Object oldValue = getCaracteristicMap();
88          this.caracteristicMap = caracteristicMap != null ? (CaracteristicMap) caracteristicMap.clone() : null;
89          firePropertyChange(PROPERTY_CARACTERISTIC_MAP, oldValue, this.caracteristicMap);
90      }
91  
92      public boolean isRemoveCaracteristicEnabled() {
93          return removeCaracteristicEnabled;
94      }
95  
96      public void setRemoveCaracteristicEnabled(boolean removeCaracteristicEnabled) {
97          Object oldValue = isRemoveCaracteristicEnabled();
98          this.removeCaracteristicEnabled = removeCaracteristicEnabled;
99          firePropertyChange(PROPERTY_REMOVE_CARACTERISTIC_ENABLED, oldValue, removeCaracteristicEnabled);
100     }
101 
102     @Override
103     public boolean isEmpty() {
104         return caracteristicMap == null || caracteristicMap.values().stream().allMatch(Predicates.isNull()::apply);
105     }
106 
107     @Override
108     public String getIcon() {
109         return null;
110     }
111 
112     @Override
113     protected FishingOperation newEntity() {
114         return null;
115     }
116 
117     @Override
118     public boolean isCloseable() {
119         return false;
120     }
121 }