Project

General

Profile

Download (3.44 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

    
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
}
(6-6/6)