Project

General

Profile

Download (3.13 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.taxeditor.editor.definedterm.input;
10

    
11
import java.util.ArrayList;
12
import java.util.Arrays;
13
import java.util.HashSet;
14
import java.util.List;
15
import java.util.Set;
16

    
17
import eu.etaxonomy.cdm.api.service.IVocabularyService;
18
import eu.etaxonomy.cdm.model.common.DefinedTerm;
19
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
20
import eu.etaxonomy.cdm.model.common.TermType;
21
import eu.etaxonomy.cdm.model.common.TermVocabulary;
22
import eu.etaxonomy.cdm.model.description.Feature;
23
import eu.etaxonomy.cdm.model.description.FeatureTree;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
25
import eu.etaxonomy.taxeditor.store.TermStore;
26

    
27

    
28

    
29
/**
30
 * @author n.hoffmann
31
 * @date Jan 24, 2012
32
 *
33
 */
34
public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm> {
35

    
36
	private TermType termType;
37
	private Set<TermVocabulary<DefinedTermBase>> vocabularies;
38

    
39
	// FIXME: the default feature should be move to CdmApplicationState
40
	//        where it is a singleton instance variable
41
	private static FeatureTree defaultFeatureTree = null;
42

    
43
	private List<String> termClasses = Arrays.asList(new String[]{
44
			DefinedTerm.class.getName()
45
	});
46

    
47
	public TermEditorInput(TermType termType) {
48
		this.termType = termType;
49
		vocabularies = new HashSet<TermVocabulary<DefinedTermBase>>();
50
		initialiseVocabularies();
51
	}
52
	/* (non-Javadoc)
53
	 * @see org.eclipse.ui.IEditorInput#getName()
54
	 */
55
	@Override
56
	public String getName() {
57
		return termType.getMessage();
58
	}
59

    
60
	/* (non-Javadoc)
61
	 * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()
62
	 */
63
	@Override
64
	public List<String> getTermClasses() {
65
		return termClasses;
66
	}
67

    
68
	public TermType getTermType() {
69
		return termType;
70
	}
71

    
72
	public void initialiseVocabularies() {
73
		if(vocabularies != null) {
74
			vocabularies.clear();
75
		}
76
		List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(termType);
77
		vocabularies.addAll(vocs);
78
	}
79

    
80
	public Set<TermVocabulary<DefinedTermBase>> getVocabularies() {
81
		return vocabularies;
82
	}
83

    
84
	public void updateDefaultFeatureTree() {
85
	    for(TermVocabulary vocab : getVocabularies()) {
86
	        if(vocab != null && TermType.Feature.equals(vocab.getTermType())) {
87
	            defaultFeatureTree = null;
88
	        }
89
	    }
90
	}
91
    /**
92
     * {@inheritDoc}
93
     */
94
    @Override
95
    public Set<TermVocabulary<DefinedTermBase>>  getRootEntities() {
96
        return getVocabularies();
97
    }
98
    /**
99
     * {@inheritDoc}
100
     */
101
    @Override
102
    public void merge() {
103
        CdmStore.getService(IVocabularyService.class).merge(new ArrayList<TermVocabulary>(getRootEntities()), true);
104
        updateDefaultFeatureTree();
105
    }
106

    
107
    public static FeatureTree getDefaultFeatureTree() {
108
        if(defaultFeatureTree == null) {
109
            defaultFeatureTree = FeatureTree.NewInstance(TermStore.getTerms(Feature.class));
110
        }
111
        return defaultFeatureTree;
112
    }
113
}
(2-2/2)