Kawai Wiki

Rev

Rev 154 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 154 Rev 194
Line 5... Line 5...
5
import java.util.Locale;
5
import java.util.Locale;
6
6
7
import org.mentawai.list.ListData;
7
import org.mentawai.list.ListData;
8
import org.mentawai.list.SimpleListData;
8
import org.mentawai.list.SimpleListData;
9
9
-
 
10
/**
-
 
11
 * Model class Language.
-
 
12
 *
-
 
13
 * @author Sergio Oliveira
-
 
14
 *
-
 
15
 */
10
public class Language {
16
public class Language {
11
17
12
        private static final List<Language> LANGUAGES = new ArrayList<Language>(16);
-
 
13
       
-
 
14
        private final int id;
-
 
15
        private final String name;
-
 
16
        private final Locale loc;
-
 
17
        private final String imageFile;
-
 
-
 
18
    /** Attribute LANGUAGES of Language. */
-
 
19
    private static final List<Language> LANGUAGES = new ArrayList<Language>(16);
-
 
20
-
 
21
    /** Attribute id of Language. */
-
 
22
    private final int id;
-
 
23
    /** Attribute name of Language. */
-
 
24
    private final String name;
-
 
25
    /** Attribute loc of Language. */
-
 
26
    private final Locale loc;
-
 
27
    /** Attribute imageFile of Language. */
-
 
28
    private final String imageFile;
18
29
19
    public Language(int code, String name, String locale, String imageFile) {
30
    public Language(int code, String name, String locale, String imageFile) {
20
        this.id = code;
-
 
21
        this.name = name;
-
 
22
        this.loc = getLocaleFromString(locale);
-
 
23
        this.imageFile = imageFile;
-
 
-
 
31
        this.id = code;
-
 
32
        this.name = name;
-
 
33
        this.loc = getLocaleFromString(locale);
-
 
34
        this.imageFile = imageFile;
24
    }
35
    }
25
   
-
 
-
 
36
26
    public Language(int code, String name, String locale) {
37
    public Language(int code, String name, String locale) {
27
        this(code, name, locale, null);
-
 
-
 
38
        this(code, name, locale, null);
28
    }
39
    }
29
   
-
 
-
 
40
30
    public static void add(Language language) {
41
    public static void add(Language language) {
31
        LANGUAGES.add(language);
-
 
-
 
42
        LANGUAGES.add(language);
32
    }
43
    }
33
   
-
 
-
 
44
34
    public static Language getDefault() {
45
    public static Language getDefault() {
35
        if (LANGUAGES.isEmpty()) throw new IllegalStateException("No languages were defined!");
-
 
36
        return LANGUAGES.get(0);
-
 
-
 
46
        if (LANGUAGES.isEmpty()) throw new IllegalStateException("No languages were defined!");
-
 
47
        return LANGUAGES.get(0);
37
    }
48
    }
38
49
39
    public int getId() {
50
    public int getId() {
40
        return id;
-
 
-
 
51
        return id;
41
    }
52
    }
42
   
-
 
-
 
53
43
    public String getName() {
54
    public String getName() {
44
        return name;
-
 
-
 
55
        return name;
45
    }
56
    }
46
   
-
 
-
 
57
47
    public Locale getLocale() {
58
    public Locale getLocale() {
48
        return loc;
-
 
-
 
59
        return loc;
49
    }
60
    }
50
   
-
 
-
 
61
51
    public String getImageFile() {
62
    public String getImageFile() {
52
        return imageFile;
-
 
-
 
63
        return imageFile;
53
    }
64
    }
54
   
-
 
-
 
65
55
    @Override
66
    @Override
56
    public String toString() {
67
    public String toString() {
57
        return name;
-
 
-
 
68
        return name;
58
    }
69
    }
59
   
-
 
-
 
70
60
    public static ListData getListData() {
71
    public static ListData getListData() {
61
        SimpleListData list = new SimpleListData("languages");
-
 
62
        for(Language l : LANGUAGES) {
-
 
63
                list.add(l.getId(), l.getName());
-
 
64
        }
-
 
65
        return list;
-
 
-
 
72
        SimpleListData list = new SimpleListData("languages");
-
 
73
        for(Language l : LANGUAGES) {
-
 
74
            list.add(l.getId(), l.getName());
-
 
75
        }
-
 
76
        return list;
66
    }
77
    }
67
   
-
 
-
 
78
68
    public static Language fromId(int id) {
79
    public static Language fromId(int id) {
69
        for(Language l : LANGUAGES) {
-
 
70
                if (l.getId() == id) return l;
-
 
71
        }
-
 
72
        return null;
-
 
-
 
80
        for(Language l : LANGUAGES) {
-
 
81
            if (l.getId() == id) return l;
-
 
82
        }
-
 
83
        return null;
73
    }
84
    }
74
   
-
 
-
 
85
75
    public static Language fromLocale(Locale loc) {
86
    public static Language fromLocale(Locale loc) {
76
        if (loc == null) return null;
-
 
77
        for(Language l : LANGUAGES) {
-
 
78
                if (l.getLocale().equals(loc)) return l;
-
 
79
        }
-
 
80
        for(Language l : LANGUAGES) {
-
 
81
                if (l.getLocale().getLanguage().equals(loc.getLanguage())) {
-
 
82
                        return l;
-
 
83
                }
-
 
84
        }
-
 
85
        return null;
-
 
-
 
87
        if (loc == null) return null;
-
 
88
        for(Language l : LANGUAGES) {
-
 
89
            if (l.getLocale().equals(loc)) return l;
-
 
90
        }
-
 
91
        for(Language l : LANGUAGES) {
-
 
92
            if (l.getLocale().getLanguage().equals(loc.getLanguage())) {
-
 
93
                return l;
-
 
94
            }
-
 
95
        }
-
 
96
        return null;
86
    }
97
    }
87
   
-
 
-
 
98
88
    public static Language fromLocale(String s) {
99
    public static Language fromLocale(String s) {
89
        if (s == null) return null;
-
 
90
        Locale loc = getLocaleFromString(s);
-
 
91
        return fromLocale(loc);
-
 
-
 
100
        if (s == null) return null;
-
 
101
        Locale loc = getLocaleFromString(s);
-
 
102
        return fromLocale(loc);
92
    }
103
    }
93
   
-
 
-
 
104
94
    public static Language fromName(String name) {
105
    public static Language fromName(String name) {
95
        if (name == null) return null;
-
 
96
        for(Language l : LANGUAGES) {
-
 
97
                if (l.getName().equalsIgnoreCase(name)) return l;
-
 
98
        }
-
 
99
        return null;
-
 
-
 
106
        if (name == null) return null;
-
 
107
        for(Language l : LANGUAGES) {
-
 
108
            if (l.getName().equalsIgnoreCase(name)) return l;
-
 
109
        }
-
 
110
        return null;
100
    }
111
    }
101
   
-
 
-
 
112
102
    public static Locale getLocaleFromString(String s) {
113
    public static Locale getLocaleFromString(String s) {
103
        if (s == null) return null;
-
 
-
 
114
        if (s == null) return null;
104
        String[] temp = s.split("_");
115
        String[] temp = s.split("_");
105
        if (temp.length == 1) {
116
        if (temp.length == 1) {
106
            return new Locale(temp[0]);
117
            return new Locale(temp[0]);
107
        } else if (temp.length == 2) {
118
        } else if (temp.length == 2) {
108
            return new Locale(temp[0], temp[1]);
119
            return new Locale(temp[0], temp[1]);
109
        } else if (temp.length == 3) {
120
        } else if (temp.length == 3) {
110
            return new Locale(temp[0], temp[1], temp[2]);
121
            return new Locale(temp[0], temp[1], temp[2]);
111
        }
122
        }
112
        return null;
123
        return null;
113
    }
124
    }
114
   
-
 
-
 
125
115
    public static List<Language> all() {
126
    public static List<Language> all() {
116
        return LANGUAGES;
-
 
-
 
127
        return LANGUAGES;
117
    }
128
    }
118
   
-
 
-
 
129
119
    public static void clear() {
130
    public static void clear() {
120
        LANGUAGES.clear();
-
 
-
 
131
        LANGUAGES.clear();
121
    }
132
    }
122
}
133
}