Project

General

Profile

« Previous | Next » 

Revision 41153841

Added by Patrick Plitzner almost 7 years ago

Implement creation of characters via drag'n'drop

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/StructureContentProvider.java
9 9
*/
10 10
package eu.etaxonomy.taxeditor.editor.workingSet;
11 11

  
12
import java.util.HashSet;
13
import java.util.Set;
14
import java.util.SortedSet;
12
import java.util.Collections;
15 13

  
16 14
import org.eclipse.jface.viewers.ITreeContentProvider;
17 15

  
18
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
19
import eu.etaxonomy.cdm.model.common.TermVocabulary;
20
import eu.etaxonomy.cdm.model.description.Feature;
21
import eu.etaxonomy.taxeditor.store.CdmStore;
16
import eu.etaxonomy.cdm.model.description.FeatureNode;
17
import eu.etaxonomy.cdm.model.description.FeatureTree;
22 18

  
23 19
/**
24 20
 * @author pplitzner
......
35 31
     */
36 32
    @Override
37 33
    public Object[] getElements(Object inputElement) {
38
        return getTopLevelElements((TermVocabulary<Feature>) inputElement);
34
        FeatureTree featureTree = (FeatureTree)inputElement;
35
        return Collections.singleton(featureTree.getRoot()).toArray();
39 36
    }
40 37

  
41 38
    /**
......
43 40
     */
44 41
    @Override
45 42
    public Object[] getChildren(Object parentElement) {
46
        return ((Feature)parentElement).getIncludes().toArray();
43
        return ((FeatureNode)parentElement).getChildNodes().toArray();
47 44
    }
48 45

  
49 46
    /**
......
59 56
     */
60 57
    @Override
61 58
    public boolean hasChildren(Object element) {
62
        return !((Feature)element).getIncludes().isEmpty();
63
    }
64

  
65
    /**
66
     *
67
     * @param vocabulary
68
     * @return An array of DefinedTermBase objects that do not have parents
69
     *
70
     * TODO: Needs to be implemented in cdmlib
71
     */
72
    private Object[] getTopLevelElements(TermVocabulary vocabulary) {
73

  
74
        SortedSet<DefinedTermBase> terms = vocabulary.getTermsOrderedByLabels(CdmStore.getDefaultLanguage());
75
        Set<DefinedTermBase> topLevelTerms = new HashSet<DefinedTermBase>();
76

  
77
        for (DefinedTermBase term : terms){
78
             if (term.getPartOf() == null){
79
                 topLevelTerms.add(term);
80
             }
81
        }
82
        return topLevelTerms.toArray();
59
        return ((FeatureNode)element).getChildCount()>0;
83 60
    }
84 61

  
85 62
}

Also available in: Unified diff