source: branches/2.2/security/ExpressoCert/src/br/gov/serpro/setup/Setup.java @ 3394

Revision 3394, 5.4 KB checked in by rafaelraymundo, 14 years ago (diff)

Ticket #1265 - Tratamento de mensagens encapsuladas do Outlook.

RevLine 
[1174]1package br.gov.serpro.setup;
[3394]2
[1174]3import java.applet.Applet;
4import java.util.HashMap;
5import java.util.Locale;
6import java.util.Map;
7import java.util.MissingResourceException;
8import java.util.Properties;
9import java.util.ResourceBundle;
10
11public class Setup {
12
[3394]13    /**
14     *
15     */
16    private static final long serialVersionUID = -8164125429139606589L;
17    private Properties parameters;
18    private Properties preferences;
[1174]19    private Map<String, ResourceBundle> langResources;
20    Locale currentLocale;
[3394]21    private Applet currentApplet;
[1174]22    private static final String PREFERENCES_PATH;
23    private static final String EPASS_2000;
24
25    static {
26
[3394]27        if (System.getProperty("os.name").equalsIgnoreCase("linux")) {
28            EPASS_2000 = "/usr/lib/libepsng_p11.so";
29        } else {
30            EPASS_2000 = System.getenv("SystemRoot").replaceAll("\\\\", "/") + "/system32/ngp11v211.dll";
31        }
[1174]32
33
[3394]34        PREFERENCES_PATH = "TESTE";
[1174]35
[3394]36    }
[1174]37
[3394]38    public Setup(Applet applet) {
[1174]39
[3394]40        this.currentApplet = applet;
41        parameters = new Properties();
42        //preferences = Do arquivo apontado por preferences_path
[1174]43
[3394]44        // Pega os parâmetros da applet
45        for (String[] parameter : getParameterInfo()) {
46            String parameterName = parameter[0];
47            String parameterValue;
[1174]48
[3394]49            parameterValue = this.currentApplet.getParameter(parameterName);
[1174]50
[3394]51            System.out.println("parameter: "+parameterName+" value: "+parameterValue);
[3232]52
[3394]53            if (parameterValue != null && !parameterValue.equals("")) {
54                parameters.setProperty(parameterName.toLowerCase(), parameterValue);
55                if (parameterName.equalsIgnoreCase("locale")) {
[1174]56                    System.out.println("Locale recebido.");
57                }
[3394]58            } else {
[1174]59                //Defaults
[3394]60                if (parameterName.equalsIgnoreCase("debug")) {
[1174]61                    parameters.setProperty(parameterName.toLowerCase(), "false");
62                }
[3394]63                if (parameterName.equalsIgnoreCase("token")) {
64                    parameters.setProperty(parameterName.toLowerCase(), "Epass2000;" + EPASS_2000);
[1174]65                }
[3394]66                if (parameterName.equalsIgnoreCase("locale")) {
[1174]67                    System.out.println("Locale não recebido, definindo valor default.");
68                    parameters.setProperty(parameterName.toLowerCase(), "pt_BR");
69                }
70            }
[3394]71        }
[1174]72
[3394]73        //TODO: Pegar as preferências do arquivo de preferências se encontrado;
[1174]74
75        // Lang Resources
76        currentLocale = this.buildLocale(parameters.getProperty("locale"));
77        langResources = new HashMap<String, ResourceBundle>(2);
78        langResources.put("ExpressoCertMessages", ResourceBundle.getBundle("ExpressoCertMessages", currentLocale));
79
[3394]80    }
[1174]81
[3394]82    public String[][] getParameterInfo() {
[1174]83
[3394]84        String[][] info = {
85            {"debug", "boolean", "Habilita mensagens de debug"},
[1174]86            {"token", "string", "Lista de tokens suportados. Formato: nome1;caminho1,nome2;caminho2"},
87            {"locale", "string", "Locale do sistema"}
[3394]88        };
[1174]89
[3394]90        return info;
91    }
[1174]92
[3394]93    public String[][] getPreferencesInfo() {
[1174]94
[3394]95        String[][] info = {
96            {"preferedToken", "string", "Token preferencial do usuário. Formato: nome;caminho"}
97        };
[1174]98
[3394]99        return info;
[1174]100
[3394]101    }
[1174]102
[3394]103    public String getParameter(String key) {
104        return parameters.getProperty(key);
105    }
[1174]106
[3394]107    public String getPreference(String key) {
108        return getPreference(key);
109    }
[1174]110
[3394]111    //TODO: implementar PreferenceNotRegisteredException
112    public void setPreference(String key, String value) {
[1174]113
[3394]114        boolean exists = false;
115        while (!exists) {
116            for (String[] preference : getPreferencesInfo()) {
117                if (key.equalsIgnoreCase(preference[1])) {
118                    exists = true;
119                    preferences.setProperty(key, value);
120                }
121            }
122        }
[1174]123
[3394]124        if (!exists) {
[1174]125//                       throws PreferenceNotRegisteredException();
126            System.out.println("Preferência não existe!");
[3394]127        }
128    }
[1174]129
[3394]130    Locale buildLocale(String localeCode) {
[1174]131
132        String[] localeItems = localeCode.split("_");
133        Locale locale;
[3394]134
135        switch (localeItems.length) {
136            case 1:
137                locale = new Locale(localeItems[0]);
138                break;
139            case 2:
140                locale = new Locale(localeItems[0], localeItems[1]);
141                break;
142            case 3:
143                locale = new Locale(localeItems[0], localeItems[1], localeItems[2]);
144                break;
145            default:
146                locale = new Locale("pt", "BR");
147                System.out.println("Locale code error, setting default locale: " + locale.toString());
[1174]148        }
149
150        return locale;
151    }
152
[3394]153    public void addLanguageResource(String langResource) {
154        System.out.println("registrando recurso de linguagem " + langResource);
[1174]155        langResources.put(langResource, ResourceBundle.getBundle(langResource, currentLocale));
156    }
157
[3394]158    public String getLang(String langResource, String message) {
[1174]159
160        ResourceBundle resource = langResources.get(langResource);
161
162        String i18nText = new String("????");
163        try {
164            i18nText = resource.getString(message);
[3394]165        } catch (MissingResourceException e) {
[1174]166            e.printStackTrace();
167        }
168
169        return i18nText;
170
171        //return message;
172    }
173
[3394]174    // TODO: Not Implemented Yet
175    public boolean savePreferences() {
176        return false;
177    }
[1174]178}
Note: See TracBrowser for help on using the repository browser.