diff --git a/src/java/Makefile.in b/src/java/Makefile.in index 299a2bc..ef45420 100644 --- a/src/java/Makefile.in +++ b/src/java/Makefile.in @@ -25,7 +25,7 @@ # PACKAGE_NAME=@PACKAGE_NAME@ -SOURCES=main.cc info.cc connect.cc getset.cc +SOURCES=main.cc info.cc connect.cc getset.cc cursor.cc keyboard.cc #---[ Paths ]------------------------------------------------------------------ diff --git a/src/java/cursor.cc b/src/java/cursor.cc new file mode 100644 index 0000000..f31161f --- /dev/null +++ b/src/java/cursor.cc @@ -0,0 +1,92 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como cursor.cc e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + + #include "private.h" + +/*---[ Implement ]----------------------------------------------------------------------------------*/ + +JNIEXPORT jint JNICALL Java_pw3270_terminal_set_1cursor_1position(JNIEnv *env, jobject obj, jint row, jint col) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->set_cursor_position((int) row, (int) col); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + +} + +JNIEXPORT jint JNICALL Java_pw3270_terminal_set_1cursor_1addr(JNIEnv *env, jobject obj, jint addr) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->set_cursor_addr((int) addr); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + + +} + +JNIEXPORT jint JNICALL Java_pw3270_terminal_get_1cursor_1addr(JNIEnv *env, jobject obj) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->get_cursor_addr(); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + +} + + diff --git a/src/java/jni3270.cbp b/src/java/jni3270.cbp index 904636c..2464086 100644 --- a/src/java/jni3270.cbp +++ b/src/java/jni3270.cbp @@ -42,9 +42,11 @@ + + diff --git a/src/java/keyboard.cc b/src/java/keyboard.cc new file mode 100644 index 0000000..69d1981 --- /dev/null +++ b/src/java/keyboard.cc @@ -0,0 +1,90 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como keyboard.cc e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + + #include "private.h" + +/*---[ Implement ]----------------------------------------------------------------------------------*/ + +JNIEXPORT jint JNICALL Java_pw3270_terminal_enter(JNIEnv *env, jobject obj) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->enter(); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + +} + +JNIEXPORT jint JNICALL Java_pw3270_terminal_pfkey(JNIEnv *env, jobject obj, jint key) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->pfkey((int) key); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + +} + +JNIEXPORT jint JNICALL Java_pw3270_terminal_pakey(JNIEnv *env, jobject obj, jint key) { + + jint rc = -1; + + try { + + rc = getHandle(env,obj)->pakey((int) key); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + return -1; + + } + + return rc; + +} + diff --git a/src/java/terminal.java b/src/java/terminal.java index bb14b35..7c46ab9 100644 --- a/src/java/terminal.java +++ b/src/java/terminal.java @@ -51,6 +51,16 @@ public class terminal public native int cmp_string_at(int row, int col, String text); public native int input_string(String str); + // Cursor management + public native int set_cursor_position(int row, int col); + public native int set_cursor_addr(int addr); + public native int get_cursor_addr(); + + // Keyboard actions + public native int enter(); + public native int pfkey(int key); + public native int pakey(int key); + // Connect/Disconnect public native int connect(String host, int seconds); public native int disconnect(); -- libgit2 0.21.2