3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.featuretree
;
13 import java
.util
.HashSet
;
14 import java
.util
.List
;
17 import org
.eclipse
.jface
.viewers
.CheckboxTableViewer
;
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
.layout
.GridLayout
;
22 import org
.eclipse
.swt
.widgets
.Composite
;
24 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
25 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
26 import eu
.etaxonomy
.taxeditor
.preference
.menu
.DefinedTermBaseContentProvider
;
27 import eu
.etaxonomy
.taxeditor
.preference
.menu
.DefinedTermBaseLabelProvider
;
28 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
31 * <p>AvailableFeaturesWizardPage class.</p>
34 * @created Aug 5, 2010
37 public class AvailableFeaturesWizardPage
extends WizardPage
{
39 private CheckboxTableViewer viewer
;
40 private FeatureTree featureTree
;
43 * <p>Constructor for AvailableFeaturesWizardPage.</p>
45 * @param featureTree a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
47 protected AvailableFeaturesWizardPage(FeatureTree featureTree
) {
48 super("AvailableFeaturesWizardPage");
49 this.featureTree
= featureTree
;
50 setTitle("Available Features");
51 setDescription("Please select features you want to add to the tree. Features already in the tree do not show.");
55 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
59 public void createControl(Composite parent
) {
60 Composite composite
= new Composite(parent
, SWT
.NULL
);
61 composite
.setLayout(new GridLayout());
63 viewer
= CheckboxTableViewer
.newCheckList(composite
, SWT
.NULL
);
65 viewer
.getControl().setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
67 viewer
.setContentProvider(new DefinedTermBaseContentProvider());
68 viewer
.setLabelProvider(new DefinedTermBaseLabelProvider());
70 viewer
.setInput(getAvailableFeatures());
72 setControl(composite
);
76 * <p>getSelectedFeatures</p>
78 * @return a {@link java.util.Set} object.
80 public Set
<Feature
> getSelectedFeatures() {
82 Object
[] checkedElements
= viewer
.getCheckedElements();
84 Set
<Feature
> features
= new HashSet
<Feature
>(checkedElements
.length
);
86 for(Object element
: checkedElements
){
87 features
.add((Feature
) element
);
94 * We want to show only features that are not already in the featureTree
98 private List
<Feature
> getAvailableFeatures(){
100 List
<Feature
> preferredFeatures
= CdmStore
.getTermManager().getPreferredFeatures();
102 for(Feature featureAlreadyInTree
: featureTree
.getDistinctFeatures()){
103 preferredFeatures
.remove(featureAlreadyInTree
);
106 return preferredFeatures
;