Commit 1078548fafa91ad8e10340deee765d99650c91b6

Authored by Perry Werneck
1 parent 2a12b812

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 };