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
.HashSet
;
13 import java
.util
.List
;
16 import org
.eclipse
.jface
.viewers
.CheckboxTableViewer
;
17 import org
.eclipse
.jface
.wizard
.WizardPage
;
18 import org
.eclipse
.swt
.SWT
;
19 import org
.eclipse
.swt
.layout
.GridData
;
20 import org
.eclipse
.swt
.layout
.GridLayout
;
21 import org
.eclipse
.swt
.widgets
.Composite
;
23 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
24 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
25 import eu
.etaxonomy
.taxeditor
.preference
.menu
.DefinedTermBaseContentProvider
;
26 import eu
.etaxonomy
.taxeditor
.preference
.menu
.DefinedTermBaseLabelProvider
;
27 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
30 * <p>AvailableFeaturesWizardPage class.</p>
33 * @created Aug 5, 2010
36 public class AvailableFeaturesWizardPage
extends WizardPage
{
38 private CheckboxTableViewer viewer
;
39 private FeatureTree featureTree
;
42 * <p>Constructor for AvailableFeaturesWizardPage.</p>
44 * @param featureTree a {@link eu.etaxonomy.cdm.model.description.FeatureTree} object.
46 protected AvailableFeaturesWizardPage(FeatureTree featureTree
) {
47 super("AvailableFeaturesWizardPage");
48 this.featureTree
= featureTree
;
49 setTitle("Available Features");
50 setDescription("Please select features you want to add to the tree. Features already in the tree do not show.");
54 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
58 public void createControl(Composite parent
) {
59 Composite composite
= new Composite(parent
, SWT
.NULL
);
60 composite
.setLayout(new GridLayout());
62 viewer
= CheckboxTableViewer
.newCheckList(composite
, SWT
.NULL
);
64 viewer
.getControl().setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
66 viewer
.setContentProvider(new DefinedTermBaseContentProvider());
67 viewer
.setLabelProvider(new DefinedTermBaseLabelProvider());
69 viewer
.setInput(getAvailableFeatures());
71 setControl(composite
);
75 * <p>getSelectedFeatures</p>
77 * @return a {@link java.util.Set} object.
79 public Set
<Feature
> getSelectedFeatures() {
81 Object
[] checkedElements
= viewer
.getCheckedElements();
83 Set
<Feature
> features
= new HashSet
<Feature
>(checkedElements
.length
);
85 for(Object element
: checkedElements
){
86 features
.add((Feature
) element
);
93 * We want to show only features that are not already in the featureTree
97 private List
<Feature
> getAvailableFeatures(){
99 List
<Feature
> preferredFeatures
= CdmStore
.getTermManager().getPreferredTerms(Feature
.class);
101 for(Feature featureAlreadyInTree
: featureTree
.getDistinctFeatures()){
102 preferredFeatures
.remove(featureAlreadyInTree
);
105 return preferredFeatures
;