automated build configuration is on its way
[taxeditor.git] / 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
14 import org.eclipse.jface.util.IPropertyChangeListener;
15 import org.eclipse.jface.util.PropertyChangeEvent;
16 import org.eclipse.swt.SWT;
17
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;
25
26 /**
27 * <p>TaxonNodeWizardPage class.</p>
28 *
29 * @author n.hoffmann
30 * @created Sep 15, 2009
31 * @version 1.0
32 */
33 public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<ITreeNode> implements IPropertyChangeListener{
34
35 /**
36 * <p>Constructor for TaxonNodeWizardPage.</p>
37 *
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.
41 */
42 public TaxonNodeWizardPage(CdmFormFactory formFactory,
43 ConversationHolder conversation, ITreeNode entity) {
44 super(formFactory, conversation, entity);
45 setTitle("Create a new Taxon");
46 }
47
48
49 /* (non-Javadoc)
50 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
51 */
52 /** {@inheritDoc} */
53 @Override
54 public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
55
56 TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) formFactory.createCdmDetailElement(DetailType.TAXON_NODE, rootElement, SWT.NULL);
57 detailElement.setEntity(entity);
58 formFactory.addPropertyChangeListener(this);
59 return detailElement;
60 }
61
62 /**
63 * <p>openInEditor</p>
64 *
65 * @return a boolean.
66 */
67 public boolean openInEditor(){
68 return ((TaxonNodeDetailElement) getDetailElement()).isOpenInEditor();
69 }
70
71
72 /* (non-Javadoc)
73 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
74 */
75 /** {@inheritDoc} */
76 @Override
77 public void propertyChange(PropertyChangeEvent event) {
78 if(event.getSource() == getDetailElement()){
79 setPageComplete(checkComplete());
80 }
81 }
82
83 /**
84 *
85 */
86 private boolean checkComplete() {
87 TaxonNodeDetailElement detailElement = (TaxonNodeDetailElement) getDetailElement();
88
89 if(detailElement.getClassification() == null){
90 setMessage("No classification", WARNING);
91 }else{
92 setMessage(null);
93 return true;
94 }
95
96 return false;
97 }
98
99 /**
100 * <p>Getter for the field <code>parentTreeNode</code>.</p>
101 *
102 * @return a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
103 */
104 public ITreeNode getParentTreeNode() {
105 return ((TaxonNodeDetailElement) getDetailElement()).getParentTreeNode();
106 }
107
108 public Taxon getTaxon(){
109 return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
110 }
111
112 /* (non-Javadoc)
113 * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#dispose()
114 */
115 /** {@inheritDoc} */
116 @Override
117 public void dispose() {
118 formFactory.removePropertyChangeListener(this);
119 super.dispose();
120 }
121 }