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  import org.apache.commons.lang.StringUtils;
26  
27  /***
28   * Represents a collection of translated data which is a name associated to a
29   * table of <code>String</code> objects. The <code>isTranslated()</code>
30   * method always returns <code>true</code>.
31   * 
32   * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
33   * @since 0.90
34   */
35  public class TranslatedCollectionData extends CollectionData {
36  	/***
37  	 * The translated values of this data. Equals to <code>null</code> until is
38  	 * translated.
39  	 */
40  	private String translatedValue;
41  
42  	/***
43  	 * Default public constructor.
44  	 * 
45  	 * @param propertyConfig
46  	 *          the property configuration of this data to use
47  	 * @param values
48  	 *          the values of this data
49  	 */
50  	public TranslatedCollectionData(PropertyConfig propertyConfig,
51  			String... values) {
52  		super(propertyConfig, values);
53  	}
54  
55  	@Override
56  	public String getTranslatedValue(Proxy proxy) {
57  		if (translatedValue == null) {
58  			StringBuilder res = new StringBuilder(values.length * 20);
59  			for (String value : values) {
60  				if (res.length() != 0) {
61  					res.append(", ");
62  				}
63  				if (proxy == null) {
64  					res.append(LanguageManagerMDB.getString(StringUtils
65  							.chop(getPropertyName())
66  							+ "-" + value.trim()));
67  				} else {
68  					res
69  							.append(LanguageManagerMDB.getString(StringUtils
70  									.chop(getPropertyName())
71  									+ "-"
72  									+ proxy.getGlobalValueFromLocal(StringUtils
73  											.chop(getPropertyName()), value
74  											.trim())));
75  				}
76  			}
77  			translatedValue = res.toString();
78  		}
79  		return translatedValue;
80  	}
81  
82  }