KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > memoire > vainstall > VAGlobals


1 /**
2  * $RCSfile: VAGlobals.java,v $
3  * @creation 01/02/00
4  * @modification $Date: 2005/03/16 19:55:26 $
5  * Bug-fixing and additional features by Antonio Petrelli
6  */

7
8 package com.memoire.vainstall;
9
10 import java.awt.Color JavaDoc;
11 import java.text.MessageFormat JavaDoc;
12 import java.util.Hashtable JavaDoc;
13 import java.util.Locale JavaDoc;
14 import java.util.MissingResourceException JavaDoc;
15 import java.util.ResourceBundle JavaDoc;
16 import java.util.StringTokenizer JavaDoc;
17 import java.util.Vector JavaDoc;
18
19 import javax.swing.UIManager JavaDoc;
20
21 /**
22  * @version $Id: VAGlobals.java,v 1.27 2005/03/16 19:55:26 deniger Exp $
23  * @author Axel von Arnim
24  */

25
26 public class VAGlobals
27 {
28   public final static boolean DEBUG="yes".equals(System.getProperty("DEBUG"));
29
30   public final static String JavaDoc NAME ="VAInstall";
31   public final static String JavaDoc VERSION ="0.23a";
32   public final static String JavaDoc AUTHOR ="Axel von Arnim";
33   public final static String JavaDoc COPYRIGHT="2000-2002";
34   public final static String JavaDoc LICENSE ="GPL2";
35   public final static String JavaDoc HTTP="http://www.ifrance.com/vonarnim/vainstall";
36   public final static String JavaDoc EMAIL="vonarnim@club-internet.fr";
37   public final static Class JavaDoc BASE_CLASS=new VAGlobals().getClass();
38
39   public final static int UNKNOWN =0;
40   public final static int INSTALL =1;
41   public final static int UNINSTALL=2;
42   public final static int UPDATE =3;
43   public static int OPERATION=UNKNOWN;
44
45   public static String JavaDoc UI_MODE;
46   public static boolean UI_BLUESCREEN;
47   public static Color JavaDoc UI_BLUESCREEN_COLOR;
48   public static String JavaDoc IMAGE;
49 public static boolean USE_FULL_JAVA_PATH;
50 public static boolean SHORTCUTS_IN_INSTALLDIR;
51   public static String JavaDoc DEST_PATH;
52   public static String JavaDoc APP_NAME;
53   public static String JavaDoc APP_VERSION;
54
55   public static String JavaDoc JNI_DLL_FILE;
56
57   public static String JavaDoc LINK_SECTION_NAME;
58   public static String JavaDoc LINK_SECTION_ICON;
59   public static String JavaDoc LINK_ENTRY_NAME;
60   public static String JavaDoc LINK_ENTRY_ICON;
61   public static boolean CREATE_UNINSTALL_SHORTCUT;
62
63   /**
64    * Supported languages
65    */

66   public static String JavaDoc[][] languages =
67   {
68     {"danish" ,"Danish" ,"da","DK"},
69     {"german" ,"Deutsch" ,"de","DE"},
70     {"english" ,"English" ,"en","UK"},
71     {"french" ,"Français","fr","FR"},
72     {"italian" ,"Italian" ,"it","IT"},
73     {"japanese","Japanese","ja","JP"}
74   };
75   private static String JavaDoc[] allSupportedLanguages;
76
77   private static String JavaDoc[] supportedLanguages;
78
79   /**
80    * The locale that is used now
81    */

82   private static Locale JavaDoc locale;
83
84   /**
85    * The language that is used now
86    */

87   private static String JavaDoc currentLanguage;
88
89   /**
90    * Cached resources
91    */

92   private static Hashtable JavaDoc resourceList = null;
93
94 // AVA : deprecated
95
// private static Properties transTable=null;
96

97   public static void printDebug(String JavaDoc msg)
98     { if(DEBUG) System.err.println(msg); }
99
100   public static String JavaDoc i18n(String JavaDoc key)
101   {
102     String JavaDoc s=null;
103     try {
104       s=getResource("com.memoire.vainstall.Language",key);
105     } catch( MissingResourceException JavaDoc e ) { }
106     if( s==null )
107     try {
108       s=getResource("com.memoire.vainstall.gui.Language",key);
109     } catch( MissingResourceException JavaDoc e ) { }
110     if( s==null )
111     try {
112       s=getResource("com.memoire.vainstall.xui.Language",key);
113     } catch( MissingResourceException JavaDoc e ) { }
114     if( s==null )
115     try {
116       s=getResource("com.memoire.vainstall.tui.Language",key);
117     } catch( MissingResourceException JavaDoc e ) { }
118     // last try failed -> print key
119
if( s==null ) s=key;
120     return s;
121   }
122
123   public static String JavaDoc i18n(String JavaDoc key, Object JavaDoc[] params)
124   {
125     String JavaDoc s=i18n(key);
126     if (s != null && params != null) {
127       s = MessageFormat.format(s, params);
128     }
129     return s;
130   }
131
132 /* AVA : deprecated
133   public static String getString(String s)
134   {
135     Locale l=Locale.getDefault();
136     if("en".equals(l.getLanguage())) return s;
137     if( transTable==null ) {
138       transTable=new Properties();
139       try {
140         InputStream fin=BASE_CLASS.getResourceAsStream("vai_"+l.getLanguage()+".lang");
141         if( fin!=null ) {
142           transTable.load(fin);
143           fin.close();
144         }
145       } catch( IOException e ) { printDebug("error while reading vai_"+l.getLanguage()+".lang"); }
146     }
147     String res=transTable.getProperty(s);
148     if( (res==null)||("".equals(res.trim())) ) res=s;
149     return res;
150   }
151 */

152
153 /**
154  * Get a String resource from a resourcebundle.
155  * @param baseName String The name of the resource class ex. 'com.memorie.vainstall.Language'
156  * @param key String The keyword to find
157  * @return String
158  */

159 public static String JavaDoc getResource(String JavaDoc baseName,String JavaDoc key)
160        throws MissingResourceException JavaDoc
161 {
162
163   if( (locale == null) || DEBUG )
164   {
165     locale = new Locale JavaDoc("en","UK");
166   }
167
168   if(resourceList == null)
169   {
170     resourceList = new java.util.Hashtable JavaDoc();
171   }
172
173   // check to see if we have cached
174
if(resourceList.contains(baseName) == false)
175   {
176     // throws java.util.MissingResourceException
177
ResourceBundle JavaDoc resource = ResourceBundle.getBundle(baseName,locale);
178
179     // we got the resource bundle
180
resourceList.put(baseName,resource);
181     return resource.getString(key);
182   }
183   else
184   {
185     return ((ResourceBundle JavaDoc)resourceList.get(baseName)).getString(key);
186   }
187
188 } // endmethod
189

190 /**
191  * Get a 'int' resource from a resourcebundle.
192  * @param baseName String The name of the resource class ex. 'com.memorie.vainstall.Language'
193  * @param key String The keyword to find
194  * @return int
195  */

196 public static int getResourceInt(String JavaDoc baseName,String JavaDoc key)
197        throws java.util.MissingResourceException JavaDoc
198 {
199
200   if(locale == null)
201   {
202     locale = new Locale JavaDoc("en","UK");
203   }
204
205   if(resourceList == null)
206   {
207     resourceList = new java.util.Hashtable JavaDoc();
208   }
209
210   // check to see if we have cached
211
if(resourceList.contains(baseName) == false)
212   {
213     // throws java.util.MissingResourceException
214
ResourceBundle JavaDoc resource = ResourceBundle.getBundle(baseName,locale);
215
216     // we got the resource bundle
217
resourceList.put(baseName,resource);
218
219     Integer JavaDoc value=(Integer JavaDoc)resource.getObject(key);
220     return (int)value.intValue();
221   }
222   else
223   {
224     Integer JavaDoc value=(Integer JavaDoc)((ResourceBundle JavaDoc)resourceList.get(baseName)).getObject(key);
225     return (int)value.intValue();
226   }
227
228 } // endmethod
229

230 /**
231  * Set the language as defined in the documentation.
232  * We translate the name to a 'controlled' Java Locale.
233  * @param language String The language as defined in the documentation
234  * english, french, danish etc.
235  * @return void
236  */

237 public static void setLanguage(String JavaDoc language)
238 {
239   // clear resourcelist cache
240
if(resourceList != null)
241   {
242     resourceList.clear();
243   }
244
245   if(language.toLowerCase().indexOf("choose") != -1)
246   {
247     // 'choose ' keywork alone equals that all supported languages
248
// can be choosen
249
if(language.equalsIgnoreCase("choose") == true)
250     {
251       setLanguage("default");
252       return;
253     }
254
255     Vector JavaDoc languageList = new Vector JavaDoc();
256     String JavaDoc[] supportedLangs = getAllSupportedLanguages();
257
258     Locale JavaDoc l=Locale.getDefault();
259     for(int i=0;i<languages.length;i++)
260     {
261       if(l.getLanguage().equals(languages[i][2]) == true)
262       {
263         currentLanguage = languages[i][0];
264       }
265     }
266
267     StringTokenizer JavaDoc nizer = new StringTokenizer JavaDoc(language,",");
268     while(nizer.hasMoreTokens() == true)
269     {
270       String JavaDoc element = (String JavaDoc)nizer.nextToken();
271       element = element.trim().toLowerCase();
272
273       for(int i=0;i<languages.length;i++)
274       {
275         if(element.equals(languages[i][0]) == true)
276         {
277
278           if(element.equals(currentLanguage) == true)
279           {
280             languageList.insertElementAt(languages[i][0],0);
281           }
282           else
283           {
284             languageList.addElement(languages[i][0]);
285           }
286         }
287       }
288     }
289
290     supportedLanguages = new String JavaDoc[languageList.size()];
291     for(int i = 0;i < languageList.size(); i++)
292     {
293       for(int j=0;j<languages.length;j++)
294       {
295         if(languageList.elementAt(i).equals(languages[j][0]) == true)
296         {
297           supportedLanguages[i] = (String JavaDoc)languages[j][1];
298         }
299       }
300     }
301     setLanguage("default");
302     return;
303   }
304
305   /* If 'default' then we try to initially
306      look at the default language.
307      If it's one of the supported we use that.
308      During install we use the default language if supported
309      until the user selects one.
310      English is the default language.
311   */

312   if(language.equals("default") == true)
313   {
314     Locale JavaDoc l=Locale.getDefault();
315     String JavaDoc shortLanguage = l.getLanguage();
316
317     for(int i = 0; i < languages.length; i++)
318     {
319       if(shortLanguage.equals(languages[i][2]) == true)
320       {
321         currentLanguage = languages[i][0];
322         locale = new Locale JavaDoc(languages[i][2],languages[i][3]);
323       }
324     }
325
326   }
327   else
328   {
329     // One of the known languages
330
for(int i = 0; i < languages.length; i++)
331     {
332       if(language.equals(languages[i][0]) == true)
333       {
334         currentLanguage = languages[i][0];
335         locale = new Locale JavaDoc(languages[i][2],languages[i][3]);
336       }
337     }
338   }
339
340   // update UIManager
341
UIManager.put("OptionPane.yesButtonText",getResource("com.memoire.vainstall.Language","Common_OptionPane.yesButtonText"));
342   UIManager.put("OptionPane.noButtonText",getResource("com.memoire.vainstall.Language","Common_OptionPane.noButtonText"));
343   UIManager.put("OptionPane.okButtonText",getResource("com.memoire.vainstall.Language","Common_OptionPane.okButtonText"));
344   UIManager.put("OptionPane.cancelButtonText",getResource("com.memoire.vainstall.Language","Common_OptionPane.cancelButtonText"));
345
346 }
347
348 public static String JavaDoc[] getSupportedLanguages()
349 {
350   if(supportedLanguages == null)
351   {
352     supportedLanguages = new String JavaDoc[languages.length];
353     for(int i = 0;i < languages.length; i++)
354     {
355       supportedLanguages[i] = languages[i][1];
356     }
357   }
358   return supportedLanguages;
359 }
360
361 public static String JavaDoc[] getAllSupportedLanguages()
362 {
363   if(allSupportedLanguages == null)
364   {
365     allSupportedLanguages = new String JavaDoc[languages.length];
366     for(int i = 0;i < languages.length; i++)
367     {
368       allSupportedLanguages[i] = languages[i][1];
369     }
370   }
371   return allSupportedLanguages;
372 }
373
374 public static String JavaDoc getCurrentLanguage()
375 {
376   return currentLanguage;
377 }
378
379 /**
380  * Return an index that corresponds to the value of getSupportedLanguages
381  * or getAllSupportedLanguages that matches the default locale.
382  * If an exact match for the locale is not present,the value returned is
383  * the first language in the list that matches the language of the default
384  * locale.
385  *
386  */

387 public static int suggestLanguage()
388 {
389   Locale JavaDoc syslocale = Locale.getDefault();
390   String JavaDoc syslang = syslocale.getLanguage();
391   String JavaDoc syscountry = syslocale.getCountry();
392   int langonly = -1;
393   for (int idx = 0; idx < languages.length; idx ++) {
394     if (syslang.equals(languages[idx][2])) {
395       if (syscountry.equals(languages[idx][3])) {
396         return idx;
397       } else {
398         if (langonly == -1) langonly = idx;
399       }
400     }
401   }
402   if (langonly == -1) langonly = 0;
403   return langonly;
404 }
405
406 }
407
Popular Tags