Project

General

Profile

« Previous | Next » 

Revision 2de2cf10

Added by Andreas Müller almost 2 years ago

ref #10089 handle RegistrationDTO with TypedEntityReference again in vaadin

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/component/registration/RegistrationItemNameAndTypeButtons.java
30 30
import eu.etaxonomy.cdm.api.service.name.TypeDesignationDTO;
31 31
import eu.etaxonomy.cdm.api.service.name.TypeDesignationSet;
32 32
import eu.etaxonomy.cdm.api.service.name.TypeDesignationSet.TypeDesignationSetType;
33
import eu.etaxonomy.cdm.api.service.name.TypeDesignationSetFormatter;
34 33
import eu.etaxonomy.cdm.api.util.UserHelper;
35 34
import eu.etaxonomy.cdm.model.ICdmEntityUuidCacher;
36 35
import eu.etaxonomy.cdm.model.common.VersionableEntity;
......
39 38
import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
40 39
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
41 40
import eu.etaxonomy.cdm.model.permission.CRUD;
41
import eu.etaxonomy.cdm.ref.TypedEntityReference;
42 42
import eu.etaxonomy.cdm.service.UserHelperAccess;
43 43
import eu.etaxonomy.cdm.strategy.cache.TagEnum;
44 44
import eu.etaxonomy.cdm.strategy.cache.TaggedCacheHelper;
......
116 116
            }
117 117
        }
118 118
        boolean userHasAddPermission = !regDto.isPersisted() || userHelper.userHasPermission(regDto.registration(), CRUD.UPDATE);
119
        Map<VersionableEntity,TypeDesignationSet> typeDesignationSets = regDto.getOrderedTypeDesignationSets();
119
        Map<TypedEntityReference<? extends VersionableEntity>,TypeDesignationSet> typeDesignationSets = regDto.getOrderedTypeDesignationSets();
120 120

  
121 121
        if(typeDesignationSets != null){
122 122
            // order the typeDesignationSet keys so that holotypes come first, etc
123 123
            List<TypedEntityRefWithStatus> baseRefsByHighestStatus = new ArrayList<>();
124
            for(VersionableEntity baseEntityRef : typeDesignationSets.keySet()) {
124
            for(TypedEntityReference<? extends VersionableEntity> baseEntityRef : typeDesignationSets.keySet()) {
125 125
                baseRefsByHighestStatus.add(new TypedEntityRefWithStatus(baseEntityRef, typeDesignationSets.get(baseEntityRef).highestTypeStatus(new RegistrationTypeDesignationStatusComparator())));
126 126
            }
127 127

  
128 128
            Collections.sort(baseRefsByHighestStatus);
129 129

  
130 130
            for(TypedEntityRefWithStatus typedEntityRefWithStatus : baseRefsByHighestStatus) {
131
                VersionableEntity baseEntity = typedEntityRefWithStatus.typedEntity;
131
                TypedEntityReference<? extends VersionableEntity> baseEntity = typedEntityRefWithStatus.typedEntity;
132 132
                TypeDesignationSet typeDesignationSet = typeDesignationSets.get(baseEntity);
133 133
                if (logger.isDebugEnabled()) {logger.debug("WorkingSet:" + typeDesignationSet.getWorkingsetType() + ">" + typeDesignationSet.getBaseEntity().toString());}
134
                String buttonLabel = SpecimenOrObservationBase.class.isAssignableFrom(baseEntity.getClass()) ? "Type": "NameType";
134
                String buttonLabel = SpecimenOrObservationBase.class.isAssignableFrom(baseEntity.getType()) ? "Type": "NameType";
135 135
                Button tdButton = new Button(buttonLabel + ":");
136 136
                tdButton.setDescription("Edit the type designation working set");
137
                boolean userHasUpdatePermission = userHelper.userHasPermission(baseEntity.getClass(), baseEntity.getUuid(), CRUD.UPDATE, CRUD.DELETE);
137
                boolean userHasUpdatePermission = userHelper.userHasPermission(baseEntity.getType(), baseEntity.getUuid(), CRUD.UPDATE, CRUD.DELETE);
138 138
                editButtons.add(new ButtonWithUserEditPermission(tdButton, userHasUpdatePermission));
139 139
                addComponent(tdButton);
140 140

  
......
147 147
                        tdButton)
148 148
                        );
149 149

  
150
                String labelText = "<span class=\"field-unit-label\">" + TypeDesignationSetFormatter.entityLabel(baseEntity) + "</span>"; // renders the FieldUnit label
150
                String labelText = "<span class=\"field-unit-label\">" + baseEntity.getLabel() + "</span>"; // renders the FieldUnit label
151 151
                for(TypeDesignationStatusBase<?> typeStatus : typeDesignationSet.keySet()){
152 152
                    Collection<TypeDesignationDTO> tdPerStatus = typeDesignationSet.get(typeStatus);
153 153
                    labelText += " <strong>" + typeStatus.getLabel() +  (tdPerStatus.size() > 1 ? "s":"" ) + "</strong>: ";
......
294 294

  
295 295
    private class TypedEntityRefWithStatus implements Comparable<TypedEntityRefWithStatus> {
296 296

  
297
        public VersionableEntity typedEntity;
297
        public TypedEntityReference<? extends VersionableEntity> typedEntity;
298 298
        public TypeDesignationStatusBase<?> status;
299 299
        private RegistrationTypeDesignationStatusComparator comparator = new RegistrationTypeDesignationStatusComparator();
300 300

  
301
        public TypedEntityRefWithStatus(VersionableEntity typedEntity,
301
        public TypedEntityRefWithStatus(TypedEntityReference<? extends VersionableEntity> typedEntity,
302 302
                TypeDesignationStatusBase<?> status) {
303 303
            this.typedEntity = typedEntity;
304 304
            this.status = status;

Also available in: Unified diff