Project

General

Profile

Download (2.87 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * Copyright (C) 2007 EDIT
3
 * European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9

    
10
package eu.etaxonomy.taxeditor.ui.element;
11

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

    
14
import eu.etaxonomy.cdm.model.common.LanguageString;
15
import eu.etaxonomy.cdm.model.description.KeyStatement;
16

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

    
24
	private KeyStatement keyStatement;
25

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

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

    
48
	/**
49
	 * @return the keyStatement
50
	 */
51
	public KeyStatement updateKeyStatement(KeyStatement ks) {
52
	    keyStatement = ks;
53
	    if(keyStatement == null) {
54
	        keyStatement = KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
55
	                element_languageString.getLanguageString().getText());
56

    
57
	    } else {
58
	        LanguageString languageString = keyStatement.getLabel().get(element_languageString.getLanguageString().getLanguage());
59
	        if(languageString != null) {
60
	            languageString.setText(element_languageString.getText());
61
	        } else {
62
	            keyStatement.getLabel().put(element_languageString.getLanguageString().getLanguage(),
63
	                    element_languageString.getLanguageString());
64
	        }
65
	    }
66
	    return keyStatement;
67
	}
68

    
69

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

    
83
		if (keyStatement == null) {
84
			Object eventSource = event.getSource();
85
			if (eventSource == element_languageString) {
86

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

    
98
		super.propertyChange(event);
99

    
100
	}
101

    
102
}
(24-24/45)