KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > resources > impl > LocaleConfigImpl


1  /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5
6 package org.exoplatform.services.resources.impl;
7
8 import java.util.HashMap JavaDoc;
9 import java.util.Locale JavaDoc;
10 import java.util.Map JavaDoc;
11 import java.util.ResourceBundle JavaDoc;
12
13 import javax.servlet.http.HttpServletRequest JavaDoc;
14 import javax.servlet.http.HttpServletResponse JavaDoc;
15
16 import org.exoplatform.container.PortalContainer;
17 import org.exoplatform.services.resources.LocaleConfig;
18 import org.exoplatform.services.resources.ResourceBundleService;
19
20 /**
21  * @author Benjamin Mestrallet
22  * benjamin.mestrallet@exoplatform.com
23  */

24 public class LocaleConfigImpl implements LocaleConfig{
25   
26   static private Map JavaDoc predefinedLocaleMap_ = null ;
27   static {
28     predefinedLocaleMap_ = new HashMap JavaDoc(10) ;
29     predefinedLocaleMap_.put("us" , Locale.US) ;
30     predefinedLocaleMap_.put("en" , Locale.ENGLISH) ;
31     predefinedLocaleMap_.put("fr" , Locale.FRANCE) ;
32     predefinedLocaleMap_.put("zh" , Locale.SIMPLIFIED_CHINESE) ;
33   }
34     
35   private Locale JavaDoc locale_;
36   private String JavaDoc outputEncoding_;
37   private String JavaDoc inputEncoding_;
38   private String JavaDoc description_ ;
39   private String JavaDoc localeName_ ;
40   
41   public LocaleConfigImpl() {
42     
43   }
44    
45   public final String JavaDoc getDescription() { return description_; }
46   public final void setDescription(String JavaDoc desc) { description_ = desc; }
47   
48   public final String JavaDoc getOutputEncoding() { return outputEncoding_; }
49   public final void setOutputEncoding(String JavaDoc enc) { outputEncoding_ = enc; }
50   
51   public final String JavaDoc getInputEncoding() { return inputEncoding_ ; }
52   public final void setInputEncoding(String JavaDoc enc) { inputEncoding_ = enc;}
53   
54   public final Locale JavaDoc getLocale() { return locale_ ; }
55   public final void setLocale(Locale JavaDoc locale) { locale_ = locale; }
56   public final void setLocale(String JavaDoc localeName) {
57     localeName_ = localeName ;
58     locale_ = (Locale JavaDoc) predefinedLocaleMap_.get(localeName) ;
59     if(locale_ == null) locale_ = new Locale JavaDoc(localeName) ;
60   }
61   
62   public final String JavaDoc getLanguage() { return locale_.getLanguage() ; }
63  
64   public final String JavaDoc getLocaleName() { return localeName_ ; }
65   
66   public ResourceBundle JavaDoc getResourceBundle(String JavaDoc name) {
67     ResourceBundleService service =
68       (ResourceBundleService)PortalContainer.getComponent(ResourceBundleService.class) ;
69     ResourceBundle JavaDoc res = service.getResourceBundle(name, locale_) ;
70     return res ;
71   }
72   
73   public ResourceBundle JavaDoc getMergeResourceBundle(String JavaDoc[] names) {
74     ResourceBundleService service =
75       (ResourceBundleService)PortalContainer.getComponent(ResourceBundleService.class) ;
76     ResourceBundle JavaDoc res = service.getResourceBundle(names, locale_) ;
77     return res ;
78   }
79   
80   public ResourceBundle JavaDoc getOwnerResourceBundle(String JavaDoc owner) {
81     PortalContainer manager = PortalContainer.getInstance() ;
82     ResourceBundleService service =
83       (ResourceBundleService)manager.getComponentInstanceOfType(ResourceBundleService.class) ;
84     try {
85       ResourceBundle JavaDoc res = service.getResourceBundle("locale.users." + owner, locale_) ;
86       if(res == null ) {
87         res = service.getResourceBundle("locale.users.default", locale_) ;
88       }
89       return res ;
90     } catch (Exception JavaDoc ex) {
91       return service.getResourceBundle("locale.users.default", locale_) ;
92     }
93   }
94   
95   public void setInput(HttpServletRequest JavaDoc req) throws java.io.UnsupportedEncodingException JavaDoc{
96     req.setCharacterEncoding(inputEncoding_) ;
97   }
98   
99   public void setOutput(HttpServletResponse JavaDoc res) {
100     res.setContentType("text/html; charset=" + outputEncoding_) ;
101     res.setLocale(locale_) ;
102   }
103 }
Popular Tags