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