Project

General

Profile

Download (2.65 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.element;
12

    
13
import org.eclipse.jface.util.PropertyChangeEvent;
14

    
15
import eu.etaxonomy.cdm.model.description.KeyStatement;
16
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
17

    
18
/**
19
 * @author n.hoffmann
20
 * @created Dec 3, 2010
21
 * @version 1.0
22
 */
23
public class KeyStatementElement extends MultilanguageTextElement {
24

    
25
	private KeyStatement keyStatement;
26

    
27
	/**
28
	 * @param formFactory
29
	 * @param formElement
30
	 */
31
	public KeyStatementElement(CdmFormFactory formFactory,
32
			ICdmFormElement formElement, String labelString,
33
			KeyStatement keyStatement, int textHeight, int style) {
34
		super(formFactory, formElement, labelString, null, textHeight, style);
35
		setKeyStatement(keyStatement);
36
	}
37

    
38
	/**
39
	 * @param keyStatement
40
	 *            the keyStatement to set
41
	 */
42
	public void setKeyStatement(KeyStatement keyStatement) {
43
		this.keyStatement = keyStatement;
44
		if (keyStatement != null) {
45
			setMultilanguageText(keyStatement.getLabel());
46
		}
47
	}
48

    
49
	/**
50
	 * @return the keyStatement
51
	 */
52
	public KeyStatement getKeyStatement() {
53
		return keyStatement;
54
	}
55

    
56
	public void update(PolytomousKeyNode node) {
57
	    if(node.getStatement() == null) {
58
	        node.setStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
59
                            element_languageString.getLanguageString().getText()));
60
	    } else {
61
	        node.getStatement().getLabel().put(element_languageString.getLanguageString().getLanguage(),
62
	                element_languageString.getLanguageString());
63
	    }
64
	}
65

    
66
	/*
67
	 * (non-Javadoc)
68
	 *
69
	 * @see
70
	 * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
71
	 * (org.eclipse.jface.util.PropertyChangeEvent)
72
	 */
73
	@Override
74
	public void propertyChange(PropertyChangeEvent event) {
75
		if (event == null) {
76
			return;
77
		}
78

    
79
		if (keyStatement == null) {
80
			Object eventSource = event.getSource();
81
			if (eventSource == element_languageString) {
82

    
83
				if(element_languageString.getLanguageString() != null) {
84
					// for the case when the user copy / pastes text into the
85
					// (LanguageStringWithLabelElement) element_languageString text field
86
					setKeyStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
87
							element_languageString.getLanguageString().getText()));
88
				} else {
89
					//setKeyStatement(KeyStatement.NewInstance());
90
				}
91
			}
92
		}
93

    
94
		super.propertyChange(event);
95

    
96
	}
97

    
98
}
(24-24/42)