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
;
13 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.widgets
.Event
;
16 import org
.eclipse
.swt
.widgets
.Listener
;
18 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
19 import eu
.etaxonomy
.cdm
.model
.taxon
.ITaxonTreeNode
;
20 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
21 import eu
.etaxonomy
.taxeditor
.newWizard
.IWizardPageListener
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractCdmEntityWizardPage
;
23 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
28 * TaxonNodeWizardPage class.
32 * @created Sep 15, 2009
35 public class TaxonNodeWizardPage
extends AbstractCdmEntityWizardPage
<ITaxonTreeNode
> implements Listener
{
37 private final IWizardPageListener wizardPageListener
;
38 private final boolean isCreateNew
;
42 * Constructor for TaxonNodeWizardPage.
46 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
49 * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
52 * a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
53 * @param closeOnEnterListener
55 public TaxonNodeWizardPage(CdmFormFactory formFactory
,
56 ConversationHolder conversation
, ITaxonTreeNode entity
, IWizardPageListener closeOnEnterListener
, boolean isCreateNew
) {
57 super(formFactory
, conversation
, entity
);
58 this.wizardPageListener
= closeOnEnterListener
;
59 setTitle("TaxonNode");
60 this.isCreateNew
= isCreateNew
;
68 * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
69 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
73 public TaxonNodeDetailElement
createElement(ICdmFormElement rootElement
) {
74 TaxonNodeDetailElement detailElement
= formFactory
.createTaxonNodeDetailElement(rootElement
, this.isCreateNew
);
75 detailElement
.setEntity(entity
);
76 formFactory
.addPropertyChangeListener(this);
78 detailElement
.getTextNewTaxonName().getMainControl().addListener(SWT
.KeyDown
, this);
90 public boolean openInEditor() {
91 return ((TaxonNodeDetailElement
) getDetailElement()).isOpenInEditor();
98 * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
99 * .jface.util.PropertyChangeEvent)
103 public void propertyChange(PropertyChangeEvent event
) {
108 protected void checkComplete() {
109 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
111 if (detailElement
.getClassification() == null) {
112 setMessage("No classification set.", WARNING
);
114 else if(isCreateNew
){
115 if(detailElement
.getTextNewTaxonName().getText().isEmpty()){
116 setMessage("No taxon name set.", ERROR
);
119 setPageComplete(true);
123 else if(!detailElement
.isComplete()){
124 setMessage("Not all required fields are filled.", ERROR
);
128 setPageComplete(true);
132 setPageComplete(false);
137 * Getter for the field <code>parentTreeNode</code>.
140 * @return a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
142 public ITaxonTreeNode
getParentTreeNode() {
143 return ((TaxonNodeDetailElement
) getDetailElement())
144 .getParentTreeNode();
147 public Taxon
getTaxon() {
148 return ((TaxonNodeDetailElement
) getDetailElement()).getTaxon();
154 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
158 public void dispose() {
159 formFactory
.removePropertyChangeListener(this);
164 public void handleEvent(Event event
) {
165 TaxonNodeDetailElement detailElement
= (TaxonNodeDetailElement
) getDetailElement();
166 if(event
.widget
== detailElement
.getTextNewTaxonName().getMainControl()
167 && event
.keyCode
== SWT
.CR
&& isPageComplete()){
168 wizardPageListener
.close();