View Javadoc

1   /*
2    *   Magic-Project is a turn based strategy simulator
3    *   Copyright (C) 2003-2007 Fabrice Daugan
4    *
5    *   This program is free software; you can redistribute it and/or modify it 
6    * under the terms of the GNU General Public License as published by the Free 
7    * Software Foundation; either version 2 of the License, or (at your option) any
8    * later version.
9    *
10   *   This program is distributed in the hope that it will be useful, but WITHOUT 
11   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12   * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
13   * details.
14   *
15   *   You should have received a copy of the GNU General Public License along  
16   * with this program; if not, write to the Free Software Foundation, Inc., 
17   * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  package net.sf.magicproject.database.data;
20  
21  import net.sf.magicproject.database.Proxy;
22  import net.sf.magicproject.database.propertyconfig.PropertyConfig;
23  import net.sf.magicproject.ui.i18n.LanguageManagerMDB;
24  
25  /***
26   * Represents a simple translated data, which is a name associated to a
27   * <code>String</code> value. The <code>isTranslated()</code> method always
28   * returns <code>true</code>.
29   * 
30   * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
31   * @since 0.90
32   */
33  public class TranslatedStringData extends StringData {
34  	/***
35  	 * The translated value of this data. Equals to <code>null</code> until is
36  	 * translated.
37  	 */
38  	private String translatedValue;
39  
40  	/***
41  	 * Default public constructor.
42  	 * 
43  	 * @param config
44  	 *          the property configuration of this data to use
45  	 * @param value
46  	 *          the value of this data
47  	 */
48  	public TranslatedStringData(PropertyConfig config, String value) {
49  		super(config, value);
50  	}
51  
52  	@Override
53  	public String getTranslatedValue(Proxy proxy) {
54  		if (translatedValue == null) {
55  			if (proxy == null) {
56  				translatedValue = LanguageManagerMDB.getString(getPropertyName() + "-"
57  						+ getValue());
58  			} else {
59  				translatedValue = LanguageManagerMDB.getString(getPropertyName() + "-"
60  						+ proxy.getGlobalValueFromLocal(getPropertyName(), getValue()));
61  			}
62  		}
63  		return translatedValue;
64  	}
65  }