1 6 package com.nightlabs.ipanema.language; 7 8 import java.util.HashMap ; 9 import java.util.Locale ; 10 import java.util.Map ; 11 12 import org.apache.log4j.Logger; 13 import org.eclipse.jface.action.IAction; 14 15 import com.nightlabs.config.Config; 16 import com.nightlabs.config.ConfigException; 17 import com.nightlabs.ipanema.base.login.Login; 18 import com.nightlabs.ipanema.base.login.LoginStateListener; 19 import com.nightlabs.ipanema.language.LanguageManager; 20 import com.nightlabs.ipanema.language.LanguageManagerUtil; 21 import com.nightlabs.l10n.GlobalL10nSettings; 22 23 31 public class LanguageWatcher implements LoginStateListener { 32 33 public static final Logger LOGGER = Logger.getLogger(LanguageWatcher.class); 34 35 private Map languageChecks = new HashMap (); 36 private static LanguageWatcher sharedInstance; 37 38 private boolean isLanguageChecked(String userName) { 39 if (!languageChecks.containsKey(userName)) 40 return false; 41 Boolean checked = (Boolean ) languageChecks.get(userName); 42 return checked.booleanValue(); 43 } 44 45 private void setLanguageChecked(String userName, boolean checked) { 46 languageChecks.put(userName,new Boolean (checked)); 47 } 48 49 52 public void loginStateChanged(int loginState, IAction action) { 53 switch (loginState) { 54 case Login.LOGINSTATE_LOGGED_IN: 55 LOGGER.debug("loginStateChanged(..): registering language"); 56 String userName = Login.sharedInstance().getLoginContext().getUsername(); 57 if (!isLanguageChecked(userName)) { 58 createLanguage(); 59 checkUserLanguage(); 60 setLanguageChecked(userName,true); 61 } 62 break; 63 default: 64 break; 65 } 66 } 67 68 71 protected void createLanguage() { 72 LanguageManager languageManager = null; 73 try { 74 languageManager = LanguageManagerUtil.getHome( 75 Login.getLogin().getInitialContextProperties() 76 ).create(); 77 languageManager.createLanguage(Locale.getDefault().getLanguage(),Locale.getDefault().getDisplayLanguage()); 78 } catch (Exception e) { 79 LOGGER.error("Failed creating client language: ",e); 80 } 81 } 82 83 87 protected void checkUserLanguage() { 88 } 90 91 92 public static void showRestartDialog() { 93 94 } 95 96 public static LanguageWatcher getSharedInstance() { 97 if (sharedInstance == null) { 98 sharedInstance = new LanguageWatcher(); 99 } 100 return sharedInstance; 101 } 102 103 114 static { 115 try { 116 Config.sharedInstance().createConfigModule(GlobalL10nSettings.class); 117 } catch (ConfigException e) { 118 LOGGER.error("Error creating GlobalL10nSettings Cf-Mod.",e); 119 } 120 } 121 122 } 123 | Popular Tags |