Project

General

Profile

Download (2.88 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.common.LanguageString;
16
import eu.etaxonomy.cdm.model.description.KeyStatement;
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 updateKeyStatement(KeyStatement ks) {
53
	    keyStatement = ks;
54
	    if(keyStatement == null) {
55
	        keyStatement = KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
56
	                element_languageString.getLanguageString().getText());
57

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

    
70

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

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

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

    
99
		super.propertyChange(event);
100

    
101
	}
102

    
103
}
(24-24/42)