1 package fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.collect.ArrayListMultimap;
26 import com.google.common.collect.Multimap;
27 import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
28 import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs;
29 import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
30 import fr.ifremer.tutti.type.WeightUnit;
31 import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
32
33
34
35
36
37
38
39 public class CreateMarineLitterBatchUIModel extends AbstractTuttiBeanUIModel<CreateMarineLitterBatchUIModel, CreateMarineLitterBatchUIModel> {
40
41 private static final long serialVersionUID = 1L;
42
43
44
45
46
47
48 protected final MarineLitterBatch editObject =
49 MarineLitterBatchs.newMarineLitterBatch();
50
51
52
53
54
55
56 protected final Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue> marineLitterCategoryUsed =
57 ArrayListMultimap.create();
58
59 private final WeightUnit weightUnit;
60
61 public CreateMarineLitterBatchUIModel(WeightUnit weightUnit) {
62 super(null, null);
63 this.weightUnit = weightUnit;
64 }
65
66 public WeightUnit getWeightUnit() {
67 return weightUnit;
68 }
69
70 public CaracteristicQualitativeValue getMarineLitterCategory() {
71 return editObject.getMarineLitterCategory();
72 }
73
74 public void setMarineLitterCategory(CaracteristicQualitativeValue marineLitterCategory) {
75 Object oldValue = getMarineLitterCategory();
76 editObject.setMarineLitterCategory(marineLitterCategory);
77 firePropertyChange(MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, oldValue, marineLitterCategory);
78 }
79
80 public CaracteristicQualitativeValue getMarineLitterSizeCategory() {
81 return editObject.getMarineLitterSizeCategory();
82 }
83
84 public void setMarineLitterSizeCategory(CaracteristicQualitativeValue marineLitterSizeCategory) {
85 Object oldValue = getMarineLitterSizeCategory();
86 editObject.setMarineLitterSizeCategory(marineLitterSizeCategory);
87 firePropertyChange(MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, oldValue, marineLitterSizeCategory);
88 }
89
90 public Integer getNumber() {
91 return editObject.getNumber();
92 }
93
94 public void setNumber(Integer number) {
95 Object oldValue = getNumber();
96 editObject.setNumber(number);
97 firePropertyChange(MarineLitterBatch.PROPERTY_NUMBER, oldValue, number);
98 }
99
100 public Float getWeight() {
101 return editObject.getWeight();
102 }
103
104 public void setWeight(Float weight) {
105 Object oldValue = getWeight();
106 editObject.setWeight(weight);
107 firePropertyChange(MarineLitterBatch.PROPERTY_WEIGHT, oldValue, weight);
108 }
109
110 public Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue> getMarineLitterCategoryUsed() {
111 return marineLitterCategoryUsed;
112 }
113
114 public boolean isCategoryAndSizeCategoryAvailable() {
115 CaracteristicQualitativeValue category = getMarineLitterCategory();
116 CaracteristicQualitativeValue sizeCategory = getMarineLitterSizeCategory();
117
118 return category != null && sizeCategory != null &&
119 isCategoryAndSizeCategoryAvailable(category, sizeCategory);
120 }
121
122 public boolean isCategoryAndSizeCategoryAvailable(CaracteristicQualitativeValue category,
123 CaracteristicQualitativeValue sizeCategory) {
124 return !marineLitterCategoryUsed.containsEntry(sizeCategory, category);
125 }
126
127 @Override
128 protected CreateMarineLitterBatchUIModel newEntity() {
129 return new CreateMarineLitterBatchUIModel(weightUnit);
130 }
131
132 public void reset() {
133 setMarineLitterCategory(null);
134 setMarineLitterSizeCategory(null);
135 setNumber(null);
136 setWeight(null);
137 }
138 }