Commit 0a21608515296101b4669c0407a77c03c5414cdb

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

Android - Implementando container webkit para tela do terminal

android/res/layout/main.xml
... ... @@ -23,12 +23,6 @@
23 23 android:text="@string/connect" />
24 24  
25 25 </LinearLayout>
26   -
27   - <TextView
28   - android:id="@+id/msgbox"
29   - android:layout_width="fill_parent"
30   - android:layout_height="wrap_content"
31   - android:text="@string/hello" />
32 26  
33 27 <WebView
34 28 android:id="@+id/view"
... ...
android/res/raw/index.html 0 → 100644
... ... @@ -0,0 +1,41 @@
  1 +<!DOCTYPE html>
  2 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br" >
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
  5 + <meta name="author" content="Perry Werneck, perry@werneck.eti.br">
  6 + <link rel="stylesheet" type="text/css" href="file:theme.css" />
  7 + <title>pw3270</title>
  8 +</head>
  9 +
  10 +<body>
  11 +<div id="terminal">
  12 +
  13 + <span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">&nbsp;COEM7010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SISBB&nbsp;-&nbsp;Sistema&nbsp;de&nbsp;Informacoes&nbsp;Banco&nbsp;do&nbsp;Brasil&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07/2012<br />
  14 + &nbsp;&nbsp;C1103788</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:white;background-color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Correio&nbsp;Eletronico&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">15:29:03<br />
  15 + &nbsp;&nbsp;-----------------------&nbsp;Indicadores&nbsp;-&nbsp;Ler&nbsp;Matéria&nbsp;------------------&nbsp;Pag.:&nbsp;&nbsp;&nbsp;1<br />
  16 + &nbsp;&nbsp;Período:</span><span style="color:green;background-color:black"><input type="text" name="F0251" value="05072012" maxlength="8" class="IW008"></input></span><span style="color:deepSkyBlue;background-color:black">a</span><span style="color:green;background-color:black"><input type="text" name="F0262" value="06072012" maxlength="8" class="IW008"></input>&nbsp;</span><span style="color:white;background-color:black">(Alteravel)</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;Parte&nbsp;título:</span><span style="color:green;background-color:black"><input type="text" name="F0300" maxlength="20" class="IW020"></input><br />
  17 + &nbsp;<br />
  18 + </span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;Assunto:</span><span style="color:green;background-color:black"><input type="text" name="F0411" maxlength="40" class="IW040"></input></span><span style="color:deepSkyBlue;background-color:black">(+)<br />
  19 + &nbsp;&nbsp;Nr.&nbsp;&nbsp;Título&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data&nbsp;&nbsp;&nbsp;Hora<br />
  20 + &nbsp;&nbsp;----&nbsp;-------------------------------------------------------------&nbsp;-----------<br />
  21 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:white;background-color:black">Rentabilidade&nbsp;fundos&nbsp;BB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  22 + </span><span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;&nbsp;&nbsp;2</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:white;background-color:black">Rentabilidade&nbsp;comparada&nbsp;fundos&nbsp;BB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  23 + </span><span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;&nbsp;&nbsp;3</span><span style="color:green;background-color:black">&nbsp;</span><span style="color:white;background-color:black">Indices&nbsp;Economicos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  24 + </span><span style="color:green;background-color:black">&nbsp;</span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;ACF&nbsp;-&nbsp;ADIANTAMENTO&nbsp;DE&nbsp;CONTRATO&nbsp;DE&nbsp;FORNECIMENTO&nbsp;-&nbsp;06-07-2012&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  25 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;CDF&nbsp;-&nbsp;CRÉDITO&nbsp;DIRETO&nbsp;AO&nbsp;FORNECEDOR&nbsp;-&nbsp;06-07-2012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  26 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Taxas&nbsp;Pos&nbsp;Fixadas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  27 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Entes&nbsp;Publicos&nbsp;-&nbsp;Taxas&nbsp;Negociadas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  28 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Taxas&nbsp;não&nbsp;Negociadas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  29 + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Nivel&nbsp;2&nbsp;-&nbsp;Taxas&nbsp;Negociadas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  30 + &nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Nivel&nbsp;1&nbsp;-&nbsp;Taxas&nbsp;Negociadas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  31 + &nbsp;&nbsp;&nbsp;&nbsp;11&nbsp;Depositos&nbsp;a&nbsp;Prazo&nbsp;-&nbsp;Taxas&nbsp;não&nbsp;Negociadas&nbsp;-&nbsp;BB&nbsp;CDB&nbsp;DI&nbsp;PARCERIA&nbsp;06/07&nbsp;00:00<br />
  32 + &nbsp;&nbsp;&nbsp;&nbsp;12&nbsp;Inadimplemento&nbsp;-&nbsp;Comissão&nbsp;de&nbsp;Permanência&nbsp;-&nbsp;06/07/2012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;06/07&nbsp;00:00<br />
  33 + &nbsp;&nbsp;Informe&nbsp;número&nbsp;(Nr.):</span><span style="color:green;background-color:black"><input type="text" name="F1624" maxlength="4" class="IW004"></input><br />
  34 + </span><span style="color:deepSkyBlue;background-color:black">&nbsp;&nbsp;------------------------------------------------------------------------------<br />
  35 + </span><span style="color:green;background-color:black">&nbsp;</span><span style="color:white;background-color:black">&nbsp;F1&nbsp;Ajuda&nbsp;F9&nbsp;Origem<br />
  36 + </span><span style="color:green;background-color:black">&nbsp;<input type="button" name="PF03" value="F3" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Sai</span><span style="color:green;background-color:black"><input type="button" name="PF04" value="F4" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Seleciona(+)</span><span style="color:green;background-color:black"><input type="button" name="PF05" value="F5" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Encerra</span><span style="color:green;background-color:black"><input type="button" name="PF06" value="F6" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Imprime</span><span style="color:green;background-color:black"><input type="button" name="PF07" value="F7" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Pag.Ant</span><span style="color:green;background-color:black"><input type="button" name="PF08" value="F8" maxlength="2" class="IW002"></input></span><span style="color:deepSkyBlue;background-color:black">Prox.Pag<br />
  37 + </span>
  38 +
  39 +</div>
  40 +</body>
  41 +</html>
... ...
android/res/raw/jsmain.js 0 → 100644
android/res/raw/theme.css 0 → 100644
... ... @@ -0,0 +1,57 @@
  1 +
  2 +body
  3 +{
  4 + background-color: black;
  5 +}
  6 +
  7 +body, input
  8 +{
  9 + font-family: courier;
  10 + font-size: 20px;
  11 +}
  12 +
  13 +#terminal
  14 +{
  15 + width: 49em;
  16 +}
  17 +
  18 +input
  19 +{
  20 + border: none;
  21 + padding: 0px;
  22 + background-color: black;
  23 + color: #00ff00;
  24 + margin-left: 0.5em;
  25 + margin-right: 0.5em;
  26 +}
  27 +
  28 +input[type="text"]
  29 +{
  30 + border: 1px solid #004000
  31 +}
  32 +
  33 +.IW002
  34 +{
  35 + width: 1.5em;
  36 +}
  37 +
  38 +.IW008
  39 +{
  40 + width: 5em;
  41 +}
  42 +
  43 +.IW004
  44 +{
  45 + width: 2.5em;
  46 +}
  47 +
  48 +.IW020
  49 +{
  50 + width: 12em;
  51 +}
  52 +
  53 +.IW040
  54 +{
  55 + width: 24em;
  56 +}
  57 +
... ...
android/res/values/strings.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <resources>
3   -
4   - <string name="hello">Welcome to pw3270</string>
5 3 <string name="app_name">PW3270</string>
6 4 <string-array name="program_msg">
7 5 <item>LIB3270_MESSAGE_NONE</item>
... ... @@ -20,7 +18,7 @@
20 18 <item>X Resolvendo</item>
21 19 <item>X Conectando</item>
22 20 </string-array>
23   - <string name="connect">Connect</string>
  21 + <string name="connect">Connect</string>
24 22  
25 23  
26 24 </resources>
27 25 \ No newline at end of file
... ...
android/src/br/com/bb/pw3270/PW3270Activity.java
... ... @@ -2,37 +2,46 @@ package br.com.bb.pw3270;
2 2  
3 3 import android.app.Activity;
4 4 import android.os.Bundle;
5   -import android.widget.TextView;
6   -import android.widget.Button;
7   -import android.widget.EditText;
  5 +// import android.widget.TextView;
  6 +// import android.widget.Button;
  7 +// import android.widget.EditText;
8 8 import android.util.Log;
9   -import android.view.View;
  9 +// import android.view.View;
10 10 import android.content.res.*;
11 11 import android.app.AlertDialog;
12 12 import android.webkit.WebView;
  13 +import android.webkit.WebViewClient;
  14 +import android.webkit.WebResourceResponse;
  15 +import android.webkit.WebChromeClient;
  16 +import java.io.InputStream;
  17 +
13 18 // import android.app.Dialog;
14 19  
15   -public class PW3270Activity extends Activity implements View.OnClickListener
  20 +public class PW3270Activity extends Activity
16 21 {
  22 + private Resources res;
  23 + private WebView view;
  24 + private terminal host;
  25 + private static final String TAG = "pw3270";
  26 +
17 27 private class terminal extends lib3270
18 28 {
19   - private static final String TAG = "pw3270";
20 29  
21   - TextView msgbox;
22 30 Activity Main;
23 31  
24   - terminal(TextView msgbox, Activity Main)
  32 + terminal(Activity Main)
25 33 {
26   - this.msgbox = msgbox;
27 34 this.Main = Main;
28 35 }
29 36  
30 37 protected void updateProgramMessage(int id)
31 38 {
  39 + /*
32 40 try
33 41 {
34   - this.msgbox.setText(message[id]);
  42 + // this.msgbox.setText(message[id]);
35 43 } catch(Exception e) { this.msgbox.setText("Estado inesperado"); }
  44 + */
36 45 }
37 46  
38 47 protected void popupMessage(int type, String title, String text, String info)
... ... @@ -51,29 +60,85 @@ public class PW3270Activity extends Activity implements View.OnClickListener
51 60 try
52 61 {
53 62 String text = new String(getText(),getEncoding());
54   - Log.i(TAG,text);
  63 +// Log.i(TAG,text);
55 64 } catch(Exception e) { }
56 65 }
57 66  
58 67  
59 68 };
60   -
  69 +
  70 + /*
61 71 private terminal host;
62 72 private EditText uri;
63 73 private Resources res;
64 74 private String[] message;
65 75 private WebView view;
66 76  
  77 +*/
  78 +
  79 +
67 80 /** Called when the activity is first created. */
68 81 @Override
69 82 public void onCreate(Bundle savedInstanceState)
70 83 {
71 84 super.onCreate(savedInstanceState);
72   - setContentView(R.layout.main);
73   -
74   - Log.i("pw3270","Activity started");
  85 +
  86 + res = getResources();
  87 +
  88 + // Reference:
  89 + // http://developer.android.com/reference/android/webkit/WebView.html
  90 + view = new WebView(this);
  91 +
  92 + view.setWebChromeClient(new WebChromeClient());
  93 +
  94 + view.setWebViewClient(new WebViewClient()
  95 + {
  96 +
  97 + @Override
  98 + public WebResourceResponse shouldInterceptRequest(WebView view, String url)
  99 + {
  100 + int id = R.raw.index;
  101 + String mime = "text/html";
  102 +
  103 + Log.i(TAG,"Loading [" + url + "]");
  104 +
  105 + if(url.equalsIgnoreCase("file://jsmain.js"))
  106 + {
  107 + id = R.raw.jsmain;
  108 + }
  109 + else if(url.equalsIgnoreCase("file://theme.css"))
  110 + {
  111 + mime = "text/css";
  112 + id = R.raw.theme;
  113 + }
75 114  
76   - res = getResources();
  115 +
  116 + // http://developer.android.com/reference/android/webkit/WebResourceResponse.html
  117 + return new WebResourceResponse(mime,"utf-8",getResources().openRawResource(id));
  118 + }
  119 +
  120 + });
  121 +
  122 + view.getSettings().setJavaScriptEnabled(true);
  123 +
  124 + setContentView(view);
  125 + view.loadUrl("file://index.html");
  126 +
  127 + // setContentView(R.layout.main);
  128 +
  129 +// Log.i("pw3270","Activity started");
  130 +
  131 +
  132 +// view = (WebView) findViewById(R.id.view);
  133 +
  134 +// String summary = "<html><body>Welcome to <b>pw3270</b>.</body></html>" ;
  135 +
  136 + // res.getString(R.string.hello);
  137 +
  138 + // ;
  139 + // view.loadData("<html><body>Welcome to <b>pw3270</b>.</body></html>", "text/html", null);
  140 +
  141 + /*
77 142 message = res.getStringArray(R.array.program_msg);
78 143 uri = (EditText) findViewById(R.id.hostname);
79 144  
... ... @@ -83,14 +148,16 @@ public class PW3270Activity extends Activity implements View.OnClickListener
83 148  
84 149 host = new terminal((TextView) findViewById(R.id.msgbox),this);
85 150  
86   -
  151 + */
87 152 }
88 153  
  154 + /*
89 155 public void onClick(View v)
90 156 {
91 157 // Perform action on click
92 158 // host.setHost(uri.getText().toString());
93 159 host.connect();
94 160 }
  161 + */
95 162  
96 163 }
97 164 \ No newline at end of file
... ...