D:/Meus Documentos/NetBeansProjects/NOVO/Monitoramento/src/Monitoramento/GraficoTFA.java 1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 package Monitoramento; 6 7 import java.rmi.RemoteException; 8 import java.util.Random; 9 import javax.microedition.lcdui.Canvas; 10 import javax.microedition.lcdui.Command; 11 import javax.microedition.lcdui.Displayable; 12 import javax.microedition.lcdui.Font; 13 import javax.microedition.lcdui.Form; 14 import javax.microedition.lcdui.Graphics; 15 import javax.microedition.lcdui.Image; 16 import javax.microedition.lcdui.Item; 17 import javax.microedition.lcdui.StringItem; 18 import org.beanizer.j2me.charts.LineChart; 19 import org.beanizer.j2me.charts.ChartItem; 20 import dbconnect.DBConnect; 21 import dbconnect.DBConnect_Stub; 22 23 /** 24 * 25 * @author Fabio 26 */ 27 public class GraficoTFA extends Canvas implements Runnable { 28 private boolean parar; 29 30 Image image; 31 String TextoTecla; private Font fonte; 32 33 Monitoramento midlet; //private Object g; 34 35 final LineChart graficoTFA = new LineChart(""); private int[] dimensoesTela = new int[3]; //0 largura | 1 altura 36 37 private int valorMinimo; private int valorMaximo; 38 private int valorAtual; 39 40 private int diferencaTela = 0; public Integer[] dados; 41 public String nome; 42 43 //public String texto; 44 public Integer[] array1; public int[] array1a; 45 public Integer valor1 = new Integer(2); 46 public Integer valor2 = new Integer(3); 47 48 //public DBConnect stub; 49 Random rand = new Random(); public char conectar; 50 51 52 /*private int[] vetorTemporario = new int[10];*/ 53 public GraficoTFA() { 54 55 array1 = new Integer[1]; 56 57 parar = false; 58 setFullScreenMode(true); 59 System.out.println("entrou na funçao desenho"); 60 61 dimensoesTela[0] = getWidth(); 62 dimensoesTela[1] = getHeight(); 63 //Corrige os erros de espaçamento entre os elementos no canvas com telas maiores 64 65 if (dimensoesTela[1] > 320) { 66 diferencaTela = 10; 67 } 68 69 System.out.println("Largura: " + dimensoesTela[0]); 70 System.out.println("Altura: " + dimensoesTela[1]); 71 72 valorMaximo = 220; 73 valorMinimo = 220; 74 valorAtual = 220; 75 //fonte = DirectUtils.getFont(face, style, fontHeight); 76 77 graficoTFA.setFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL); 78 graficoTFA.setDrawAxis(true); //graficoTFA.setPreferredSize(getWidth(), (getHeight() - 6)); 79 80 graficoTFA.setPreferredSize(dimensoesTela[0], dimensoesTela[1] - 70 diferencaTela); 81 graficoTFA.setMargins(0, 0, 0, 35); //T,R,B,L 82 graficoTFA.setShadowColor(20, 20, 20); 83 //graficoTFA.setShadowColor(255, 0, 0); 84 graficoTFA.setLabelEvery(19); 85 1.1 de 5 graficoTFA.setTickEvery(19); 2009.11.24 20:37:27 D:/Meus Documentos/NetBeansProjects/NOVO/Monitoramento/src/Monitoramento/GraficoTFA.java 85 graficoTFA.setTickEvery(19); 86 graficoTFA.setColor(40, 40, 200); 87 graficoTFA.showShadow(false); //graficoTFA.setFill(true); 88 89 graficoTFA.resetData(); 90 91 graficoTFA.addElement("", 210, 0, 0, 160); 92 graficoTFA.addElement("", 220, 0, 0, 160); 93 graficoTFA.addElement("", 215, 0, 0, 160); 94 graficoTFA.addElement("", 219, 0, 0, 160); 95 graficoTFA.addElement("", 213, 0, 0, 160); 96 graficoTFA.addElement("", 221, 0, 0, 160); 97 graficoTFA.addElement("", 220, 0, 0, 160); 98 graficoTFA.addElement("", 219, 0, 0, 160); 99 graficoTFA.addElement("", 218, 0, 0, 160); 100 graficoTFA.addElement("", 220, 0, 0, 160); 101 graficoTFA.addElement("", 221, 0, 0, 160); 102 graficoTFA.addElement("", 220, 0, 0, 160); 103 graficoTFA.addElement("", 221, 0, 0, 160); 104 graficoTFA.addElement("", 219, 0, 0, 160); 105 graficoTFA.addElement("", 219, 0, 0, 160); 106 graficoTFA.addElement("", 210, 0, 0, 160); 107 graficoTFA.addElement("", 213, 0, 0, 160); 108 graficoTFA.addElement("", 217, 0, 0, 160); 109 graficoTFA.addElement("", 220, 0, 0, 160); 110 graficoTFA.addElement("", 219, 0, 0, 160); 111 graficoTFA.addElement("", 220, 0, 0, 160); 112 graficoTFA.addElement("", 215, 0, 0, 160); 113 graficoTFA.addElement("", 219, 0, 0, 160); 114 graficoTFA.addElement("", 213, 0, 0, 160); 115 graficoTFA.addElement("", 221, 0, 0, 160); 116 graficoTFA.addElement("", 220, 0, 0, 160); 117 graficoTFA.addElement("", 219, 0, 0, 160); 118 graficoTFA.addElement("", 218, 0, 0, 160); 119 graficoTFA.addElement("", 220, 0, 0, 160); 120 graficoTFA.addElement("", 221, 0, 0, 160); 121 graficoTFA.addElement("", 220, 0, 0, 160); 122 graficoTFA.addElement("", 221, 0, 0, 160); 123 graficoTFA.addElement("", 219, 0, 0, 160); 124 graficoTFA.addElement("", 220, 0, 0, 160); 125 graficoTFA.addElement("", 215, 0, 0, 160); 126 graficoTFA.addElement("", 219, 0, 0, 160); 127 graficoTFA.addElement("", 213, 0, 0, 160); 128 graficoTFA.addElement("", 221, 0, 0, 160); 129 graficoTFA.addElement("", 220, 0, 0, 160); 130 graficoTFA.addElement("", 219, 0, 0, 160); 131 graficoTFA.addElement("", 218, 0, 0, 160); 132 graficoTFA.addElement("", 220, 0, 0, 160); 133 graficoTFA.addElement("", 221, 0, 0, 160); 134 graficoTFA.addElement("", 220, 0, 0, 160); 135 graficoTFA.addElement("", 221, 0, 0, 160); 136 graficoTFA.addElement("", 219, 0, 0, 160); 137 graficoTFA.addElement("", 218, 0, 0, 160); 138 graficoTFA.addElement("", 220, 0, 0, 160); 139 graficoTFA.addElement("", 221, 0, 0, 160); 140 graficoTFA.addElement("", 220, 0, 0, 160); 141 graficoTFA.setMaxValue(valorMaximo + 10); 142 graficoTFA.setMinValue(valorMinimo); 143 144 image = Image.createImage(dimensoesTela[0], dimensoesTela[1] - 70 diferencaTela); 145 Graphics gg = image.getGraphics(); 146 graficoTFA.drawChart(gg, dimensoesTela[0], dimensoesTela[1] - 70 - diferencaTela); 147 /*vetorTemporario[0] = 200; 148 149 vetorTemporario[1] = 210; 150 vetorTemporario[2] = 212; 151 vetorTemporario[3] = 215; 152 vetorTemporario[4] = 220; 153 vetorTemporario[5] = 222; 154 vetorTemporario[6] = 225; 155 vetorTemporario[7] = 229; 156 vetorTemporario[8] = 230; 157 vetorTemporario[9] = 205;*/ 158 159 Runnable run = new Runnable() { 160 int t = 0; 161 162 public void run() { 163 164 System.out.println("entrou no run"); 165 //STUBs 166 167 DBConnect stub = null; try { 168 169 2.1 de 5 stub = new DBConnect_Stub(); 2009.11.24 20:37:27 D:/Meus Documentos/NetBeansProjects/NOVO/Monitoramento/src/Monitoramento/GraficoTFA.java 169 stub = new DBConnect_Stub(); 170 } catch (Exception e) { 171 System.out.println("Não conseguiu criar o DBConnect_Stub()"); 172 } 173 //Conexão com o servidor 174 175 try { 176 String con = stub.connect("GAIC", "db2inst1", "gaic02"); 177 System.out.println("Conexão stub.connect: " + con); 178 } catch (Exception e) { 179 System.out.println("Erro stub.connect: " + e.getMessage()); 180 } while (parar == false) { 181 182 //for (int x = 1; x < 100; x++) { 183 184 t = t + 1; 185 System.out.println("entrou no while"); 186 187 try { 188 //System.out.println("entrou no try " + t); 189 190 //dados = stub.executa("tensaoa"); 191 //array1 = stub.teste("tensaoa"); 192 nome = stub.nome("Faccin"); 193 System.out.println("entrou no try " + t); 194 } catch (Exception e) { 195 System.out.println("entrou no catch " + t); 196 } 197 198 //array1a[0] = array1[0].intValue(); 199 200 201 202 System.out.println("Nome---: " + nome); 203 //System.out.println("array1a[0]: "+array1a[0]); 204 //System.out.println("array1a: "+array1a); 205 //System.out.println("array1: "+array1); 206 //System.out.println("array1[0]: "+array1[0]); 207 //System.out.println("texto[0]: "+texto[0]); 208 //System.out.println("texto.toString: "+texto.toString()); 209 //System.out.println(" "+texto); 210 //System.out.println(" "+texto); 211 212 try { 213 214 Thread.sleep(500); 215 } catch (InterruptedException ex) { 216 ex.printStackTrace(); 217 } 218 219 valorAtual = array1a[0]; //valorAtual = rand.nextInt(231); 220 221 //valorAtual = dados[0].intValue(); 222 //valorAtual = vetorTemporario[valorAtual]; 223 if (valorAtual > valorMaximo) { 224 225 valorMaximo = valorAtual; 226 } 227 if (valorAtual < valorMinimo) { 228 229 valorMinimo = valorAtual; 230 } 231 232 graficoTFA.popElement(); 233 graficoTFA.addElement("", valorAtual, 0, 0, 160); 234 /*if (t == 10) { 235 236 t=0; 237 graficoTFA.addElement("14:22", valorAtual, 0, 0, 160); 238 } else { 239 graficoTFA.addElement("", valorAtual, 0, 0, 160); 240 }*/ 241 242 graficoTFA.setMinValue(valorMinimo); 243 graficoTFA.setMaxValue(valorMaximo + 15); 244 graficoTFA.refresh(); 245 246 247 248 System.gc(); 249 image = null; 250 251 image = Image.createImage(dimensoesTela[0], dimensoesTela[1] - 70 diferencaTela); 252 Graphics gg = image.getGraphics(); 253 3.1 de 5 graficoTFA.drawChart(gg, dimensoesTela[0], dimensoesTela[1] - 70 2009.11.24 20:37:27 D:/Meus Documentos/NetBeansProjects/NOVO/Monitoramento/src/Monitoramento/GraficoTFA.java 253 graficoTFA.drawChart(gg, dimensoesTela[0], dimensoesTela[1] - 70 diferencaTela); 254 repaint(); //System.out.println(t); 255 256 //} 257 } 258 } 259 }; 260 (new Thread(run)).start(); 261 262 } 263 // stop Thread 264 265 public void parar() { 266 System.out.println("entrou na funçao stop"); 267 parar = true; 268 } 269 public void run() { 270 271 System.out.println("entrou na funçao run"); /*while (run){ 272 273 try { 274 } catch (Exception e) { //InterruptedException 275 276 e.printStackTrace(); 277 } 278 }*/ 279 } 280 //DESENHA OS ELEMENTOS NA TELA 281 282 protected void paint(Graphics g) { //Fundo Branco 283 284 g.setColor(255, 255, 255); 285 g.fillRect(0, 0, dimensoesTela[0], dimensoesTela[1]); 286 //Título Preto 287 288 fonte = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM); 289 g.setFont(fonte); 290 g.setColor(0, 0, 0); 291 g.drawString("Tensão Fase A", dimensoesTela[0] / 2, 1, Graphics.TOP | Graphics.HCENTER); 292 //Linha abaixo do Título 293 294 g.drawLine(dimensoesTela[0] - (dimensoesTela[0] - 15), 21 + (diferencaTela / 2), dimensoesTela[0] - 15, 21 + (diferencaTela / 2)); 295 //Valores Mínimo e Máximo (subtítulos) Azul 296 297 fonte = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL); 298 g.setFont(fonte); 299 g.setColor(0, 0, 255); 300 g.drawString("Subtensão", dimensoesTela[0] - (dimensoesTela[0] - 60), 21 + diferencaTela, Graphics.TOP | Graphics.HCENTER); 301 g.drawString("Sobretensão", -1 * (60 - dimensoesTela[0]), 21 + diferencaTela, Graphics.TOP | Graphics.HCENTER); //g.drawString("Subtensão", dimensoesTela[0]-(dimensoesTela[0]-40), 21, 302 Graphics.TOP | Graphics.HCENTER); 303 //g.drawString("Atual", dimensoesTela[0]/2, 21, Graphics.TOP | Graphics.HCENTER); 304 //g.drawString("Sobretensão", -1*(40-dimensoesTela[0]), 21, Graphics.TOP | Graphics.HCENTER); 305 //Valores Mínimo e Máximo (números) Vermelho 306 307 g.setFont(fonte); 308 g.setColor(255, 0, 0); 309 g.drawString(String.valueOf(valorMinimo), dimensoesTela[0] - (dimensoesTela[0] 60), 38 + diferencaTela, Graphics.TOP | Graphics.HCENTER); 310 g.drawString(String.valueOf(valorMaximo), -1 * (60 - dimensoesTela[0]), 38 + diferencaTela, Graphics.TOP | Graphics.HCENTER); 311 //Linha abaixo dos valores 312 313 g.setColor(0, 0, 0); 314 g.drawLine(dimensoesTela[0] - (dimensoesTela[0] - 15), 58 + diferencaTela, dimensoesTela[0] - 15, 58 + diferencaTela); 315 //Imagem do Gráfico 316 317 g.drawImage(image, 0, 60 + diferencaTela, Graphics.LEFT | Graphics.TOP); 318 //Valor Atual - String + Valor 319 320 g.setFont(fonte); 321 g.setColor(0, 0, 160); 322 g.drawString("Tensão Atual: " + String.valueOf(valorAtual) + " V", dimensoesTela[0] / 2, dimensoesTela[1] - 2, Graphics.BOTTOM | Graphics.HCENTER); 323 324 } 325 protected void keyPressed(int keyCode) { 326 327 4.1 de 5 2009.11.24 20:37:27 D:/Meus Documentos/NetBeansProjects/NOVO/Monitoramento/src/Monitoramento/GraficoTFA.java 327 328 System.out.println(getKeyName(keyCode)); 329 330 TextoTecla = getKeyName(keyCode); 331 332 System.out.println(TextoTecla); 333 334 if (TextoTecla.equals("SOFT2")) { 335 336 parar(); //midlet.display(midlet.iniciarFormPrincipal()); 337 338 } 339 } 340 } 5.1 de 5 2009.11.24 20:37:27