Download this file

PeaProperties.java    230 lines (198 with data), 6.1 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
package cologne.eck.all_peas.data;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.charset.Charset;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class PeaProperties {
/**
* The type of the PEA.
* Possible values are:
* "image", "file", "text file" (Notebook PEA), "text" (simple Editor)
*/
private static String fileType; // set in daughter class
// i18n:
private static String language;
private static ResourceBundle languagesBundle;
private static String bundleFileName = "PeaLanguagesBundle";
// special panel for PswDialogView, currently only used in PeaProperties.getFileType():
private static Object typePanel;
/**
* The default character set, used whenever a string
* is converted to an array of bytes
*/
private static final Charset UTF_8 = Charset.forName("UTF-8");
private static String workingMode = ""; // rescue mode or test mode
// private static boolean insideJar = false;
//=================== Language support ========================
/**
* Set the language support for the PEA
*
* @param _language the language to set
* @throws MalformedURLException
*/
public final static void setLanguagesBundle(String _language) throws MalformedURLException {
Locale defaultLocale = Locale.getDefault();
Locale currentLocale;
// i18n:
if (_language == null) {
if (defaultLocale == null) { // openSuse
defaultLocale = new Locale( System.getProperty("user.language") );
}
language = defaultLocale.getLanguage(); // get default language
} else {
language = _language;
}
currentLocale = new Locale(language); // set default language as language
// If PeaControl is not used inside of a pea
// FilePanel uses this bundle
try {
languagesBundle = ResourceBundle.getBundle("resources." + bundleFileName, currentLocale);
} catch (MissingResourceException mre) {
// If called in PeaFactory, not in PEA
try {
//System.out.println("Try to use bundle in folder resources (PeaFactory-Mode)");
File file = new File("resources");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
languagesBundle = ResourceBundle.getBundle(bundleFileName, currentLocale, loader);
} catch (MissingResourceException mre1) {
System.err.println("Resource Bundle PeaLanguagesBundle "+ currentLocale + " not found");
try{
// for PeaFactory: en
File file = new File("resources");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
currentLocale = new Locale("en");
language = "en";
languagesBundle = ResourceBundle.getBundle(bundleFileName, currentLocale, loader);
} catch (MissingResourceException mre2) {
// for PEA: en
languagesBundle = ResourceBundle.getBundle("resources." + bundleFileName, new Locale("en"));
}
}
}
}
/**
* Get the current language bundle. If no bundle
* was set before, it is set with default language
*
* @return the current language bundle
*/
public final static ResourceBundle getBundle(){
if (languagesBundle == null) { // set default language
try {
setLanguagesBundle(null);
} catch (MalformedURLException e) {
System.err.println("Language support failed: " + e.toString() + "\n " + e.getMessage());
e.printStackTrace();
}
}
return languagesBundle;
}
/**
* Get the currently used language
*
* @return the language as String
*/
public static String getLanguage() {
return language;
}
/**
* Get the file name of the current resource bundle
*
* @return the bundleFileName
*/
public static String getBundleFileName() {
return bundleFileName;
}
/**
* Set the file name of the resource bundle
*
* @param newBundleFileName the bundleFileName to set
*/
public static void setBundleFileName(String newBundleFileName) {
PeaProperties.bundleFileName = newBundleFileName;
}
/**
* The working mode of the PEA:
* -t test mode
* -r rescue mode
*
* @return the workingMode
*/
public static String getWorkingMode() {
return workingMode;
}
/**
* Set the working mode:
* -t for test mode
* -r for rescue mode
*
* @param workingMode the workingMode to set
*/
public static void setWorkingMode(String workingMode) {
PeaProperties.workingMode = workingMode;
}
/**
* The character set used in all classes
*
* @return the Charset UTF-8
*/
public static Charset getCharset() {
return UTF_8;
}
/**
* Check if the content is stored as file inside the jar archive,
* used in LockFrameImage
*
* @return true if the content is inside the jar file
*/
/* public static boolean isInsideJar() {
return insideJar;
} */
/**
* Set variable to check if the content is located
* inside the jar archive,
* used in ImageControl
*
* @param insideJar
*/
/* public static void setInsideJar(boolean insideJar) {
PeaProperties.insideJar = insideJar;
} */
/**
* Set a String, that indicates the type of the PEA.
* Possible values are:
* "image", "file", "text file" (Notebook PEA), "text" (simple Editor)
*
* @param _fileType
*/
public final static void setFileType(String _fileType) {
fileType = _fileType;
}
/**
* Get a String, that indicates the type of the PEA
*
* @return a String indicating the type of the PEA.
* Possible values are: "image", "file", "text file" (Notebook PEA), "text" (simple Editor)
*/
public final static String getFileType() {
return fileType;
}
/**
* @return the typePanel
*/
public static Object getTypePanel() {
return typePanel;
}
/**
* @param typePanel the typePanel to set
*/
public static void setTypePanel(Object typePanel) {
PeaProperties.typePanel = typePanel;
}
}