Commit 6058ed375c612ef6636023d45953635d506b3916

Authored by Perry Werneck
1 parent a3fa3e57

Melhorando funcionamento da classe java.

src/classlib/session.cc
... ... @@ -216,7 +216,7 @@
216 216 iterate(false);
217 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 221 int rc = wait_for_ready(end - time(0));
222 222 if(rc) {
... ... @@ -231,6 +231,8 @@
231 231  
232 232 }
233 233  
  234 + trace("Tela:\n%s\n", ((string) *this).c_str());
  235 +
234 236 return ETIMEDOUT;
235 237 }
236 238  
... ...
src/include/pw3270/class.h
... ... @@ -173,7 +173,7 @@
173 173 virtual int iterate(bool wait = true) = 0;
174 174  
175 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 177 virtual string get_text_at(int row, int col, size_t sz) = 0;
178 178 virtual int set_text_at(int row, int col, const char *str) = 0;
179 179 virtual int cmp_text_at(int row, int col, const char *text) = 0;
... ... @@ -194,6 +194,10 @@
194 194 int wait_for_string_at(int row, int col, const char *key, int timeout);
195 195 int input_string(const char *str);
196 196  
  197 + inline operator string() {
  198 + return get_string();
  199 + }
  200 +
197 201 // Cursor management
198 202 virtual int set_cursor_position(int row, int col) = 0;
199 203 virtual int set_cursor_addr(int addr) = 0;
... ...
src/java/getset.cc
... ... @@ -35,6 +35,24 @@
35 35 using namespace std;
36 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 56 JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string(JNIEnv *env, jobject obj, jint baddr, jint len) {
39 57  
40 58 string str;
... ...
src/java/terminal.java
... ... @@ -434,6 +434,12 @@ public class terminal
434 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 443 * Get connection SSL state
438 444 *
439 445 * @return State of SSL connection (0 = Unsafe, 1 = Valid CA, 2 = Invalid CA or self-signed, 3 = Negotiating, 4 = Undefined)
... ...