1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package wjhk.jupload2;
22
23 import java.lang.reflect.InvocationTargetException;
24
25 import javax.swing.JApplet;
26 import javax.swing.JOptionPane;
27 import javax.swing.SwingUtilities;
28
29 import wjhk.jupload2.context.JUploadContext;
30 import wjhk.jupload2.context.JUploadContextApplet;
31 import wjhk.jupload2.context.JavascriptHandler;
32 import wjhk.jupload2.exception.JUploadException;
33 import wjhk.jupload2.policies.UploadPolicy;
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public class JUploadApplet extends JApplet {
52
53
54 private static final long serialVersionUID = -3207851532114846776L;
55
56
57
58
59 transient JUploadContext juploadContext = null;
60
61
62
63
64 @Override
65 public void init() {
66 class JUploadAppletInitializer implements Runnable {
67 JUploadApplet applet;
68
69 JUploadAppletInitializer(JUploadApplet applet) {
70 this.applet = applet;
71 }
72
73 public void run() {
74 juploadContext = new JUploadContextApplet(applet);
75 }
76 }
77
78 try {
79 SwingUtilities.invokeAndWait(new JUploadAppletInitializer(this));
80 } catch (InterruptedException e) {
81
82
83 e.printStackTrace();
84 } catch (InvocationTargetException e) {
85
86
87 e.printStackTrace();
88 }
89
90 if (this.juploadContext == null) {
91 JOptionPane
92 .showMessageDialog(
93 null,
94 "An error occured during applet initialization. Please check the java console output",
95 "Alert", JOptionPane.ERROR_MESSAGE);
96 } else {
97
98 try {
99 this.juploadContext.getUploadPolicy().displayInfo(
100 "JUploadApplet is now initialized.");
101 } catch (JUploadException e) {
102
103 System.out.println("JUploadApplet is now initialized.");
104 }
105 }
106 }
107
108
109
110
111 @Override
112 public void start() {
113 if (this.juploadContext == null) {
114 String msg = "An error occured during applet initialization. Please check the java console output (juploadContext is null in applet.start())";
115 JOptionPane.showMessageDialog(null, msg, "Alert",
116 JOptionPane.ERROR_MESSAGE);
117 throw new java.lang.IllegalStateException(msg);
118 } else {
119 try {
120 this.juploadContext.getUploadPolicy().start();
121 this.juploadContext.getUploadPolicy().displayInfo(
122 "JUploadApplet is now started.");
123 } catch (JUploadException e) {
124
125 System.out.println("JUploadApplet is now started.");
126 }
127 this.validate();
128 }
129 }
130
131
132
133
134 @Override
135 public void stop() {
136 try {
137 this.juploadContext.getUploadPolicy().displayInfo(
138 "JUploadApplet is now stopped.");
139 } catch (JUploadException e) {
140
141 System.out.println("JUploadApplet is now stopped.");
142 }
143 }
144
145
146
147
148 @Override
149 public void destroy() {
150 class JUploadAppletDestroyer implements Runnable {
151 JUploadApplet applet;
152
153 JUploadAppletDestroyer(JUploadApplet applet) {
154 this.applet = applet;
155 }
156
157 public void run() {
158 applet.juploadContext.runUnload();
159 applet.getContentPane().removeAll();
160 }
161 }
162 try {
163 this.juploadContext.getUploadPolicy().displayInfo(
164 "JUploadApplet is being destroyed.");
165 } catch (JUploadException e1) {
166
167 System.out.println("JUploadApplet is now destroyed.");
168 }
169
170
171
172 try {
173 SwingUtilities.invokeAndWait(new JUploadAppletDestroyer(this));
174 } catch (Exception e) {
175 }
176 }
177
178
179
180
181
182
183
184
185
186
187
188
189
190 public void setProperty(String prop, String value) {
191 this.juploadContext.setProperty(prop, value);
192 }
193
194
195
196
197
198
199
200 public String startUpload() {
201 return this.juploadContext.startUpload();
202 }
203
204
205
206
207 public String[][] getParameterInfo() {
208
209 return null;
210 }
211
212
213
214
215 public String getAppletInfo() {
216 return "JUpload applet, available at http://jupload.sourceforge.net";
217 }
218
219 }