Project

General

Profile

« Previous | Next » 

Revision 3baf1767

Added by Andreas Kohlbecker about 6 years ago

fix #7353 SpecimenTypedesignationsWorkingsetEditor: adapting to changes in DerivedUnitConverter and blockig kindOfUnit changes in case of multiple typeDesignations per specimen

View differences:

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