1 | import java.awt.Frame; |
---|
2 | |
---|
3 | import javax.swing.JApplet; |
---|
4 | import javax.swing.SwingUtilities; |
---|
5 | |
---|
6 | import netscape.javascript.JSObject; |
---|
7 | |
---|
8 | import br.gov.serpro.js.Javascript2AppletPassingData; |
---|
9 | import br.gov.serpro.js.ParamReaderThread; |
---|
10 | import br.gov.serpro.setup.Setup; |
---|
11 | |
---|
12 | //TODO: Logs de depuração e interface para usuário reportar problemas. |
---|
13 | |
---|
14 | public class ExpressoSmimeApplet extends JApplet { |
---|
15 | |
---|
16 | /** |
---|
17 | * Variáveis de instância |
---|
18 | */ |
---|
19 | private Setup setup; |
---|
20 | private Javascript2AppletPassingData dataReader; |
---|
21 | private Thread paramReaderThread; |
---|
22 | |
---|
23 | /** |
---|
24 | * Variáveis de classe |
---|
25 | */ |
---|
26 | private static final long serialVersionUID = 4797603392324194391L; |
---|
27 | |
---|
28 | @Override |
---|
29 | public void init() { |
---|
30 | super.init(); |
---|
31 | this.setSize(1, 1); |
---|
32 | this.setup = new Setup(this); |
---|
33 | this.setup.addLanguageResource("ExpressoCertMailMessages"); |
---|
34 | this.dataReader = new Javascript2AppletPassingData(); |
---|
35 | // this.paramReaderThread = new ParamReaderThread(JSObject.getWindow(this), dataReader, setup); |
---|
36 | this.paramReaderThread = new ParamReaderThread(JSObject.getWindow(this), dataReader, |
---|
37 | setup, (Frame) SwingUtilities.getAncestorOfClass(Frame.class, this)); |
---|
38 | this.paramReaderThread.start(); |
---|
39 | } |
---|
40 | |
---|
41 | @Override |
---|
42 | /** |
---|
43 | * Retorna Informações sobre os parâmetros que essa applet aceita |
---|
44 | * @author Mário César Kolling <mario.kolling@serpro.gov.br> |
---|
45 | * @return String[][] Uma matriz de Strings relacionando cada parâmetro à sua descrição |
---|
46 | */ |
---|
47 | public String[][] getParameterInfo() { |
---|
48 | return setup.getParameterInfo(); |
---|
49 | } |
---|
50 | |
---|
51 | @Override |
---|
52 | public void start() { |
---|
53 | super.start(); |
---|
54 | |
---|
55 | } |
---|
56 | |
---|
57 | @Override |
---|
58 | public void stop() { |
---|
59 | super.stop(); |
---|
60 | //dataReader.unlock(); |
---|
61 | |
---|
62 | if (this.paramReaderThread.isAlive()){ |
---|
63 | if (setup.getParameter("debug").equalsIgnoreCase("true")){ |
---|
64 | System.out.println("Interrompendo Applet paramReaderThread"); |
---|
65 | } |
---|
66 | this.paramReaderThread.interrupt(); |
---|
67 | } |
---|
68 | } |
---|
69 | |
---|
70 | /** |
---|
71 | * Método da Applet chamado pela página (js) ao assinar ou decifrar um e-mail |
---|
72 | * @param resultado Dados serializados passados pela Applet |
---|
73 | */ |
---|
74 | public void doButtonClickAction(String resultado){ |
---|
75 | dataReader.setData(resultado); |
---|
76 | dataReader.unlock(); |
---|
77 | //return "cert"; |
---|
78 | } |
---|
79 | |
---|
80 | public void doButtonClickAction(String operation, String id, String body){ |
---|
81 | dataReader.setData(operation, id, body); |
---|
82 | //dataReader.unlock(); |
---|
83 | } |
---|
84 | |
---|
85 | public void doButtonClickAction(String operation, String id, String body, String folder){ |
---|
86 | dataReader.setData(operation, id, body, folder); |
---|
87 | //dataReader.unlock(); |
---|
88 | } |
---|
89 | |
---|
90 | } |
---|