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
.wizard
.WizardPage
;
19 import org
.eclipse
.swt
.SWT
;
20 import org
.eclipse
.swt
.layout
.GridData
;
21 import org
.eclipse
.swt
.widgets
.Composite
;
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
;
35 * @created Aug 5, 2010
38 public class AvailableFeaturesWizardPage
extends WizardPage
{
40 private CheckBoxTreeComposite treeComposite
;
41 private List
<TermVocabularyDto
> vocabularies
;
43 protected AvailableFeaturesWizardPage(List
<TermVocabularyDto
> vocabularies
, boolean singleSelection
) {
44 super("Available Terms Wizard Page");
45 this.vocabularies
= vocabularies
;
46 setTitle("Available Terms");
48 setDescription("Please select one single term");
51 setDescription("Please select terms.");
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());
64 setControl(treeComposite
);
67 public Set
<DefinedTermBase
> getSelectedFeatures() {
69 List
<Object
> checkedElements
= Arrays
.asList(treeComposite
.getViewer().getCheckedElements());
70 checkedElements
= checkedElements
.stream().filter(element
->element
instanceof TermDto
).collect(Collectors
.toList());
72 Set
<DefinedTermBase
> terms
= new HashSet
<>();
74 for(Object element
: checkedElements
){
75 if(element
instanceof TermDto
){
76 DefinedTermBase term
= CdmStore
.getService(ITermService
.class).load(((TermDto
) element
).getUuid());