Revision fc53e2e8
Added by Andreas Müller over 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/container/PresenceAbsenceTermContainer.java | ||
---|---|---|
1 | 1 |
package eu.etaxonomy.cdm.vaadin.container; |
2 | 2 |
|
3 |
import java.util.Arrays; |
|
3 | 4 |
import java.util.Collection; |
4 | 5 |
import java.util.HashSet; |
6 |
import java.util.List; |
|
5 | 7 |
import java.util.Set; |
8 |
import java.util.UUID; |
|
6 | 9 |
|
7 | 10 |
import com.vaadin.data.util.BeanItemContainer; |
8 | 11 |
import com.vaadin.server.VaadinSession; |
9 | 12 |
|
10 | 13 |
import eu.etaxonomy.cdm.model.common.TermType; |
11 | 14 |
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; |
15 |
import eu.etaxonomy.cdm.model.metadata.CdmPreference; |
|
16 |
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate; |
|
12 | 17 |
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; |
13 | 18 |
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil; |
14 | 19 |
import eu.etaxonomy.cdm.vaadin.util.TermCacher; |
... | ... | |
28 | 33 |
} |
29 | 34 |
|
30 | 35 |
private void initDataModel() { |
31 |
Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>();
|
|
32 |
distributionStatus = CdmSpringContextHelper.getTermService().listByTermType(TermType.PresenceAbsenceTerm, null, null, null, null); |
|
36 |
Collection<PresenceAbsenceTerm> distributionStatus = getDistributionStatusList(TERMS_INIT_STRATEGY);
|
|
37 |
|
|
33 | 38 |
defaultDistributionStatus = distributionStatus; |
34 | 39 |
TermCacher termCacher = TermCacher.getInstance(); |
35 | 40 |
addAll(distributionStatus); |
... | ... | |
39 | 44 |
} |
40 | 45 |
|
41 | 46 |
public static PresenceAbsenceTermContainer getInstance(){ |
42 |
if(instance==null){
|
|
47 |
if(instance == null){
|
|
43 | 48 |
instance = new PresenceAbsenceTermContainer(); |
44 | 49 |
} |
45 | 50 |
Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>(); |
46 | 51 |
Object attribute = VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_DISTRIBUTION_STATUS); |
47 |
if(attribute!=null){
|
|
52 |
if(attribute != null){
|
|
48 | 53 |
distributionStatus = (Set<PresenceAbsenceTerm>) attribute; |
49 | 54 |
} |
50 | 55 |
if(!distributionStatus.isEmpty() && !distributionStatus.equals(defaultDistributionStatus)){ |
... | ... | |
55 | 60 |
return instance; |
56 | 61 |
} |
57 | 62 |
|
63 |
public static List<PresenceAbsenceTerm> getDistributionStatusList(List<String> propertyPath){ |
|
64 |
CdmPreference statusPref = CdmSpringContextHelper.getPreferenceService().findVaadin(PreferencePredicate.AvailableDistributionStatus); |
|
65 |
if (statusPref != null){ |
|
66 |
List<UUID> uuidList = statusPref.getValueUuidList(); |
|
67 |
return (List)CdmSpringContextHelper.getTermService().load(uuidList, propertyPath); |
|
68 |
}else{ |
|
69 |
return CdmSpringContextHelper.getTermService().listByTermType( |
|
70 |
TermType.PresenceAbsenceTerm, null, null, null, propertyPath); |
|
71 |
} |
|
72 |
} |
|
73 |
|
|
74 |
protected static final List<String> TERMS_INIT_STRATEGY = Arrays.asList(new String []{ |
|
75 |
"$", |
|
76 |
"representations", |
|
77 |
}); |
|
78 |
|
|
58 | 79 |
} |
Also available in: Unified diff
ref #6903 preload status from preferences in dialog