Project

General

Profile

Download (3.42 KB) Statistics
| Branch: | Tag: | Revision:
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.ITreeNode;
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.section.campanula.compatibility.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<ITreeNode> {
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.ITreeNode} object.
46
	 */
47
	public TaxonNodeWizardPage(CdmFormFactory formFactory,
48
			ConversationHolder conversation, ITreeNode 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.ITreeNode} object.
120
	 */
121
	public ITreeNode 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
}
(6-6/6)