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.

Line 
1package br.gov.serpro.setup;
2
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
13    /**
14     *
15     */
16    private static final long serialVersionUID = -8164125429139606589L;
17    private Properties parameters;
18    private Properties preferences;
19    private Map<String, ResourceBundle> langResources;
20    Locale currentLocale;
21    private Applet currentApplet;
22    private static final String PREFERENCES_PATH;
23    private static final String EPASS_2000;
24
25    static {
26
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        }
32
33
34        PREFERENCES_PATH = "TESTE";
35
36    }
37
38    public Setup(Applet applet) {
39
40        this.currentApplet = applet;
41        parameters = new Properties();
42        //preferences = Do arquivo apontado por preferences_path
43
44        // Pega os parâmetros da applet
45        for (String[] parameter : getParameterInfo()) {
46            String parameterName = parameter[0];
47            String parameterValue;
48
49            parameterValue = this.currentApplet.getParameter(parameterName);
50
51            System.out.println("parameter: "+parameterName+" value: "+parameterValue);
52
53            if (parameterValue != null && !parameterValue.equals("")) {
54                parameters.setProperty(parameterName.toLowerCase(), parameterValue);
55                if (parameterName.equalsIgnoreCase("locale")) {
56                    System.out.println("Locale recebido.");
57                }
58            } else {
59                //Defaults
60                if (parameterName.equalsIgnoreCase("debug")) {
61                    parameters.setProperty(parameterName.toLowerCase(), "false");
62                }
63                if (parameterName.equalsIgnoreCase("token")) {
64                    parameters.setProperty(parameterName.toLowerCase(), "Epass2000;" + EPASS_2000);
65                }
66                if (parameterName.equalsIgnoreCase("locale")) {
67                    System.out.println("Locale não recebido, definindo valor default.");
68                    parameters.setProperty(parameterName.toLowerCase(), "pt_BR");
69                }
70            }
71        }
72
73        //TODO: Pegar as preferências do arquivo de preferências se encontrado;
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
80    }
81
82    public String[][] getParameterInfo() {
83
84        String[][] info = {
85            {"debug", "boolean", "Habilita mensagens de debug"},
86            {"token", "string", "Lista de tokens suportados. Formato: nome1;caminho1,nome2;caminho2"},
87            {"locale", "string", "Locale do sistema"}
88        };
89
90        return info;
91    }
92
93    public String[][] getPreferencesInfo() {
94
95        String[][] info = {
96            {"preferedToken", "string", "Token preferencial do usuário. Formato: nome;caminho"}
97        };
98
99        return info;
100
101    }
102
103    public String getParameter(String key) {
104        return parameters.getProperty(key);
105    }
106
107    public String getPreference(String key) {
108        return getPreference(key);
109    }
110
111    //TODO: implementar PreferenceNotRegisteredException
112    public void setPreference(String key, String value) {
113
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        }
123
124        if (!exists) {
125//                       throws PreferenceNotRegisteredException();
126            System.out.println("Preferência não existe!");
127        }
128    }
129
130    Locale buildLocale(String localeCode) {
131
132        String[] localeItems = localeCode.split("_");
133        Locale locale;
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());
148        }
149
150        return locale;
151    }
152
153    public void addLanguageResource(String langResource) {
154        System.out.println("registrando recurso de linguagem " + langResource);
155        langResources.put(langResource, ResourceBundle.getBundle(langResource, currentLocale));
156    }
157
158    public String getLang(String langResource, String message) {
159
160        ResourceBundle resource = langResources.get(langResource);
161
162        String i18nText = new String("????");
163        try {
164            i18nText = resource.getString(message);
165        } catch (MissingResourceException e) {
166            e.printStackTrace();
167        }
168
169        return i18nText;
170
171        //return message;
172    }
173
174    // TODO: Not Implemented Yet
175    public boolean savePreferences() {
176        return false;
177    }
178}
Note: See TracBrowser for help on using the repository browser.