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 31  
32 32 public class terminal
33 33 {
  34 + // Is native library loaded?
  35 + private static boolean loaded = false;
  36 +
34 37 // lib3270's session handle
35 38 private long nativeHandle;
36 39  
... ... @@ -228,6 +231,14 @@ public class terminal
228 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 242 public native int print();
232 243  
233 244 // Connect/Disconnect
... ... @@ -260,12 +271,28 @@ public class terminal
260 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 287 * Creates a tn3270 terminal without associating it
264 288 * with any pw3270 window.
265 289 *
266 290 */
267 291 public terminal() {
  292 +
  293 + load();
268 294 init();
  295 +
269 296 }
270 297  
271 298 /**
... ... @@ -383,7 +410,7 @@ public class terminal
383 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 415 public native int set_copy(String text);
389 416 public native String get_copy();
... ... @@ -399,7 +426,7 @@ public class terminal
399 426 /**
400 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 432 public native int get_secure();
... ... @@ -419,9 +446,4 @@ public class terminal
419 446 deinit();
420 447 }
421 448  
422   - static
423   - {
424   - System.loadLibrary("jni3270");
425   - }
426   -
427 449 };
... ...