Revision 3baf1767
Added by Andreas Kohlbecker about 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/SpecimenTypeDesignationDTORow.java | ||
---|---|---|
9 | 9 |
package eu.etaxonomy.cdm.vaadin.view.name; |
10 | 10 |
|
11 | 11 |
import java.util.Arrays; |
12 |
import java.util.List; |
|
12 | 13 |
|
13 | 14 |
import com.vaadin.server.Sizeable.Unit; |
14 | 15 |
import com.vaadin.ui.Component; |
... | ... | |
40 | 41 |
* |
41 | 42 |
* The fieldname must match the properties of the SpecimenTypeDesignationDTO |
42 | 43 |
*/ |
43 |
RowListSelect kindOfUnit = new RowListSelect(); |
|
44 |
TextField associatedTypeDesignationCount = new TextField(); |
|
45 |
RowListSelect kindOfUnit = new RowListSelect(); // position is IMPORTANT, see rowListSelectColumn() |
|
44 | 46 |
ListSelect typeStatus = new ListSelect(); |
45 | 47 |
ToOneRelatedEntityCombobox<eu.etaxonomy.cdm.model.occurrence.Collection> collection = |
46 | 48 |
new ToOneRelatedEntityCombobox<eu.etaxonomy.cdm.model.occurrence.Collection>(null, eu.etaxonomy.cdm.model.occurrence.Collection.class); |
... | ... | |
57 | 59 |
kindOfUnit.setRow(this); |
58 | 60 |
typeStatus.setRows(1); |
59 | 61 |
typeStatus.setRequired(true); |
62 |
|
|
60 | 63 |
accessionNumber.setWidth(100, Unit.PIXELS); |
61 | 64 |
preferredStableUri.setWidth(150, Unit.PIXELS); |
62 | 65 |
preferredStableUri.setConverter(new UriConverter()); |
... | ... | |
77 | 80 |
*/ |
78 | 81 |
public Component[] components() { |
79 | 82 |
Component[] components = new Component[]{ |
83 |
associatedTypeDesignationCount, |
|
80 | 84 |
kindOfUnit, typeStatus, |
81 | 85 |
collection, accessionNumber, |
82 | 86 |
preferredStableUri, |
83 | 87 |
mediaUri, mediaSpecimenReference, |
84 |
mediaSpecimenReferenceDetail, mediaSpecimenReferenceDetail
|
|
88 |
mediaSpecimenReferenceDetail |
|
85 | 89 |
}; |
86 | 90 |
addAll(Arrays.asList(components)); |
87 | 91 |
return components; |
88 | 92 |
} |
89 | 93 |
|
94 |
public static List<String> visibleFields() { |
|
95 |
List<String> visibleFields = Arrays.asList(new String[]{ |
|
96 |
"kindOfUnit", "typeStatus", |
|
97 |
"collection", "accessionNumber", |
|
98 |
"preferredStableUri", |
|
99 |
"mediaUri", "mediaSpecimenReference", |
|
100 |
"mediaSpecimenReferenceDetail" |
|
101 |
}); |
|
102 |
return visibleFields; |
|
103 |
} |
|
104 |
|
|
90 | 105 |
@Override |
91 | 106 |
public void updateRowItemsEnablement() { |
92 | 107 |
|
... | ... | |
95 | 110 |
boolean publishedImageType = kindOfUnitTerm != null && kindOfUnitTerm.equals(KindOfUnitTerms.PUBLISHED_IMAGE()); |
96 | 111 |
boolean unPublishedImageType = kindOfUnitTerm != null && kindOfUnitTerm.equals(KindOfUnitTerms.UNPUBLISHED_IMAGE()); |
97 | 112 |
|
98 |
mediaSpecimenReference.setEnabled(publishedImageType); |
|
99 |
mediaSpecimenReferenceDetail.setEnabled(publishedImageType); |
|
113 |
boolean kindOfUnitLocked = !associatedTypeDesignationCount.getValue().isEmpty() && Integer.valueOf(associatedTypeDesignationCount.getValue()) > 1; |
|
114 |
kindOfUnit.setEnabled(!kindOfUnitLocked); |
|
115 |
kindOfUnit.setDescription(kindOfUnitLocked ? |
|
116 |
"Can not be changed since the type specimen is associated with multiple type designations" : ""); |
|
117 |
mediaSpecimenReference.setEnabled(publishedImageType || unPublishedImageType); |
|
118 |
mediaSpecimenReferenceDetail.setEnabled(publishedImageType || unPublishedImageType); |
|
100 | 119 |
mediaUri.setEnabled(publishedImageType || unPublishedImageType); |
101 | 120 |
|
102 | 121 |
} |
103 | 122 |
|
123 |
/** |
|
124 |
* |
|
125 |
* @return the 0-based position index of the <code>kindOfUnit</code> field in this class |
|
126 |
* which are visible according to {@link #visibleFields()) |
|
127 |
*/ |
|
128 |
public static int rowListSelectColumn(){ |
|
129 |
return 0; |
|
130 |
} |
|
131 |
|
|
104 | 132 |
class RowListSelect extends ListSelect implements CollectionRowRepresentative { |
105 | 133 |
|
106 | 134 |
private static final long serialVersionUID = 3235653923633494213L; |
Also available in: Unified diff
fix #7353 SpecimenTypedesignationsWorkingsetEditor: adapting to changes in DerivedUnitConverter and blockig kindOfUnit changes in case of multiple typeDesignations per specimen