Commit 1078548fafa91ad8e10340deee765d99650c91b6
1 parent
2a12b812
Exists in
master
and in
5 other branches
Melhorando carga do módulo jni a pedido de usuário.
Showing
1 changed file
with
29 additions
and
7 deletions
Show diff stats
src/java/terminal.java
@@ -31,6 +31,9 @@ package pw3270; | @@ -31,6 +31,9 @@ package pw3270; | ||
31 | 31 | ||
32 | public class terminal | 32 | public class terminal |
33 | { | 33 | { |
34 | + // Is native library loaded? | ||
35 | + private static boolean loaded = false; | ||
36 | + | ||
34 | // lib3270's session handle | 37 | // lib3270's session handle |
35 | private long nativeHandle; | 38 | private long nativeHandle; |
36 | 39 | ||
@@ -228,6 +231,14 @@ public class terminal | @@ -228,6 +231,14 @@ public class terminal | ||
228 | public native int erase_eof(); | 231 | public native int erase_eof(); |
229 | 232 | ||
230 | 233 | ||
234 | + /** | ||
235 | + * Open print dialog. | ||
236 | + * <p> | ||
237 | + * Only valid if connected to a remote window | ||
238 | + * | ||
239 | + * @return reserved | ||
240 | + * | ||
241 | + */ | ||
231 | public native int print(); | 242 | public native int print(); |
232 | 243 | ||
233 | // Connect/Disconnect | 244 | // Connect/Disconnect |
@@ -260,12 +271,28 @@ public class terminal | @@ -260,12 +271,28 @@ public class terminal | ||
260 | public native int disconnect(); | 271 | public native int disconnect(); |
261 | 272 | ||
262 | /** | 273 | /** |
274 | + * Load native module. | ||
275 | + * | ||
276 | + */ | ||
277 | + private synchronized void load() { | ||
278 | + | ||
279 | + if(!loaded) { | ||
280 | + System.loadLibrary("jni3270"); | ||
281 | + loaded = true; | ||
282 | + } | ||
283 | + | ||
284 | + } | ||
285 | + | ||
286 | + /** | ||
263 | * Creates a tn3270 terminal without associating it | 287 | * Creates a tn3270 terminal without associating it |
264 | * with any pw3270 window. | 288 | * with any pw3270 window. |
265 | * | 289 | * |
266 | */ | 290 | */ |
267 | public terminal() { | 291 | public terminal() { |
292 | + | ||
293 | + load(); | ||
268 | init(); | 294 | init(); |
295 | + | ||
269 | } | 296 | } |
270 | 297 | ||
271 | /** | 298 | /** |
@@ -383,7 +410,7 @@ public class terminal | @@ -383,7 +410,7 @@ public class terminal | ||
383 | * @return Selected file name. | 410 | * @return Selected file name. |
384 | * | 411 | * |
385 | */ | 412 | */ |
386 | - public native String file_chooser_dialog(int action, String title, String extension, String filename); | 413 | + public native String file_chooser_dialog(int action, String title, String extension, String filename); |
387 | 414 | ||
388 | public native int set_copy(String text); | 415 | public native int set_copy(String text); |
389 | public native String get_copy(); | 416 | public native String get_copy(); |
@@ -399,7 +426,7 @@ public class terminal | @@ -399,7 +426,7 @@ public class terminal | ||
399 | /** | 426 | /** |
400 | * Get connection SSL state | 427 | * Get connection SSL state |
401 | * | 428 | * |
402 | - * @return State of SSL connection (0 = Inseguro, 1 = CA válido, 2 = CA inválido ou auto-assinado, 3 = Negociando, 4 = Indefinido) | 429 | + * @return State of SSL connection (0 = Unsafe, 1 = Valid CA, 2 = Invalid CA or self-signed, 3 = Negotiating, 4 = Undefined) |
403 | * | 430 | * |
404 | */ | 431 | */ |
405 | public native int get_secure(); | 432 | public native int get_secure(); |
@@ -419,9 +446,4 @@ public class terminal | @@ -419,9 +446,4 @@ public class terminal | ||
419 | deinit(); | 446 | deinit(); |
420 | } | 447 | } |
421 | 448 | ||
422 | - static | ||
423 | - { | ||
424 | - System.loadLibrary("jni3270"); | ||
425 | - } | ||
426 | - | ||
427 | }; | 449 | }; |