Project

General

Profile

Download (2.8 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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

    
10
package eu.etaxonomy.taxeditor.termtree;
11

    
12
import java.util.Arrays;
13
import java.util.HashSet;
14
import java.util.List;
15
import java.util.Set;
16
import java.util.stream.Collectors;
17

    
18
import org.eclipse.jface.wizard.WizardPage;
19
import org.eclipse.swt.SWT;
20
import org.eclipse.swt.layout.GridData;
21
import org.eclipse.swt.widgets.Composite;
22

    
23
import eu.etaxonomy.cdm.api.service.ITermService;
24
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
25
import eu.etaxonomy.cdm.persistence.dto.TermDto;
26
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
27
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
28
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
29
import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
30
import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
31
import eu.etaxonomy.taxeditor.store.CdmStore;
32

    
33
/**
34
 * @author n.hoffmann
35
 * @created Aug 5, 2010
36
 * @version 1.0
37
 */
38
public class AvailableTermsWizardPage extends WizardPage {
39

    
40
    private CheckBoxTreeComposite treeComposite;
41
    private List<TermVocabularyDto> vocabularies;
42

    
43
	protected AvailableTermsWizardPage(List<TermVocabularyDto> vocabularies, boolean singleSelection) {
44
		super("Available Terms Wizard Page");
45
		this.vocabularies = vocabularies;
46
		setTitle("Available Terms");
47
		if(singleSelection){
48
		    setDescription("Please select one single term");
49
		}
50
		else{
51
		    setDescription("Please select terms.");
52
		}
53
	}
54

    
55
	/** {@inheritDoc} */
56
	@Override
57
	public void createControl(Composite parent) {
58
        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
59
        treeComposite.getViewer().setComparator(new DefinedTermSorter());
60
        treeComposite.getViewer().setInput(vocabularies);
61
        treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
62
        treeComposite.getViewer().addSelectionChangedListener(e->getWizard().getContainer().updateButtons());
63

    
64
		setControl(treeComposite);
65
	}
66

    
67
	public Set<DefinedTermBase> getSelectedFeatures() {
68

    
69
        List<Object> checkedElements = Arrays.asList(treeComposite.getViewer().getCheckedElements());
70
        checkedElements = checkedElements.stream().filter(element->element instanceof TermDto).collect(Collectors.toList());
71

    
72
		Set<DefinedTermBase> terms = new HashSet<>();
73

    
74
		for(Object element : checkedElements){
75
		    if(element instanceof TermDto){
76
		        DefinedTermBase term = CdmStore.getService(ITermService.class).load(((TermDto) element).getUuid());
77
		        terms.add(term);
78
		    }
79
		}
80
		return terms;
81
	}
82

    
83
}
(2-2/11)