Commit abc6da8d6601066bbf678c284a8a66eddb4c81aa

Authored by perry.werneck@gmail.com
1 parent d0bf243c

Implementando tratamento de tela em java

src/include/pw3270/class.h
@@ -157,7 +157,7 @@ @@ -157,7 +157,7 @@
157 string asc2ebc(string &str); 157 string asc2ebc(string &str);
158 string ebc2asc(string &str); 158 string ebc2asc(string &str);
159 159
160 - // Get/Set/Test with charset translation 160 + // Get/Set/Text with charset translation
161 string get_string(int baddr, size_t len); 161 string get_string(int baddr, size_t len);
162 string get_string_at(int row, int col, size_t sz); 162 string get_string_at(int row, int col, size_t sz);
163 int set_string_at(int row, int col, const char *str); 163 int set_string_at(int row, int col, const char *str);
src/java/Makefile.in
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 # 25 #
26 26
27 PACKAGE_NAME=@PACKAGE_NAME@ 27 PACKAGE_NAME=@PACKAGE_NAME@
28 -SOURCES=main.cc info.cc 28 +SOURCES=main.cc info.cc connect.cc getset.cc
29 29
30 #---[ Paths ]------------------------------------------------------------------ 30 #---[ Paths ]------------------------------------------------------------------
31 31
@@ -77,7 +77,7 @@ CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include @@ -77,7 +77,7 @@ CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include
77 $(OBJDBG)/%.o: %.cc Makefile private.h jni3270.h 77 $(OBJDBG)/%.o: %.cc Makefile private.h jni3270.h
78 @echo " CC `basename $@`" 78 @echo " CC `basename $@`"
79 @mkdir -p `dirname $@` 79 @mkdir -p `dirname $@`
80 - $(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< 80 + @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $<
81 81
82 $(OBJRLS)/%.o: %.cc Makefile private.h jni3270.h 82 $(OBJRLS)/%.o: %.cc Makefile private.h jni3270.h
83 @echo " CC `basename $@`" 83 @echo " CC `basename $@`"
src/java/connect.cc 0 → 100644
@@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como info.cc e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include "private.h"
  31 +
  32 +/*---[ Implement ]----------------------------------------------------------------------------------*/
  33 +
  34 +JNIEXPORT jint JNICALL Java_pw3270_terminal_connect(JNIEnv *env, jobject obj, jstring j_host, jint seconds) {
  35 +
  36 + const char * host = env->GetStringUTFChars(j_host, 0);
  37 + jint rc = -1;
  38 +
  39 + try {
  40 +
  41 + rc = getHandle(env,obj)->connect(host,(time_t) seconds);
  42 +
  43 + } catch(std::exception &e) {
  44 +
  45 + env->ReleaseStringUTFChars( j_host, host);
  46 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  47 + return -1;
  48 +
  49 + }
  50 +
  51 + env->ReleaseStringUTFChars( j_host, host);
  52 + return rc;
  53 +
  54 +}
  55 +
  56 +JNIEXPORT jint JNICALL Java_pw3270_terminal_disconnect(JNIEnv *env, jobject obj) {
  57 +
  58 + try {
  59 +
  60 + return (jint) getHandle(env,obj)->disconnect();
  61 +
  62 + } catch(std::exception &e) {
  63 +
  64 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  65 +
  66 + }
  67 +
  68 + return -1;
  69 +
  70 +}
src/java/getset.cc 0 → 100644
@@ -0,0 +1,139 @@ @@ -0,0 +1,139 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como info.cc e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include "private.h"
  31 +
  32 +/*---[ Implement ]----------------------------------------------------------------------------------*/
  33 +
  34 +
  35 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string(JNIEnv *env, jobject obj, jint baddr, jint len) {
  36 +
  37 + string str;
  38 +
  39 + try {
  40 +
  41 + str = getHandle(env,obj)->get_string((int) baddr, (int) len);
  42 +
  43 +
  44 + } catch(std::exception &e) {
  45 +
  46 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  47 +
  48 + }
  49 +
  50 + return env->NewStringUTF(str.c_str());
  51 +
  52 +}
  53 +
  54 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string_1at(JNIEnv *env, jobject obj, jint row, jint col, jint sz) {
  55 +
  56 + string str;
  57 +
  58 + try {
  59 +
  60 + str = getHandle(env,obj)->get_string_at((int) row, (int) col, (int) sz);
  61 +
  62 +
  63 + } catch(std::exception &e) {
  64 +
  65 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  66 +
  67 + }
  68 +
  69 + return env->NewStringUTF(str.c_str());
  70 +
  71 +}
  72 +
  73 +JNIEXPORT jint JNICALL Java_pw3270_terminal_set_1string_1at(JNIEnv *env, jobject obj, jint row, jint col, jstring j_str) {
  74 +
  75 + const char * str = env->GetStringUTFChars(j_str, 0);
  76 + jint rc = -1;
  77 +
  78 + try {
  79 +
  80 + rc = getHandle(env,obj)->set_string_at((int) row, (int) col, str);
  81 +
  82 + } catch(std::exception &e) {
  83 +
  84 + env->ReleaseStringUTFChars( j_str, str);
  85 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  86 + return -1;
  87 +
  88 + }
  89 +
  90 + env->ReleaseStringUTFChars( j_str, str);
  91 + return rc;
  92 +
  93 +
  94 +}
  95 +
  96 +JNIEXPORT jint JNICALL Java_pw3270_terminal_cmp_1string_1at(JNIEnv *env, jobject obj, jint row, jint col, jstring j_str) {
  97 +
  98 + const char * str = env->GetStringUTFChars(j_str, 0);
  99 + jint rc = -1;
  100 +
  101 + try {
  102 +
  103 + rc = getHandle(env,obj)->cmp_string_at((int) row, (int) col, str);
  104 +
  105 + } catch(std::exception &e) {
  106 +
  107 + env->ReleaseStringUTFChars( j_str, str);
  108 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  109 + return -1;
  110 +
  111 + }
  112 +
  113 + env->ReleaseStringUTFChars( j_str, str);
  114 + return rc;
  115 +
  116 +}
  117 +
  118 +JNIEXPORT jint JNICALL Java_pw3270_terminal_input_1string(JNIEnv *env, jobject obj, jstring j_str) {
  119 +
  120 + const char * str = env->GetStringUTFChars(j_str, 0);
  121 + jint rc = -1;
  122 +
  123 + try {
  124 +
  125 + rc = getHandle(env,obj)->input_string(str);
  126 +
  127 + } catch(std::exception &e) {
  128 +
  129 + env->ReleaseStringUTFChars( j_str, str);
  130 + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what());
  131 + return -1;
  132 +
  133 + }
  134 +
  135 + env->ReleaseStringUTFChars( j_str, str);
  136 + return rc;
  137 +
  138 +}
  139 +
src/java/info.cc
@@ -45,3 +45,10 @@ JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1revision(JNIEnv *env, jobjec @@ -45,3 +45,10 @@ JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1revision(JNIEnv *env, jobjec
45 return env->NewStringUTF(s->get_revision().c_str()); 45 return env->NewStringUTF(s->get_revision().c_str());
46 46
47 } 47 }
  48 +
  49 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1encoding(JNIEnv *env, jobject obj) {
  50 +
  51 + session *s = getHandle(env,obj);
  52 + return env->NewStringUTF(s->get_encoding());
  53 +
  54 +}
src/java/jni3270.cbp
@@ -41,6 +41,8 @@ @@ -41,6 +41,8 @@
41 <Unit filename="../../configure.ac" /> 41 <Unit filename="../../configure.ac" />
42 <Unit filename="../include/pw3270/class.h" /> 42 <Unit filename="../include/pw3270/class.h" />
43 <Unit filename="Makefile.in" /> 43 <Unit filename="Makefile.in" />
  44 + <Unit filename="connect.cc" />
  45 + <Unit filename="getset.cc" />
44 <Unit filename="info.cc" /> 46 <Unit filename="info.cc" />
45 <Unit filename="jni3270.h" /> 47 <Unit filename="jni3270.h" />
46 <Unit filename="main.cc" /> 48 <Unit filename="main.cc" />
src/java/terminal.java
@@ -42,7 +42,18 @@ public class terminal @@ -42,7 +42,18 @@ public class terminal
42 // Get library/extension info 42 // Get library/extension info
43 public native String get_version(); 43 public native String get_version();
44 public native String get_revision(); 44 public native String get_revision();
  45 + public native String get_encoding();
45 46
  47 + // Get/Set/Text with charset translation
  48 + public native String get_string(int baddr, int len);
  49 + public native String get_string_at(int row, int col, int sz);
  50 + public native int set_string_at(int row, int col, String str);
  51 + public native int cmp_string_at(int row, int col, String text);
  52 + public native int input_string(String str);
  53 +
  54 + // Connect/Disconnect
  55 + public native int connect(String host, int seconds);
  56 + public native int disconnect();
46 57
47 public terminal() { 58 public terminal() {
48 init(); 59 init();
src/java/testprogram.java
@@ -36,8 +36,11 @@ public class testprogram @@ -36,8 +36,11 @@ public class testprogram
36 try 36 try
37 { 37 {
38 System.err.println("Begin"); 38 System.err.println("Begin");
  39 +
39 terminal host = new terminal(); 40 terminal host = new terminal();
40 - System.err.println("pw3270 version " + host.get_version() + " revision " + host.get_revision()); 41 + System.err.println("pw3270 version " + host.get_version() + " revision " + host.get_revision() + " encoding " + host.get_encoding());
  42 +
  43 +
41 System.err.println("End"); 44 System.err.println("End");
42 } 45 }
43 catch( Exception e ) 46 catch( Exception e )