refactoring of package names for consistency
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / classification / TaxonNodeWizardPage.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
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.
9 */
10
11 package eu.etaxonomy.taxeditor.ui.section.classification;
12
13 import org.eclipse.jface.util.PropertyChangeEvent;
14 import org.eclipse.swt.SWT;
15
16 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
17 import eu.etaxonomy.cdm.model.taxon.ITreeNode;
18 import eu.etaxonomy.cdm.model.taxon.Taxon;
19 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
20 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType;
23
24 /**
25 * <p>
26 * TaxonNodeWizardPage class.
27 * </p>
28 *
29 * @author n.hoffmann
30 * @created Sep 15, 2009
31 * @version 1.0
32 */
33 public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode> {
34
35 /**
36 * <p>
37 * Constructor for TaxonNodeWizardPage.
38 * </p>
39 *
40 * @param formFactory
41 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
42 * object.
43 * @param conversation
44 * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
45 * object.
46 * @param entity
47 * a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
48 */
49 public TaxonNodeWizardPage(CdmFormFactory formFactory,
50 ConversationHolder conversation, ITreeNode entity) {
51 super(formFactory, conversation, entity);
52 setTitle("Create a new Taxon");
53 }
54
55 /*
56 * (non-Javadoc)
57 *
58 * @see
59 * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
60 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
61 */
62 /** {@inheritDoc} */
63 @Override
64 public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
65
66 TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) formFactory
67 .createCdmDetailElement(DetailType.TAXON_NODE, rootElement,
68 SWT.NULL);
69 detailElement.setEntity(entity);
70 formFactory.addPropertyChangeListener(this);
71 return detailElement;
72 }
73
74 /**
75 * <p>
76 * openInEditor
77 * </p>
78 *
79 * @return a boolean.
80 */
81 public boolean openInEditor() {
82 return ((TaxonNodeDetailElement) getDetailElement()).isOpenInEditor();
83 }
84
85 /*
86 * (non-Javadoc)
87 *
88 * @see
89 * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
90 * .jface.util.PropertyChangeEvent)
91 */
92 /** {@inheritDoc} */
93 @Override
94 public void propertyChange(PropertyChangeEvent event) {
95 if (event.getSource() == getDetailElement()) {
96 checkComplete();
97 }
98 }
99
100 /**
101 *
102 */
103 @Override
104 protected void checkComplete() {
105 TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
106
107 if (detailElement.getClassification() == null) {
108 setMessage("No classification", WARNING);
109 } else {
110 setMessage(null);
111 setPageComplete(true);
112 return;
113 }
114
115 setPageComplete(false);
116 }
117
118 /**
119 * <p>
120 * Getter for the field <code>parentTreeNode</code>.
121 * </p>
122 *
123 * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
124 */
125 public ITreeNode getParentTreeNode() {
126 return ((TaxonNodeDetailElement) getDetailElement())
127 .getParentTreeNode();
128 }
129
130 public Taxon getTaxon() {
131 return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
132 }
133
134 /*
135 * (non-Javadoc)
136 *
137 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
138 */
139 /** {@inheritDoc} */
140 @Override
141 public void dispose() {
142 formFactory.removePropertyChangeListener(this);
143 super.dispose();
144 }
145 }