Commit 6058ed375c612ef6636023d45953635d506b3916

Authored by Perry Werneck
1 parent a3fa3e57

Melhorando funcionamento da classe java.

src/classlib/session.cc
@@ -216,7 +216,7 @@ @@ -216,7 +216,7 @@
216 iterate(false); 216 iterate(false);
217 while(time(0) < end) 217 while(time(0) < end)
218 { 218 {
219 - trace("Aguardar %d segundos",(int) (end - time(0))); 219 + trace("Aguardar %d segundos por \"%s\" @%d,%d (%s)",(int) (end - time(0)),key,row,col,get_text_at(row,col,strlen(key)).c_str());
220 220
221 int rc = wait_for_ready(end - time(0)); 221 int rc = wait_for_ready(end - time(0));
222 if(rc) { 222 if(rc) {
@@ -231,6 +231,8 @@ @@ -231,6 +231,8 @@
231 231
232 } 232 }
233 233
  234 + trace("Tela:\n%s\n", ((string) *this).c_str());
  235 +
234 return ETIMEDOUT; 236 return ETIMEDOUT;
235 } 237 }
236 238
src/include/pw3270/class.h
@@ -173,7 +173,7 @@ @@ -173,7 +173,7 @@
173 virtual int iterate(bool wait = true) = 0; 173 virtual int iterate(bool wait = true) = 0;
174 174
175 // Get/Set/Test without charset translation 175 // Get/Set/Test without charset translation
176 - virtual string get_text(int baddr, size_t len) = 0; 176 + virtual string get_text(int baddr = 0, size_t len = 1) = 0;
177 virtual string get_text_at(int row, int col, size_t sz) = 0; 177 virtual string get_text_at(int row, int col, size_t sz) = 0;
178 virtual int set_text_at(int row, int col, const char *str) = 0; 178 virtual int set_text_at(int row, int col, const char *str) = 0;
179 virtual int cmp_text_at(int row, int col, const char *text) = 0; 179 virtual int cmp_text_at(int row, int col, const char *text) = 0;
@@ -194,6 +194,10 @@ @@ -194,6 +194,10 @@
194 int wait_for_string_at(int row, int col, const char *key, int timeout); 194 int wait_for_string_at(int row, int col, const char *key, int timeout);
195 int input_string(const char *str); 195 int input_string(const char *str);
196 196
  197 + inline operator string() {
  198 + return get_string();
  199 + }
  200 +
197 // Cursor management 201 // Cursor management
198 virtual int set_cursor_position(int row, int col) = 0; 202 virtual int set_cursor_position(int row, int col) = 0;
199 virtual int set_cursor_addr(int addr) = 0; 203 virtual int set_cursor_addr(int addr) = 0;
src/java/getset.cc
@@ -35,6 +35,24 @@ @@ -35,6 +35,24 @@
35 using namespace std; 35 using namespace std;
36 using namespace PW3270_NAMESPACE; 36 using namespace PW3270_NAMESPACE;
37 37
  38 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_toString(JNIEnv *env, jobject obj) {
  39 +
  40 + string str;
  41 +
  42 + try {
  43 +
  44 + str = java::getHandle(env,obj)->get_string();
  45 +
  46 + } catch(std::exception &e) {
  47 +
  48 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  49 +
  50 + }
  51 +
  52 + return env->NewStringUTF(str.c_str());
  53 +
  54 +}
  55 +
38 JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string(JNIEnv *env, jobject obj, jint baddr, jint len) { 56 JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string(JNIEnv *env, jobject obj, jint baddr, jint len) {
39 57
40 string str; 58 string str;
src/java/terminal.java
@@ -434,6 +434,12 @@ public class terminal @@ -434,6 +434,12 @@ public class terminal
434 public native void log(String msg); 434 public native void log(String msg);
435 435
436 /** 436 /**
  437 + * Get Screen contents.
  438 + *
  439 + */
  440 + public native String toString();
  441 +
  442 + /**
437 * Get connection SSL state 443 * Get connection SSL state
438 * 444 *
439 * @return State of SSL connection (0 = Unsafe, 1 = Valid CA, 2 = Invalid CA or self-signed, 3 = Negotiating, 4 = Undefined) 445 * @return State of SSL connection (0 = Unsafe, 1 = Valid CA, 2 = Invalid CA or self-signed, 3 = Negotiating, 4 = Undefined)