| By Thienne M Johnson,
on 09-12-2007 15:42
|
/* Java para Dispositivos Móveis - Desenvolvendo aplicações com J2ME por Thienne M. Johnson Novatec Editora LTDa ISBN: 978-85-7522-143-3 */
package principal;
import conexao.GetPostRegistros; import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
import java.util.Vector; import javax.microedition.rms.*;
import rms.RmsVenda;
public class VendaRemota extends MIDlet implements CommandListener, Runnable { private Display display; private List telaInicial, telaClientes, telaProdutos, telaPedidos; private Alert alerta; private Command sair, sobre, voltar, salvar, novo, apagar; private Form adicionarCliente, adicionarProduto, adicionarPedido, telaInformacoes; private TextField tfCliente, tfProduto, tfQuantidade, tfPreco; private Vector vecClientes, vecProdutos, vecPedidos = null; boolean deletedFlags[] = null; private ChoiceGroup clientesCG, produtosCG; boolean gravacaoOK = false; //RMS private RmsVenda rmsPedidos, rmsClientes, rmsProdutos; private RecordStore RSPedidos, RSClientes, RSProdutos; private String BDClientes = "BancoClientes"; private String BDPedidos = "BancoPedidos"; private String BDProdutos = "BancoProdutos";
//Conexao com Servlet private GetPostRegistros conClientes; private Thread t = null; public VendaRemota(){ display = Display.getDisplay(this); sair = new Command("Sair", Command.EXIT, 0); voltar = new Command ("Voltar", Command.BACK, 0); salvar = new Command( "Salvar", Command.OK, 1); apagar = new Command("Apagar", Command.OK, 1); novo = new Command("Novo", Command.OK, 1); sobre = new Command ("Sobre", Command.HELP,1); telaInicial = new List( "Sistema de Venda Remota", Choice.IMPLICIT ); telaInicial.append("Clientes",null); telaInicial.append("Produtos",null); telaInicial.append("Pedidos",null); telaInicial.append("Transmitir dados",null); telaInicial.append("Zerar Registros",null); telaInicial.append("Estatísticas",null); telaInicial.addCommand(sair); telaInicial.addCommand(sobre); telaInicial.setCommandListener(this); telaClientes = new List("Cadastro de Clientes", Choice.MULTIPLE); telaClientes.addCommand(voltar); telaClientes.addCommand(novo); telaClientes.addCommand(apagar); telaClientes.setCommandListener(this);
telaProdutos = new List("Cadastro de Produtos", Choice.MULTIPLE); telaProdutos.addCommand(voltar); telaProdutos.addCommand(novo); telaProdutos.addCommand(apagar); telaProdutos.setCommandListener(this);
telaPedidos = new List("Cadastro de Pedidos", Choice.MULTIPLE); telaPedidos.addCommand(voltar); telaPedidos.addCommand(novo); telaPedidos.addCommand(apagar); telaPedidos.setCommandListener(this);
adicionarCliente = new Form ("Adicione novo cliente"); tfCliente = new TextField ("Nome do Cliente","",20, TextField.ANY); adicionarCliente.append(tfCliente); adicionarCliente.addCommand(salvar); adicionarCliente.addCommand(voltar); adicionarCliente.setCommandListener(this);
adicionarProduto = new Form ("Adicione novo produto"); tfProduto = new TextField ("Nome do Produto","",20, TextField.ANY); tfPreco = new TextField ("Preco Unitario","",7, TextField.ANY); adicionarProduto.append(tfProduto); adicionarProduto.append(tfPreco); adicionarProduto.addCommand(salvar); adicionarProduto.addCommand(voltar); adicionarProduto.setCommandListener(this); adicionarPedido = new Form ("Adicione novo pedido"); String[] strings = new String[] { "" }; clientesCG = new ChoiceGroup("Clientes cadastrados", ChoiceGroup.POPUP, strings, null); produtosCG = new ChoiceGroup("Produtos cadastrados", ChoiceGroup.POPUP, strings, null); tfQuantidade = new TextField("Quantidade","",3, TextField.NUMERIC); adicionarPedido.append(clientesCG); adicionarPedido.append(produtosCG); adicionarPedido.append(tfQuantidade); adicionarPedido.addCommand(salvar); adicionarPedido.addCommand(voltar); adicionarPedido.setCommandListener(this); rmsPedidos = new RmsVenda(); rmsClientes = new RmsVenda(); rmsProdutos = new RmsVenda(); telaInformacoes = new Form ("Estatísticas do sistema"); telaInformacoes.addCommand(voltar); telaInformacoes.setCommandListener(this); }
public void startApp() { display.setCurrent(telaInicial); RSPedidos = rmsPedidos.abrirRecordStore(BDPedidos); RSClientes = rmsClientes.abrirRecordStore(BDClientes); RSProdutos = rmsProdutos.abrirRecordStore(BDProdutos); vecClientes = rmsClientes.listarRegistros(RSClientes); vecProdutos = rmsProdutos.listarRegistros(RSProdutos); vecPedidos = rmsPedidos.listarRegistros(RSPedidos); }
public void gerenciarClientes(){ vecClientes = rmsClientes.listarRegistros(RSClientes); gerarTela(vecClientes, telaClientes); display.setCurrent(telaClientes); }
public void gerenciarProdutos(){ vecProdutos = rmsProdutos.listarRegistros(RSProdutos); gerarTela(vecProdutos, telaProdutos); display.setCurrent(telaProdutos); }
public void gerenciarPedidos(){ vecPedidos = rmsPedidos.listarRegistros(RSPedidos); gerarTela(vecPedidos, telaPedidos); display.setCurrent(telaPedidos); }
private void gerarTela(Vector vecNomes, List tela){ tela.deleteAll(); for (int i = 0; i < vecNomes.size(); i++) { if (tela.getTitle()=="Cadastro de Clientes"){ Clientes item = (Clientes)vecNomes.elementAt(i); String nome = item.getNome(); tela.append(nome, null); }else if (tela.getTitle()=="Cadastro de Produtos"){ Produtos item = (Produtos)vecNomes.elementAt(i); String nome = item.getNome(); float preco = item.getPreco(); tela.append(nome+" R$"+preco, null); }else{ Pedidos item = (Pedidos)vecNomes.elementAt(i); String cliente = item.getCliente(); String produto = item.getProduto(); int quantidade = item.getQuantidade(); tela.append(cliente+" "+produto+" "+quantidade, null); } } testarComandoApagar(tela); display.setCurrent(tela); }
private void testarComandoApagar(List tela){ if ((tela.getString(0)).regionMatches(true, 8, "não cadastrados", 0, 15)){ Ticker ticker = new Ticker ("Nenhum registro encontrado neste cadastro"); tela.setTicker(ticker); tela.removeCommand(apagar); }else if ((tela.getString(0)).regionMatches(true, 9, "não cadastrados", 0, 15)){ Ticker ticker = new Ticker ("Nenhum registro encontrado neste cadastro"); tela.setTicker(ticker); tela.removeCommand(apagar); }else{ tela.addCommand(apagar); tela.setTicker(null); } } private void testarComandoSalvar(Displayable d){ if (d == adicionarCliente){ if (tfCliente.size() != 0){ gravacaoOK = true; } }else if (d == adicionarProduto){ if ((tfProduto.size() != 0) && (tfPreco.size() != 0)){ gravacaoOK = true; } }else if (d == adicionarPedido){ if ((clientesCG.getString(0)== "Clientes não cadastrados") || ((produtosCG.getString(0))=="Produtos não cadastrados") || (tfQuantidade.size()==0)) { gravacaoOK = false; }else gravacaoOK=true; } }
public void pauseApp() { } public void destroyApp(boolean unconditional) { rmsPedidos.closeRecordStore(RSPedidos); rmsClientes.closeRecordStore(RSClientes); rmsProdutos.closeRecordStore(RSProdutos); notifyDestroyed(); }
private void zerarRegistros(){ rmsClientes.zerarRegistros(RSClientes, "BancoClientes"); rmsProdutos.zerarRegistros(RSProdutos, "BancoProdutos"); rmsPedidos.zerarRegistros(RSPedidos, "BancoPedidos"); RSPedidos = rmsPedidos.abrirRecordStore(BDPedidos); RSClientes = rmsClientes.abrirRecordStore(BDClientes); RSProdutos = rmsProdutos.abrirRecordStore(BDProdutos); vecProdutos.removeAllElements(); vecClientes.removeAllElements(); vecPedidos.removeAllElements(); vecClientes = rmsClientes.listarRegistros(RSClientes); vecProdutos = rmsProdutos.listarRegistros(RSProdutos); vecPedidos = rmsPedidos.listarRegistros(RSPedidos); mostrarAlerta("Registros zerados", "Bancos de dados apagados"); display.setCurrent(alerta, telaInicial); }
private void mostrarInformacoes(RecordStore rs){ try{ String nomeRs = rs.getName(); String numero = Integer.toString(rs.getNumRecords()); String tamanho = Integer.toString(rs.getSize()); String disponivel = Integer.toString(rs.getSizeAvailable()); StringItem nomeSI = new StringItem ("Nome do RecordStore", nomeRs); StringItem tamanhoOc = new StringItem ("Tamanho ocupado (em bytes)", tamanho.toString()); StringItem numeroReg = new StringItem ("Número de registros existentes", numero); StringItem tamanhoDis = new StringItem ("Tamanho disponível (em bytes)", disponivel); telaInformacoes.append(nomeSI); telaInformacoes.append(tamanhoOc); telaInformacoes.append(numeroReg); telaInformacoes.append(tamanhoDis); } catch (Exception exc) {} }
private void mostrarAlerta(String tipoAlerta, String msg){ alerta = new Alert(tipoAlerta, msg, null, AlertType.WARNING); alerta.setTimeout(Alert.FOREVER); }
public void commandAction(Command c, Displayable d){ if (c == List.SELECT_COMMAND){ String selection = telaInicial.getString(telaInicial.getSelectedIndex()); if (selection == "Clientes"){ gerenciarClientes(); }else if(selection == "Produtos"){ gerenciarProdutos(); }else if(selection == "Pedidos"){ gerenciarPedidos(); }else if(selection == "Zerar Registros"){ zerarRegistros(); }else if(selection == "Estatísticas"){ mostrarInformacoes(RSClientes); mostrarInformacoes(RSProdutos); mostrarInformacoes(RSPedidos); display.setCurrent(telaInformacoes); }else if (selection == "Transmitir dados"){ connectThreadClientes(); } } else if (c==sair) { destroyApp(true); }else if (c == sobre) { String m1 = ("Livro Desenvolvendo para Dispositivos Móveis\n"); String m2 = ("Autora Thienne M Johnson\n"); String m3 = ("Editora Novatec\n"); mostrarAlerta("Sobre",m1+m2+m3); display.setCurrent(alerta, telaInicial); }else if (c==novo){ if (d == telaClientes){ tfCliente.setString(""); display.setCurrent(adicionarCliente); }else if (d == telaProdutos){ tfProduto.setString(""); tfPreco.setString(""); display.setCurrent(adicionarProduto); }else if (d == telaPedidos){ tfQuantidade.setString(""); clientesCG.deleteAll(); produtosCG.deleteAll(); for (int i = 0; i < vecClientes.size(); i++) { Clientes item = (Clientes)vecClientes.elementAt(i); String nome = item.getNome(); clientesCG.append(nome, null); } for (int i = 0; i < vecProdutos.size(); i++) { Produtos item = (Produtos)vecProdutos.elementAt(i); String nome = item.getNome(); produtosCG.append(nome, null); } display.setCurrent(adicionarPedido); } }else if (c==salvar) { testarComandoSalvar(display.getCurrent()); if (gravacaoOK == false){ mostrarAlerta("Aviso", "Registro vazio não será salvo\n"+"Tente novamente"); display.setCurrent(alerta, display.getCurrent()); }else { if (d == adicionarCliente){ rmsClientes.adicionarRegistroClientes(RSClientes, tfCliente.getString()); vecClientes = rmsClientes.listarRegistros(RSClientes); tfCliente.setString(""); }else if (d == adicionarProduto){ rmsProdutos.adicionarRegistroProdutos(RSProdutos, tfProduto.getString(), Float.parseFloat(tfPreco.getString())); vecProdutos = rmsProdutos.listarRegistros(RSProdutos); tfProduto.setString(""); tfPreco.setString(""); }else if (d == adicionarPedido){ rmsPedidos.adicionarRegistroPedido(RSPedidos, clientesCG.getString(clientesCG.getSelectedIndex()), produtosCG.getString(produtosCG.getSelectedIndex()), Integer.parseInt(tfQuantidade.getString())); vecPedidos = rmsPedidos.listarRegistros(RSPedidos); tfQuantidade.setString(""); } gravacaoOK=false; display.setCurrent(telaInicial); } }else if (c==apagar){ if (d == telaClientes){ deletedFlags = new boolean[telaClientes.size()]; telaClientes.getSelectedFlags(deletedFlags); rmsClientes.apagarRegistros(RSClientes, vecClientes, deletedFlags); vecClientes = rmsClientes.listarRegistros(RSClientes); }else if (d == telaProdutos){ deletedFlags = new boolean[telaProdutos.size()]; telaProdutos.getSelectedFlags(deletedFlags); rmsProdutos.apagarRegistros(RSProdutos, vecProdutos, deletedFlags); vecProdutos = rmsProdutos.listarRegistros(RSProdutos); }else if (d == telaPedidos){ deletedFlags = new boolean[telaPedidos.size()]; telaPedidos.getSelectedFlags(deletedFlags); rmsPedidos.apagarRegistros(RSPedidos, vecPedidos, deletedFlags); vecPedidos = rmsPedidos.listarRegistros(RSPedidos); } display.setCurrent(telaInicial); }else if (c==voltar){ if (d == adicionarPedido){ display.setCurrent(telaPedidos); }else{ display.setCurrent(telaInicial); } } } private void connectThreadClientes(){ t = new Thread(this); t.start(); }
public void run(){ try{ conectarEnviarPedidos(); }catch (Exception e){} }
private void conectarEnviarPedidos(){ String url_servidor ="http://localhost:8080/VendaRemotaServlet/RecebePedidos"; conClientes = new GetPostRegistros(url_servidor); String mensagem; try{ mensagem = conClientes.enviarRegistros(vecPedidos); if (mensagem == null){ mensagem = "Erro de comunicação com o servlet"; } mostrarAlerta("Resposta do Servlet", mensagem); display.setCurrent(alerta, telaInicial); }catch (Exception e){} display.setCurrent(telaInicial); } }
|
|
|