Project

General

Profile

Download (4.68 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.singlesource.ui.forms;
12

    
13
import org.apache.log4j.Logger;
14
import org.eclipse.swt.events.ModifyEvent;
15

    
16
import eu.etaxonomy.cdm.model.common.LanguageString;
17
import eu.etaxonomy.taxeditor.singlesource.ImplementationLoader;
18
import eu.etaxonomy.taxeditor.store.CdmStore;
19
import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
20
import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
21

    
22
/**
23
 * <p>LanguageStringWithLabelElement class.</p>
24
 *
25
 * @author n.hoffmann
26
 * @created Mar 25, 2010
27
 * @version 1.0
28
 */
29
public abstract class LanguageStringWithLabelElementFacade extends TextWithLabelElementFacade {
30
	private static final Logger logger = Logger.getLogger(LanguageStringWithLabelElementFacade.class);
31
	
32
	private static LanguageStringWithLabelElementFacade IMPL;
33
	static{
34
		IMPL = (LanguageStringWithLabelElementFacade) ImplementationLoader.newInstance(LanguageStringWithLabelElementFacade.class);
35
	}
36

    
37
	private LanguageString languageString;
38
	
39
	protected LanguageStringWithLabelElementFacade(){
40
	}
41
	
42
	/**
43
	 * <p>Constructor for LanguageStringWithLabelElement.</p>
44
	 *
45
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
46
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
47
	 * @param labelString a {@link java.lang.String} object.
48
	 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
49
	 * @param style a int.
50
	 */
51
	protected LanguageStringWithLabelElementFacade(CdmFormFactory formFactory,
52
			ICdmFormElement parentElement, String labelString,
53
			LanguageString languageString, int style) {
54
		this(formFactory, parentElement, labelString, languageString, null, style);
55
	}
56

    
57
	public static LanguageStringWithLabelElementFacade getInstance( CdmFormFactory formFactory,
58
			ICdmFormElement parentElement, String labelString,
59
			LanguageString languageString, int style)
60
	{
61
		return (LanguageStringWithLabelElementFacade)IMPL.getInstanceInternal(formFactory, parentElement, labelString, languageString, style);
62
	}
63
	
64
	protected abstract Object getInstanceInternal(CdmFormFactory formFactory,
65
			ICdmFormElement parentElement, String labelString,
66
			LanguageString languageString, int style);
67

    
68
	/**
69
	 * <p>Constructor for LanguageStringWithLabelElement.</p>
70
	 *
71
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
72
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
73
	 * @param labelString a {@link java.lang.String} object.
74
	 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
75
	 * @param height a int.
76
	 * @param style a int.
77
	 */
78
	protected LanguageStringWithLabelElementFacade(CdmFormFactory formFactory,
79
			ICdmFormElement parentElement, String labelString,
80
			LanguageString languageString, Integer height, int style) {
81
		super(formFactory, parentElement, labelString, null, height, style);
82
		
83
		setLanguageString(languageString);
84
	}
85
	
86
	public static LanguageStringWithLabelElementFacade getInstance( CdmFormFactory formFactory,
87
			ICdmFormElement parentElement, String labelString,
88
			LanguageString languageString, Integer height, int style)
89
	{
90
		return (LanguageStringWithLabelElementFacade)IMPL.getInstanceInternal(formFactory, parentElement, labelString, languageString, height, style);
91
	}
92

    
93
	protected abstract Object getInstanceInternal(CdmFormFactory formFactory,
94
			ICdmFormElement parentElement, String labelString,
95
			LanguageString languageString, Integer height, int style);
96
		
97
	/**
98
	 * <p>Getter for the field <code>languageString</code>.</p>
99
	 *
100
	 * @return a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
101
	 */
102
	public LanguageString getLanguageString() {
103
		return languageString;
104
	}
105
	
106
	/** {@inheritDoc} */
107
	@Override
108
	public void modifyText(ModifyEvent e) {
109
		if(languageString == null){
110
			languageString = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
111
		}
112
		
113
		languageString.setText(text.getText());
114
		super.modifyText(e);
115
	}
116
	
117
	/** {@inheritDoc} */
118
	@Override
119
	public void setText(String text) {
120
		if(text != null){
121
			languageString.setText(text);
122
			super.setText(text);
123
		}
124
	}
125

    
126
	/**
127
	 * <p>Setter for the field <code>languageString</code>.</p>
128
	 *
129
	 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
130
	 */
131
	public void setLanguageString(LanguageString languageString) {
132
		this.languageString = languageString;
133
		super.setText(languageString != null ? languageString.getText() : "");
134
	}
135
}
(1-1/4)