Commit 3d16be9a32cd7dc2959e8838633299e4c75be68d

Authored by perry.werneck@gmail.com
1 parent 6d7b2852

Incluindo novos métodos para limpeza de tela

src/include/pw3270/hllapi.h
@@ -101,7 +101,12 @@ extern "C" { @@ -101,7 +101,12 @@ extern "C" {
101 HLLAPI_API_CALL hllapi_pakey(WORD key); 101 HLLAPI_API_CALL hllapi_pakey(WORD key);
102 HLLAPI_API_CALL hllapi_setcursor(WORD key); 102 HLLAPI_API_CALL hllapi_setcursor(WORD key);
103 HLLAPI_API_CALL hllapi_getcursor(); 103 HLLAPI_API_CALL hllapi_getcursor();
  104 +
  105 + HLLAPI_API_CALL hllapi_erase(void);
104 HLLAPI_API_CALL hllapi_erase_eof(void); 106 HLLAPI_API_CALL hllapi_erase_eof(void);
  107 + HLLAPI_API_CALL hllapi_erase_eol(void);
  108 + HLLAPI_API_CALL hllapi_erase_input(void);
  109 +
105 HLLAPI_API_CALL hllapi_print(void); 110 HLLAPI_API_CALL hllapi_print(void);
106 111
107 HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc); 112 HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc);
src/java/actions.cc
@@ -72,6 +72,63 @@ JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eof(JNIEnv *env, jobject obj) @@ -72,6 +72,63 @@ JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eof(JNIEnv *env, jobject obj)
72 72
73 } 73 }
74 74
  75 +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase(JNIEnv *env, jobject obj) {
  76 +
  77 + jint rc = -1;
  78 +
  79 + try {
  80 +
  81 + rc = java::getHandle(env,obj)->erase();
  82 +
  83 + } catch(std::exception &e) {
  84 +
  85 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  86 + return -1;
  87 +
  88 + }
  89 +
  90 + return rc;
  91 +
  92 +}
  93 +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eol(JNIEnv *env, jobject obj) {
  94 +
  95 + jint rc = -1;
  96 +
  97 + try {
  98 +
  99 + rc = java::getHandle(env,obj)->erase_eol();
  100 +
  101 + } catch(std::exception &e) {
  102 +
  103 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  104 + return -1;
  105 +
  106 + }
  107 +
  108 + return rc;
  109 +
  110 +}
  111 +
  112 +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1input(JNIEnv *env, jobject obj) {
  113 +
  114 + jint rc = -1;
  115 +
  116 + try {
  117 +
  118 + rc = java::getHandle(env,obj)->erase_input();
  119 +
  120 + } catch(std::exception &e) {
  121 +
  122 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  123 + return -1;
  124 +
  125 + }
  126 +
  127 + return rc;
  128 +
  129 +}
  130 +
  131 +
75 JNIEXPORT jint JNICALL Java_pw3270_terminal_print(JNIEnv *env, jobject obj) { 132 JNIEXPORT jint JNICALL Java_pw3270_terminal_print(JNIEnv *env, jobject obj) {
76 133
77 jint rc = -1; 134 jint rc = -1;
src/java/terminal.java
@@ -201,6 +201,11 @@ public class terminal @@ -201,6 +201,11 @@ public class terminal
201 */ 201 */
202 public native int quit(); 202 public native int quit();
203 203
  204 + public native int erase();
  205 + public native int erase_eol();
  206 + public native int erase_input();
  207 +
  208 +
204 /** 209 /**
205 * Erase from cursor position until the end of the field. 210 * Erase from cursor position until the end of the field.
206 * 211 *
src/plugins/hllapi/calls.cc
@@ -290,12 +290,31 @@ @@ -290,12 +290,31 @@
290 return HLLAPI_STATUS_SUCCESS; 290 return HLLAPI_STATUS_SUCCESS;
291 } 291 }
292 292
  293 + HLLAPI_API_CALL hllapi_erase(void)
  294 + {
  295 + session::get_default()->erase();
  296 + return HLLAPI_STATUS_SUCCESS;
  297 + }
  298 +
293 HLLAPI_API_CALL hllapi_erase_eof(void) 299 HLLAPI_API_CALL hllapi_erase_eof(void)
294 { 300 {
295 session::get_default()->erase_eof(); 301 session::get_default()->erase_eof();
296 return HLLAPI_STATUS_SUCCESS; 302 return HLLAPI_STATUS_SUCCESS;
297 } 303 }
298 304
  305 + HLLAPI_API_CALL hllapi_erase_eol(void)
  306 + {
  307 + session::get_default()->erase_eol();
  308 + return HLLAPI_STATUS_SUCCESS;
  309 + }
  310 +
  311 + HLLAPI_API_CALL hllapi_erase_input(void)
  312 + {
  313 + session::get_default()->erase_input();
  314 + return HLLAPI_STATUS_SUCCESS;
  315 + }
  316 +
  317 +
299 HLLAPI_API_CALL hllapi_print(void) 318 HLLAPI_API_CALL hllapi_print(void)
300 { 319 {
301 return session::get_default()->print(); 320 return session::get_default()->print();
src/plugins/rx3270/rexx_methods.cc
@@ -185,6 +185,39 @@ RexxMethod1(int, rx3270_method_enter, CSELF, sessionPtr) @@ -185,6 +185,39 @@ RexxMethod1(int, rx3270_method_enter, CSELF, sessionPtr)
185 return hSession->enter(); 185 return hSession->enter();
186 } 186 }
187 187
  188 +RexxMethod1(int, rx3270_method_erase, CSELF, sessionPtr)
  189 +{
  190 + session *hSession = (session *) sessionPtr;
  191 + if(!hSession)
  192 + return -1;
  193 + return hSession->erase();
  194 +}
  195 +
  196 +RexxMethod1(int, rx3270_method_erase_eof, CSELF, sessionPtr)
  197 +{
  198 + session *hSession = (session *) sessionPtr;
  199 + if(!hSession)
  200 + return -1;
  201 + return hSession->erase_eof();
  202 +}
  203 +
  204 +RexxMethod1(int, rx3270_method_erase_eol, CSELF, sessionPtr)
  205 +{
  206 + session *hSession = (session *) sessionPtr;
  207 + if(!hSession)
  208 + return -1;
  209 + return hSession->erase_eol();
  210 +}
  211 +
  212 +RexxMethod1(int, rx3270_method_erase_input, CSELF, sessionPtr)
  213 +{
  214 + session *hSession = (session *) sessionPtr;
  215 + if(!hSession)
  216 + return -1;
  217 + return hSession->erase_input();
  218 +}
  219 +
  220 +
188 RexxMethod2(int, rx3270_method_pfkey, CSELF, sessionPtr, int, key) 221 RexxMethod2(int, rx3270_method_pfkey, CSELF, sessionPtr, int, key)
189 { 222 {
190 session *hSession = (session *) sessionPtr; 223 session *hSession = (session *) sessionPtr;
src/plugins/rx3270/rx3270.cls
@@ -59,6 +59,11 @@ @@ -59,6 +59,11 @@
59 ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey" 59 ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey"
60 ::METHOD PAKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey" 60 ::METHOD PAKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey"
61 61
  62 +::METHOD ERASE EXTERNAL "LIBRARY rx3270 rx3270_method_erase"
  63 +::METHOD ERASEEOF EXTERNAL "LIBRARY rx3270 rx3270_method_erase_eof"
  64 +::METHOD ERASEEOL EXTERNAL "LIBRARY rx3270 rx3270_method_erase_eol"
  65 +::METHOD ERASEINPUT EXTERNAL "LIBRARY rx3270 rx3270_method_erase_input"
  66 +
62 ::METHOD OPTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_option" 67 ::METHOD OPTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_option"
63 ::METHOD EVENTTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_event_trace" 68 ::METHOD EVENTTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_event_trace"
64 ::METHOD SCREENTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_screen_trace" 69 ::METHOD SCREENTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_screen_trace"
src/plugins/rx3270/rx3270.h
@@ -88,6 +88,11 @@ @@ -88,6 +88,11 @@
88 REXX_TYPED_ROUTINE_PROTOTYPE(ebc2asc); 88 REXX_TYPED_ROUTINE_PROTOTYPE(ebc2asc);
89 REXX_TYPED_ROUTINE_PROTOTYPE(asc2ebc); 89 REXX_TYPED_ROUTINE_PROTOTYPE(asc2ebc);
90 90
  91 + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270Erase);
  92 + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseEOF);
  93 + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseEOL);
  94 + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseInput);
  95 +
91 REXX_METHOD_PROTOTYPE(rx3270_method_version); 96 REXX_METHOD_PROTOTYPE(rx3270_method_version);
92 REXX_METHOD_PROTOTYPE(rx3270_method_revision); 97 REXX_METHOD_PROTOTYPE(rx3270_method_revision);
93 REXX_METHOD_PROTOTYPE(rx3270_method_init); 98 REXX_METHOD_PROTOTYPE(rx3270_method_init);
@@ -102,6 +107,10 @@ @@ -102,6 +107,10 @@
102 REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr); 107 REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr);
103 REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr); 108 REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr);
104 REXX_METHOD_PROTOTYPE(rx3270_method_enter); 109 REXX_METHOD_PROTOTYPE(rx3270_method_enter);
  110 + REXX_METHOD_PROTOTYPE(rx3270_method_erase);
  111 + REXX_METHOD_PROTOTYPE(rx3270_method_erase_eof);
  112 + REXX_METHOD_PROTOTYPE(rx3270_method_erase_eol);
  113 + REXX_METHOD_PROTOTYPE(rx3270_method_erase_input);
105 REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); 114 REXX_METHOD_PROTOTYPE(rx3270_method_pfkey);
106 REXX_METHOD_PROTOTYPE(rx3270_method_pakey); 115 REXX_METHOD_PROTOTYPE(rx3270_method_pakey);
107 REXX_METHOD_PROTOTYPE(rx3270_method_get_text); 116 REXX_METHOD_PROTOTYPE(rx3270_method_get_text);
src/plugins/rx3270/rxapimain.cc
@@ -113,6 +113,12 @@ RexxRoutineEntry rx3270_functions[] = @@ -113,6 +113,12 @@ RexxRoutineEntry rx3270_functions[] =
113 REXX_TYPED_ROUTINE(rx3270queryStringAt, rx3270queryStringAt), 113 REXX_TYPED_ROUTINE(rx3270queryStringAt, rx3270queryStringAt),
114 REXX_TYPED_ROUTINE(rx3270SetStringAt, rx3270SetStringAt), 114 REXX_TYPED_ROUTINE(rx3270SetStringAt, rx3270SetStringAt),
115 REXX_TYPED_ROUTINE(rx3270CloseApplication, rx3270CloseApplication), 115 REXX_TYPED_ROUTINE(rx3270CloseApplication, rx3270CloseApplication),
  116 +
  117 + REXX_TYPED_ROUTINE(rx3270Erase, rx3270Erase),
  118 + REXX_TYPED_ROUTINE(rx3270EraseEOF, rx3270EraseEOF),
  119 + REXX_TYPED_ROUTINE(rx3270EraseEOL, rx3270EraseEOL),
  120 + REXX_TYPED_ROUTINE(rx3270EraseInput, rx3270EraseInput),
  121 +
116 REXX_TYPED_ROUTINE(ebc2asc, ebc2asc), 122 REXX_TYPED_ROUTINE(ebc2asc, ebc2asc),
117 REXX_TYPED_ROUTINE(asc2ebc, asc2ebc), 123 REXX_TYPED_ROUTINE(asc2ebc, asc2ebc),
118 124
@@ -138,6 +144,10 @@ RexxMethodEntry rx3270_methods[] = @@ -138,6 +144,10 @@ RexxMethodEntry rx3270_methods[] =
138 REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ), 144 REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ),
139 REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ), 145 REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ),
140 REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), 146 REXX_METHOD(rx3270_method_enter, rx3270_method_enter ),
  147 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase ),
  148 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eof ),
  149 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eol ),
  150 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_input ),
141 REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), 151 REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ),
142 REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), 152 REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ),
143 REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), 153 REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ),
src/plugins/rx3270/typed_routines.cc
@@ -116,6 +116,26 @@ RexxRoutine0(int, rx3270SendENTERKey) @@ -116,6 +116,26 @@ RexxRoutine0(int, rx3270SendENTERKey)
116 return session::get_default()->enter(); 116 return session::get_default()->enter();
117 } 117 }
118 118
  119 +RexxRoutine0(int, rx3270Erase)
  120 +{
  121 + return session::get_default()->erase();
  122 +}
  123 +
  124 +RexxRoutine0(int, rx3270EraseEOF)
  125 +{
  126 + return session::get_default()->erase_eof();
  127 +}
  128 +
  129 +RexxRoutine0(int, rx3270EraseEOL)
  130 +{
  131 + return session::get_default()->erase_eol();
  132 +}
  133 +
  134 +RexxRoutine0(int, rx3270EraseInput)
  135 +{
  136 + return session::get_default()->erase_input();
  137 +}
  138 +
119 RexxRoutine1(int, rx3270SendPFKey, int, key) 139 RexxRoutine1(int, rx3270SendPFKey, int, key)
120 { 140 {
121 return session::get_default()->pfkey(key); 141 return session::get_default()->pfkey(key);