Revision 2de2cf10
Added by Andreas Müller almost 2 years ago
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
ref #10089 handle RegistrationDTO with TypedEntityReference again in vaadin