2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.featuretree
;
12 import java
.util
.Arrays
;
13 import java
.util
.HashSet
;
14 import java
.util
.List
;
16 import java
.util
.stream
.Collectors
;
18 import org
.eclipse
.jface
.layout
.GridLayoutFactory
;
19 import org
.eclipse
.jface
.wizard
.WizardPage
;
20 import org
.eclipse
.swt
.SWT
;
21 import org
.eclipse
.swt
.widgets
.Composite
;
23 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
24 import eu
.etaxonomy
.cdm
.api
.service
.IVocabularyService
;
25 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
26 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
27 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
28 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermDto
;
29 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermVocabularyDto
;
30 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.DefinedTermSorter
;
31 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.TermDtoContentProvider
;
32 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.TermDtoLabelProvider
;
33 import eu
.etaxonomy
.taxeditor
.preference
.wizard
.CheckBoxTreeComposite
;
34 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
38 * @created Aug 5, 2010
41 public class AvailableFeaturesWizardPage
extends WizardPage
{
43 private CheckBoxTreeComposite treeComposite
;
44 private TermType termType
;
46 protected AvailableFeaturesWizardPage(TermType termType
) {
47 super("AvailableFeaturesWizardPage");
48 this.termType
= termType
;
49 setTitle("Available Features");
50 setDescription("Please select features you want to add to the tree.");
55 public void createControl(Composite parent
) {
56 treeComposite
= new CheckBoxTreeComposite(parent
, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT
.NONE
);
57 List
<TermVocabularyDto
> vocabularyDtos
= CdmStore
.getService(IVocabularyService
.class).findVocabularyDtoByTermType(termType
);
58 treeComposite
.getViewer().setComparator(new DefinedTermSorter());
59 treeComposite
.getViewer().setInput(vocabularyDtos
);
60 GridLayoutFactory
.fillDefaults().applyTo(treeComposite
);
62 setControl(treeComposite
);
65 public Set
<Feature
> getSelectedFeatures() {
67 List
<Object
> checkedElements
= Arrays
.asList(treeComposite
.getViewer().getCheckedElements());
68 checkedElements
= checkedElements
.stream().filter(element
->element
instanceof TermDto
).collect(Collectors
.toList());
70 Set
<Feature
> features
= new HashSet
<Feature
>();
72 for(Object element
: checkedElements
){
73 if(element
instanceof TermDto
){
74 DefinedTermBase feature
= CdmStore
.getService(ITermService
.class).load(((TermDto
) element
).getUuid());
75 features
.add((Feature
) feature
);