Project

General

Profile

Download (4.19 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2015 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.presenter.dbstatus.settings;
10

    
11
import java.util.Arrays;
12
import java.util.Collections;
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import com.vaadin.data.Container;
17
import com.vaadin.data.util.IndexedContainer;
18
import com.vaadin.server.VaadinSession;
19

    
20
import eu.etaxonomy.cdm.api.service.IClassificationService;
21
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
22
import eu.etaxonomy.cdm.api.service.ITermService;
23
import eu.etaxonomy.cdm.api.service.IVocabularyService;
24
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
25
import eu.etaxonomy.cdm.model.common.TermType;
26
import eu.etaxonomy.cdm.model.common.TermVocabulary;
27
import eu.etaxonomy.cdm.model.taxon.Classification;
28
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
29
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
30
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil;
31

    
32
/**
33
 * @author alex
34
 * @date 22.04.2015
35
 *
36
 */
37
public class SettingsPresenter {
38

    
39
    private Container distributionContainer;
40
    private Container distributionStatusContainer;
41
    private IVocabularyService vocabularyService;
42
    private ITermService termService;
43
    private ITaxonNodeService taxonNodeService;
44
    private IClassificationService classificationService;
45
    private UUID termUUID;
46

    
47

    
48

    
49
    public SettingsPresenter(){
50
        taxonNodeService = CdmSpringContextHelper.getTaxonNodeService();
51
        classificationService = CdmSpringContextHelper.getClassificationService();
52
		Object selectedVocabularyUuidString = VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_SELECTED_VOCABULARY_UUID);
53
		if(selectedVocabularyUuidString!=null){
54
			termUUID = UUID.fromString(selectedVocabularyUuidString.toString());
55
		}
56
		distributionContainer = new IndexedContainer(getNamedAreaList());
57
		distributionStatusContainer = new IndexedContainer(getPresenceAbsenceVocabulary());
58
    }
59

    
60
    public List<TaxonNode> getChosenTaxonNodes(){
61
    	List<UUID> nodeUuids = (List<UUID>) VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_TAXON_NODES_UUID);
62
    	if(nodeUuids!=null){
63
    		return taxonNodeService.load(nodeUuids, null);
64
    	}
65
    	return Collections.emptyList();
66
    }
67

    
68
    public Classification getChosenClassification(){
69
    	UUID uuid = (UUID) VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_CLASSIFICATION);
70
    	if(uuid!=null){
71
    		return classificationService.load(uuid);
72
    	}
73
    	return null;
74
    }
75

    
76
    public TermVocabulary getChosenArea(){
77
        return vocabularyService.load(termUUID);
78
    }
79

    
80
    public Container getDistributionContainer() {
81
        return distributionContainer;
82
    }
83
    
84
    public void setDistributionContainer(Container distributionContainer) {
85
        this.distributionContainer = distributionContainer;
86
    }
87
    
88
    public Container getDistributionStatusContainer() {
89
        return distributionStatusContainer;
90
    }
91
    
92
    public void setDistributionStatusContainer(Container distributionStatusContainer) {
93
        this.distributionStatusContainer = distributionStatusContainer;
94
    }
95

    
96
    private List<TermVocabulary<DefinedTermBase>> getNamedAreaList() {
97
        vocabularyService = CdmSpringContextHelper.getVocabularyService();
98
        List<TermVocabulary<DefinedTermBase>> termList = vocabularyService.findByTermType(TermType.NamedArea);
99
        //FIXME: is this necessary??
100
        for (TermVocabulary<DefinedTermBase> termVocabulary : termList) {
101
			termVocabulary.setTitleCache(null);
102
		}
103
        return termList;
104
    }
105
    
106
    private List<DefinedTermBase<?>> getPresenceAbsenceVocabulary(){
107
        termService = CdmSpringContextHelper.getTermService();
108
        return termService.listByTermType(TermType.PresenceAbsenceTerm, null, null, null, DESCRIPTION_INIT_STRATEGY);
109
    }
110

    
111
    protected static final List<String> DESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{
112
    		"$",
113
    		"annotations",
114
    		"markers",
115
    		"sources.citation.authorship",
116
    		"sources.nameUsedInSource",
117
    		"media",
118
    });
119

    
120
}
    (1-1/1)