Project

General

Profile

Download (2.14 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.container;
2

    
3
import java.util.Collection;
4
import java.util.HashSet;
5
import java.util.Set;
6

    
7
import com.vaadin.data.util.BeanItemContainer;
8
import com.vaadin.server.VaadinSession;
9

    
10
import eu.etaxonomy.cdm.model.common.TermType;
11
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
12
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
13
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
14
import eu.etaxonomy.cdm.vaadin.util.TermCacher;
15

    
16
public class PresenceAbsenceTermContainer extends BeanItemContainer<PresenceAbsenceTerm> {
17

    
18
	private static final long serialVersionUID = -7891310979870159325L;
19

    
20
	private static PresenceAbsenceTermContainer instance;
21
	private static Collection<PresenceAbsenceTerm> defaultDistributionStatus;
22

    
23
	private PresenceAbsenceTermContainer()
24
			throws IllegalArgumentException {
25
		super(PresenceAbsenceTerm.class);
26
		initDataModel();
27
	}
28

    
29
    private void initDataModel() {
30
        Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>();
31
        distributionStatus = CdmSpringContextHelper.getTermService().listByTermType(TermType.PresenceAbsenceTerm, null, null, null, null);
32
        defaultDistributionStatus = distributionStatus;
33
		TermCacher termCacher = TermCacher.getInstance();
34
		addAll(distributionStatus);
35
		for (PresenceAbsenceTerm presenceAbsenceTerm : distributionStatus) {
36
			termCacher.addPresenceAbsenceTerm(presenceAbsenceTerm);
37
		}
38
    }
39

    
40
	public static PresenceAbsenceTermContainer getInstance(){
41
	    if(instance==null){
42
	        instance = new PresenceAbsenceTermContainer();
43
	    }
44
        Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>();
45
        Object attribute = VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_DISTRIBUTION_STATUS);
46
        if(attribute!=null){
47
            distributionStatus = (Set<PresenceAbsenceTerm>) attribute;
48
        }
49
        if(!distributionStatus.isEmpty() && !distributionStatus.equals(defaultDistributionStatus)){
50
            instance.removeAllItems();
51
            instance.addAll(distributionStatus);
52
            defaultDistributionStatus = distributionStatus;
53
        }
54
	    return instance;
55
	}
56

    
57
}
(6-6/8)