Revision 782f192b
Added by Andreas Kohlbecker almost 6 years ago
src/main/java/eu/etaxonomy/cdm/service/RegistrationWorkingSetService.java | ||
---|---|---|
98 | 98 |
*/ |
99 | 99 |
private List<String> FIELDUNIT_INIT_STRATEGY = Arrays.asList(new String[]{ |
100 | 100 |
"$", |
101 |
"annotations.*", // * is needed as log as we are using a table in FilterableAnnotationsField |
|
101 | 102 |
"gatheringEvent.$", |
102 | 103 |
"gatheringEvent.country", |
103 | 104 |
"gatheringEvent.collectingAreas", |
src/main/java/eu/etaxonomy/cdm/vaadin/model/registration/SpecimenTypeDesignationWorkingSetDTO.java | ||
---|---|---|
16 | 16 |
import org.joda.time.Partial; |
17 | 17 |
|
18 | 18 |
import eu.etaxonomy.cdm.model.agent.AgentBase; |
19 |
import eu.etaxonomy.cdm.model.common.Annotation; |
|
19 | 20 |
import eu.etaxonomy.cdm.model.common.Language; |
20 | 21 |
import eu.etaxonomy.cdm.model.common.LanguageString; |
21 | 22 |
import eu.etaxonomy.cdm.model.common.VersionableEntity; |
... | ... | |
23 | 24 |
import eu.etaxonomy.cdm.model.location.Point; |
24 | 25 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation; |
25 | 26 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
26 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
27 | 27 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
28 | 28 |
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; |
29 | 29 |
import eu.etaxonomy.cdm.model.reference.Reference; |
... | ... | |
336 | 336 |
return deletedEntities; |
337 | 337 |
} |
338 | 338 |
|
339 |
public Set<Annotation> getAnnotations() { |
|
340 |
if(fieldUnit != null){ |
|
341 |
return fieldUnit.getAnnotations(); |
|
342 |
} else { |
|
343 |
return null; |
|
344 |
} |
|
345 |
} |
|
346 |
|
|
347 |
public void setAnnotations(Set<Annotation> annotations) { |
|
348 |
|
|
349 |
if(fieldUnit != null){ |
|
350 |
List<Annotation> currentAnnotations = new ArrayList<>(fieldUnit.getAnnotations()); |
|
351 |
List<Annotation> annotationsSeen = new ArrayList<>(); |
|
352 |
for(Annotation a : annotations){ |
|
353 |
if(a == null){ |
|
354 |
continue; |
|
355 |
} |
|
356 |
if(!currentAnnotations.contains(a)){ |
|
357 |
fieldUnit.addAnnotation(a); |
|
358 |
} |
|
359 |
annotationsSeen.add(a); |
|
360 |
} |
|
361 |
for(Annotation a : currentAnnotations){ |
|
362 |
if(!annotationsSeen.contains(a)){ |
|
363 |
fieldUnit.removeAnnotation(a); |
|
364 |
} |
|
365 |
} |
|
366 |
} |
|
367 |
} |
|
368 |
|
|
339 | 369 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/ui/RegistrationUIDefaults.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
import java.util.EnumSet; |
12 | 12 |
|
13 |
import eu.etaxonomy.cdm.model.common.AnnotationType; |
|
13 | 14 |
import eu.etaxonomy.cdm.model.name.NomenclaturalCode; |
14 | 15 |
import eu.etaxonomy.cdm.model.reference.ReferenceType; |
15 | 16 |
|
... | ... | |
52 | 53 |
*/ |
53 | 54 |
public static final NomenclaturalCode NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP; |
54 | 55 |
|
56 |
/** |
|
57 |
* should be configurable per UI |
|
58 |
*/ |
|
59 |
public static final AnnotationType[] EDITABLE_ANOTATION_TYPES = new AnnotationType[]{AnnotationType.EDITORIAL()}; |
|
60 |
|
|
61 |
|
|
55 | 62 |
public static final String ERROR_CONTACT_MESSAGE_LINE = "Please contact <a href=\"mailto:editsupport@bgbm.org\">editsupport@bgbm.org</a> for support and more information."; |
56 | 63 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/AnnotationsEditor.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2018 EDIT |
|
3 |
* European Distributed Institute of Taxonomy |
|
4 |
* http://www.e-taxonomy.eu |
|
5 |
* |
|
6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
|
7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
|
8 |
*/ |
|
9 |
package eu.etaxonomy.cdm.vaadin.view; |
|
10 |
|
|
11 |
import eu.etaxonomy.cdm.model.common.AnnotationType; |
|
12 |
import eu.etaxonomy.cdm.vaadin.component.common.FilterableAnnotationsField; |
|
13 |
|
|
14 |
/** |
|
15 |
* @author a.kohlbecker |
|
16 |
* @since Jun 25, 2018 |
|
17 |
* |
|
18 |
*/ |
|
19 |
public interface AnnotationsEditor { |
|
20 |
|
|
21 |
/** |
|
22 |
* |
|
23 |
* @return the EDITABLE_ANOTATION_TYPES |
|
24 |
*/ |
|
25 |
public AnnotationType[] getEditableAnotationTypes(); |
|
26 |
|
|
27 |
/** |
|
28 |
* |
|
29 |
* @param EDITABLE_ANOTATION_TYPES the EDITABLE_ANOTATION_TYPES to set |
|
30 |
*/ |
|
31 |
public void setEditableAnotationTypes(AnnotationType... editableAnotationTypes); |
|
32 |
|
|
33 |
/** |
|
34 |
* @return |
|
35 |
*/ |
|
36 |
public FilterableAnnotationsField getAnnotationsField(); |
|
37 |
|
|
38 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/SpecimenTypeDesignationWorkingsetPopupEditor.java | ||
---|---|---|
24 | 24 |
import com.vaadin.ui.Panel; |
25 | 25 |
import com.vaadin.ui.TextArea; |
26 | 26 |
|
27 |
import eu.etaxonomy.cdm.model.common.AnnotationType; |
|
27 | 28 |
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; |
28 | 29 |
import eu.etaxonomy.cdm.vaadin.component.CollectionRowRepresentative; |
29 | 30 |
import eu.etaxonomy.cdm.vaadin.component.PartialDateField; |
31 |
import eu.etaxonomy.cdm.vaadin.component.common.FilterableAnnotationsField; |
|
30 | 32 |
import eu.etaxonomy.cdm.vaadin.component.common.GeoLocationField; |
31 | 33 |
import eu.etaxonomy.cdm.vaadin.component.common.MinMaxTextField; |
32 | 34 |
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField; |
33 | 35 |
import eu.etaxonomy.cdm.vaadin.model.registration.SpecimenTypeDesignationDTO; |
34 | 36 |
import eu.etaxonomy.cdm.vaadin.model.registration.SpecimenTypeDesignationWorkingSetDTO; |
35 | 37 |
import eu.etaxonomy.cdm.vaadin.permission.AccessRestrictedView; |
38 |
import eu.etaxonomy.cdm.vaadin.ui.RegistrationUIDefaults; |
|
36 | 39 |
import eu.etaxonomy.cdm.vaadin.util.TeamOrPersonBaseCaptionGenerator; |
37 | 40 |
import eu.etaxonomy.cdm.vaadin.util.converter.DoubleConverter; |
38 | 41 |
import eu.etaxonomy.cdm.vaadin.util.converter.IntegerConverter; |
... | ... | |
75 | 78 |
|
76 | 79 |
private TeamOrPersonField collectorField; |
77 | 80 |
|
81 |
private FilterableAnnotationsField annotationsListField; |
|
82 |
|
|
83 |
private AnnotationType[] editableAnotationTypes = RegistrationUIDefaults.EDITABLE_ANOTATION_TYPES; |
|
84 |
|
|
78 | 85 |
/** |
79 | 86 |
* @return the countrySelectField |
80 | 87 |
*/ |
... | ... | |
93 | 100 |
grid.setSpacing(true); |
94 | 101 |
grid.setMargin(true); |
95 | 102 |
grid.setColumns(3); |
96 |
grid.setRows(9);
|
|
103 |
grid.setRows(10);
|
|
97 | 104 |
|
98 | 105 |
//TODO typifyingAuthors |
99 | 106 |
|
... | ... | |
201 | 208 |
bindField(typeDesignationsCollectionField, "specimenTypeDesignationDTOs"); |
202 | 209 |
addComponent(scrollPanel, 0, row, 2, row); |
203 | 210 |
|
211 |
row++; |
|
212 |
annotationsListField = new FilterableAnnotationsField("Editorial notes"); |
|
213 |
annotationsListField.setWidth(100, Unit.PERCENTAGE); |
|
214 |
annotationsListField.setAnnotationTypesVisible(editableAnotationTypes); |
|
215 |
addField(annotationsListField, "annotations", 0, row, 2, row); |
|
216 |
|
|
204 | 217 |
} |
205 | 218 |
|
206 | 219 |
|
... | ... | |
334 | 347 |
return collectorField; |
335 | 348 |
} |
336 | 349 |
|
350 |
/** |
|
351 |
* By default AnnotationType.EDITORIAL() is enabled. |
|
352 |
* |
|
353 |
* @return the editableAnotationTypes |
|
354 |
*/ |
|
355 |
@Override |
|
356 |
public AnnotationType[] getEditableAnotationTypes() { |
|
357 |
return editableAnotationTypes; |
|
358 |
} |
|
359 |
|
|
360 |
/** |
|
361 |
* By default AnnotationType.EDITORIAL() is enabled. |
|
362 |
* |
|
363 |
* |
|
364 |
* @param editableAnotationTypes the editableAnotationTypes to set |
|
365 |
*/ |
|
366 |
@Override |
|
367 |
public void setEditableAnotationTypes(AnnotationType ... editableAnotationTypes) { |
|
368 |
this.editableAnotationTypes = editableAnotationTypes; |
|
369 |
} |
|
370 |
|
|
371 |
/** |
|
372 |
* {@inheritDoc} |
|
373 |
*/ |
|
374 |
@Override |
|
375 |
public FilterableAnnotationsField getAnnotationsField() { |
|
376 |
return annotationsListField; |
|
377 |
} |
|
378 |
|
|
337 | 379 |
|
338 | 380 |
|
339 | 381 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/SpecimenTypeDesignationWorkingsetPopupEditorView.java | ||
---|---|---|
15 | 15 |
|
16 | 16 |
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField; |
17 | 17 |
import eu.etaxonomy.cdm.vaadin.model.registration.SpecimenTypeDesignationDTO; |
18 |
import eu.etaxonomy.cdm.vaadin.view.AnnotationsEditor; |
|
18 | 19 |
import eu.etaxonomy.vaadin.mvp.ApplicationView; |
19 | 20 |
|
20 | 21 |
/** |
... | ... | |
22 | 23 |
* @since Jun 13, 2017 |
23 | 24 |
* |
24 | 25 |
*/ |
25 |
public interface SpecimenTypeDesignationWorkingsetPopupEditorView extends ApplicationView<SpecimenTypeDesignationWorkingsetEditorPresenter> { |
|
26 |
public interface SpecimenTypeDesignationWorkingsetPopupEditorView extends ApplicationView<SpecimenTypeDesignationWorkingsetEditorPresenter>, |
|
27 |
AnnotationsEditor { |
|
26 | 28 |
|
27 | 29 |
public ListSelect getCountrySelectField(); |
28 | 30 |
|
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditor.java | ||
---|---|---|
50 | 50 |
import eu.etaxonomy.cdm.vaadin.model.name.TaxonNameDTO; |
51 | 51 |
import eu.etaxonomy.cdm.vaadin.permission.AccessRestrictedView; |
52 | 52 |
import eu.etaxonomy.cdm.vaadin.permission.CdmEditDeletePermissionTester; |
53 |
import eu.etaxonomy.cdm.vaadin.ui.RegistrationUIDefaults; |
|
53 | 54 |
import eu.etaxonomy.cdm.vaadin.util.TeamOrPersonBaseCaptionGenerator; |
54 | 55 |
import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter; |
55 | 56 |
import eu.etaxonomy.vaadin.component.NameRelationField; |
... | ... | |
68 | 69 |
@SpringComponent |
69 | 70 |
@Scope("prototype") |
70 | 71 |
public class TaxonNamePopupEditor extends AbstractCdmDTOPopupEditor<TaxonNameDTO, TaxonName, TaxonNameEditorPresenter> |
71 |
implements TaxonNamePopupEditorView, AccessRestrictedView {
|
|
72 |
implements TaxonNamePopupEditorView, AccessRestrictedView{ |
|
72 | 73 |
|
73 | 74 |
private static final long serialVersionUID = -7037436241474466359L; |
74 | 75 |
|
... | ... | |
134 | 135 |
|
135 | 136 |
private FilterableAnnotationsField annotationsListField; |
136 | 137 |
|
137 |
private AnnotationType[] editableAnotationTypes = new AnnotationType[]{AnnotationType.EDITORIAL()}; |
|
138 |
|
|
138 |
private AnnotationType[] editableAnotationTypes = RegistrationUIDefaults.EDITABLE_ANOTATION_TYPES; |
|
139 | 139 |
|
140 | 140 |
/** |
141 | 141 |
* By default AnnotationType.EDITORIAL() is enabled. |
142 | 142 |
* |
143 | 143 |
* @return the editableAnotationTypes |
144 | 144 |
*/ |
145 |
@Override |
|
145 | 146 |
public AnnotationType[] getEditableAnotationTypes() { |
146 | 147 |
return editableAnotationTypes; |
147 | 148 |
} |
... | ... | |
152 | 153 |
* |
153 | 154 |
* @param editableAnotationTypes the editableAnotationTypes to set |
154 | 155 |
*/ |
156 |
@Override |
|
155 | 157 |
public void setEditableAnotationTypes(AnnotationType ... editableAnotationTypes) { |
156 | 158 |
this.editableAnotationTypes = editableAnotationTypes; |
157 | 159 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditorView.java | ||
---|---|---|
16 | 16 |
|
17 | 17 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
18 | 18 |
import eu.etaxonomy.cdm.model.reference.Reference; |
19 |
import eu.etaxonomy.cdm.vaadin.component.common.FilterableAnnotationsField; |
|
20 | 19 |
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField; |
20 |
import eu.etaxonomy.cdm.vaadin.view.AnnotationsEditor; |
|
21 | 21 |
import eu.etaxonomy.vaadin.component.NameRelationField; |
22 | 22 |
import eu.etaxonomy.vaadin.component.ToManyRelatedEntitiesComboboxSelect; |
23 | 23 |
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox; |
... | ... | |
28 | 28 |
* @since May 22, 2017 |
29 | 29 |
* |
30 | 30 |
*/ |
31 |
public interface TaxonNamePopupEditorView extends ApplicationView<TaxonNameEditorPresenter> { |
|
31 |
public interface TaxonNamePopupEditorView extends ApplicationView<TaxonNameEditorPresenter>, AnnotationsEditor {
|
|
32 | 32 |
|
33 | 33 |
/** |
34 | 34 |
* @return |
... | ... | |
116 | 116 |
*/ |
117 | 117 |
public AbstractField<String> getInfraSpecificEpithetField(); |
118 | 118 |
|
119 |
/** |
|
120 |
* @return |
|
121 |
*/ |
|
122 |
FilterableAnnotationsField getAnnotationsField(); |
|
123 | 119 |
|
124 | 120 |
} |
Also available in: Unified diff
ref #7458 implementation of the note field for the TypeSpecimenEditor