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
.List
;
15 import org
.eclipse
.jface
.wizard
.Wizard
;
17 import eu
.etaxonomy
.cdm
.api
.service
.IVocabularyService
;
18 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTermBase
;
19 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
20 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermVocabularyDto
;
21 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
22 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
25 * <p>AvailableFeaturesWizard class.</p>
28 * @created Aug 5, 2010
31 public class AvailableFeaturesWizard
extends Wizard
{
33 private AvailableFeaturesWizardPage page
;
35 private Set
<DefinedTermBase
> additionalFeatures
;
37 private List
<TermVocabularyDto
> vocabularyDtos
;
39 private boolean singleSelection
= false;
41 public AvailableFeaturesWizard(TermType termType
){
42 vocabularyDtos
= CdmStore
.getService(IVocabularyService
.class).findVocabularyDtoByTermType(termType
);
45 public AvailableFeaturesWizard(List
<TermVocabularyDto
> vocabularyDtos
){
46 this.vocabularyDtos
= vocabularyDtos
;
51 public void addPages() {
52 page
= new AvailableFeaturesWizardPage(vocabularyDtos
,singleSelection
);
57 public boolean canFinish() {
58 int size
= page
.getSelectedFeatures().size();
59 return singleSelection?size
==1:size
>0;
64 public boolean performFinish() {
65 additionalFeatures
= page
.getSelectedFeatures();
66 if(singleSelection
&& additionalFeatures
.size()>1){
67 MessagingUtils
.warningDialog("Too many terms selected", this, "You can only select 1 term");
69 return additionalFeatures
.size() > 0;
72 public Set
<DefinedTermBase
> getAdditionalFeatures() {
73 return additionalFeatures
;
76 public void setSingleSelection(boolean singleSelection
) {
77 this.singleSelection
= singleSelection
;