1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 }