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
.ui
.section
.classification
;
14 import org
.eclipse
.jface
.util
.IPropertyChangeListener
;
15 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
16 import org
.eclipse
.swt
.SWT
;
18 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
19 import eu
.etaxonomy
.cdm
.model
.taxon
.ITreeNode
;
20 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
21 import eu
.etaxonomy
.taxeditor
.ui
.forms
.AbstractCdmEntityWizardPage
;
22 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmFormFactory
;
23 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmFormFactory
.DetailType
;
24 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ICdmFormElement
;
27 * <p>TaxonNodeWizardPage class.</p>
30 * @created Sep 15, 2009
33 public class TaxonNodeWizardPage
extends AbstractCdmEntityWizardPage
<ITreeNode
> implements IPropertyChangeListener
{
36 * <p>Constructor for TaxonNodeWizardPage.</p>
38 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
39 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
40 * @param entity a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
42 public TaxonNodeWizardPage(CdmFormFactory formFactory
,
43 ConversationHolder conversation
, ITreeNode entity
) {
44 super(formFactory
, conversation
, entity
);
45 setTitle("Create a new Taxon");
50 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
54 public TaxonNodeDetailElement
createElement(ICdmFormElement rootElement
) {
56 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) formFactory
.createCdmDetailElement(DetailType
.TAXON_NODE
, rootElement
, SWT
.NULL
);
57 detailElement
.setEntity(entity
);
58 formFactory
.addPropertyChangeListener(this);
67 public boolean openInEditor(){
68 return ((TaxonNodeDetailElement
) getDetailElement()).isOpenInEditor();
73 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
77 public void propertyChange(PropertyChangeEvent event
) {
78 if(event
.getSource() == getDetailElement()){
79 setPageComplete(checkComplete());
86 private boolean checkComplete() {
87 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
89 if(detailElement
.getClassification() == null){
90 setMessage("No classification", WARNING
);
100 * <p>Getter for the field <code>parentTreeNode</code>.</p>
102 * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
104 public ITreeNode
getParentTreeNode() {
105 return ((TaxonNodeDetailElement
) getDetailElement()).getParentTreeNode();
108 public Taxon
getTaxon(){
109 return ((TaxonNodeDetailElement
) getDetailElement()).getTaxon();
113 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
117 public void dispose() {
118 formFactory
.removePropertyChangeListener(this);