Pessoal eu tenho um metodo de busca usando o floggy e tenho uma lista q uso o LWUIT para as minhas views, sendo oq ta acontencendo q eu nao estou conseguindo pegar o item desta lista, toda vez q tento pegar ele sempre mim traz o primeiro da lista. PORFAVOR HELP!!! :oops:
AGRADECO TODOS VCS DESDE JA
AKI EU CHAMO MEU METODO DE CONSULTAR
publicvoidactionPerformed(ActionEvente){if(e.getSource()==voltar){OpenWindow.showMenu();}elseif(e.getSource()==consultarDadosAberta){//TENTO PEGAR O ID AKIintid=list.getSelectedIndex();OspegarOs=newOs();try{pegarOs=os.consultarDadoAberta(id);System.out.println(pegarOs);}catch(FloggyExceptionex){ex.printStackTrace();}OpenWindow.showDetalheAberta();}
MEU FORM ONDE EU TRAGO A LISTA
publicFormCreateForm(){try{osMobileIcon=Image.createImage("/osMobilePequeno.png");osMobileBackground=Image.createImage("/backgroundCompleto.png");}catch(Exceptione){System.out.println("Erro ao adicionar a imagem : "+this.getClass());}//formListar = new Form("Listagem OS Aberta");this.setLayout(newBorderLayout());this.setBgImage(osMobileBackground);this.addCommandListener(this);//formListar.getTitleStyle().setBgColor(0xff8040);LabelImagemLabel=newLabel(osMobileIcon);this.addComponent(BorderLayout.NORTH,ImagemLabel);this.addCommand(voltar);this.addCommand(consultarDadosAberta);this.addCommand(deletarDadoEscolhido);ListModelmodel=newDefaultListModel(os.listarOSEmAberta());list.setModel(model);this.addComponent(BorderLayout.CENTER,list);returnthis;}
MEU METODO DE CONSULTAR ONDE EU PASSO ID COMO PARAMENTRO
//consultar um dado e detalharpublicOsconsultarDadoAberta(intid)throwsFloggyException{Ososbjeto=newOs();try{PersistableManager.getInstance().load(osbjeto,id);System.out.println(osbjeto.toString());}catch(FloggyExceptione){}returnosbjeto;}
Acredito que o método LOAD do floggy não é o mais apropriado pra vc nesse momento. Se não me engano esse método recupera um objeto através do seu id (id criado pelo RMS e não id do seu objeto, nem o índice que ele se encontra na lista).
Caso você esteja populando sua lista LWUIT com o Objeto, basta vc recuperar o objeto através do método list.getSelectedObject(), pegar o seu id (ou qualquer outro atributo que vc deseje utilizar para recuperá-lo do banco).
Caso você esteja populando sua lista LWUIT apenas com o nome (ou outro atributo desse objeto Os), basta vc recuperá-lo da lista e repassar ao método consultarDadoAberta().
Você também deverá utilizar o método find() de PersistableManager para recuperar os objetos do RMS. Com ele vc pode utilizar um filtro para pegar apenas a informação que precisa, ou se você achar mais fácil, pode recuperar todos os objetos e compará-los em um loop.
Bom, acho q é isso.
Se eu me enganei, por favor alguém me corrija.
Abraço.
maxdavis
Mas no caso eu coloco uma lista, como mostra meu metodo abaixo. Daria pra fazer dessa forma?
//metodo de listar OS Em AbertapublicVectorlistarOSEmAberta(){ObjectSetose=null;//Gera um filtroEmAbertaFilterfiltro=newEmAbertaFilter();VectorlistarOSEmAberta=newVector();try{ose=PersistableManager.getInstance().find(Os.class,filtro,null);for(inti=0;i<ose.size();i++){OsobjetoOs=(Os)ose.get(i);//obtem as instancias do bancolistarOSEmAberta.addElement(objetoOs.getCod()+" - "+objetoOs.getDescricao());}}catch(FloggyExceptionex){listarOSEmAberta.addElement("Erro list record");}returnlistarOSEmAberta;}
maxdavis
Valeu rafdutra! Foi melhor trabalhar com o Objeto, eu tb tava erado na hora de listar e adcionar os meus itens no meu List. SEGUE MEU CODIGO ABAIXO
Minha Classe Form
publicclassListar_OsAbertaextendsFormimplementsActionListener{//private Form formListar;privateImageosMobileIcon;privateImageosMobileBackground;VectorlistaAberta;Listlist;ListModelmodel;Osos=newOs();FormformLista;FormformDetalhe;privateCommandvoltar=newCommand("Voltar",1);privateCommanddetalharListaOSAberta=newCommand("Detalhar",0);privateCommandatenderOsAberta=newCommand("Atender OS",0);publicListar_OsAberta(){super("Listagem OS Aberta");model=newDefaultListModel();list=newList(model);//NAO ESQUECER DE TIRAR ESSE METODO QUANDO FAEZR INTEGRACAO COM O XMLOs.gerarDadosParaTesteAberta();Os.gerarDadosParaTesteAberta1();listaAberta=os.listarOSEmAberta();for(inti=0;i<listaAberta.size();i++){OsobjetoOs=(Os)listaAberta.elementAt(i);//obtem as instancias do bancomodel.addItem(objetoOs.getCod()+" - "+objetoOs.getDescricao());}}publicFormCreateForm(){formLista=newForm();try{osMobileIcon=Image.createImage("/osMobilePequeno.png");osMobileBackground=Image.createImage("/backgroundCompleto.png");}catch(Exceptione){System.out.println("Erro ao adicionar a imagem : "+this.getClass());}//formListar = new Form("Listagem OS Aberta");formLista.setLayout(newBorderLayout());formLista.setBgImage(osMobileBackground);formLista.addCommandListener(this);//formListar.getTitleStyle().setBgColor(0xff8040);LabelImagemLabel=newLabel(osMobileIcon);formLista.addComponent(BorderLayout.NORTH,ImagemLabel);formLista.addCommand(voltar);formLista.addCommand(detalharListaOSAberta);formLista.addComponent(BorderLayout.CENTER,list);returnformLista;}publicFormCreateFormDetalhe(){formDetalhe=newForm();try{osMobileIcon=Image.createImage("/osMobilePequeno.png");osMobileBackground=Image.createImage("/backgroundCompleto.png");}catch(Exceptione){System.out.println("Erro ao adicionar a imagem : "+this.getClass());}//formListar = new Form("Listagem OS Aberta");formDetalhe.setLayout(newBorderLayout());formDetalhe.setBgImage(osMobileBackground);mostrarDados();formDetalhe.addCommandListener(this);//formListar.getTitleStyle().setBgColor(0xff8040);LabelImagemLabel=newLabel(osMobileIcon);formDetalhe.addComponent(BorderLayout.NORTH,ImagemLabel);formDetalhe.addCommand(voltar);formDetalhe.addCommand(atenderOsAberta);returnformDetalhe;}publicvoidactionPerformed(ActionEvente){if(e.getSource()==voltar){OpenWindow.showMenu();}elseif(e.getSource()==detalharListaOSAberta){os=(Os)listaAberta.elementAt(model.getSelectedIndex());CreateFormDetalhe().show();}}publicvoidmostrarDados(){TextAreadados=newTextArea("Verificar a Os Detalhada \n"+"Cod: "+os.getCod()+"\n Cliente: "+os.getCliente().getNome()+"\n Telefone: "+os.getCliente().getTelefone()+"\n Data: "+os.getDataAbertura()+"\n Status: "+os.getStatus()+"\n Descricao da Os:\n"+os.getDescricao()+"");dados.setEditable(false);dados.setEnabled(true);formDetalhe.addComponent(BorderLayout.CENTER,dados);}
Meu Metodo de Listar!
//metodo de listar OS Em AbertapublicVectorlistarOSEmAberta(){ObjectSetose=null;//Gera um filtroEmAbertaFilterfiltro=newEmAbertaFilter();VectorlistarOSEmAberta=newVector();try{ose=PersistableManager.getInstance().find(Os.class,filtro,null);for(inti=0;i<ose.size();i++){OsobjetoOs=(Os)ose.get(i);//obtem as instancias do bancolistarOSEmAberta.addElement(objetoOs);}}catch(FloggyExceptionex){listarOSEmAberta.addElement("Erro list record");}returnlistarOSEmAberta;}
maxdavis
maxdavis:
Pessoal eu tenho um metodo de busca usando o floggy e tenho uma lista q uso o LWUIT para as minhas views, sendo oq ta acontencendo q eu nao estou conseguindo pegar o item desta lista, toda vez q tento pegar ele sempre mim traz o primeiro da lista. PORFAVOR HELP!!!!!!!!!!!!! :oops:
AGRADECO TODOS VCS DESDE JA
AKI EU CHAMO MEU METODO DE CONSULTAR
publicvoidactionPerformed(ActionEvente){if(e.getSource()==voltar){OpenWindow.showMenu();}elseif(e.getSource()==consultarDadosAberta){//TENTO PEGAR O ID AKIintid=list.getSelectedIndex();OspegarOs=newOs();try{pegarOs=os.consultarDadoAberta(id);System.out.println(pegarOs);}catch(FloggyExceptionex){ex.printStackTrace();}OpenWindow.showDetalheAberta();}
MEU FORM ONDE EU TRAGO A LISTA
publicFormCreateForm(){try{osMobileIcon=Image.createImage("/osMobilePequeno.png");osMobileBackground=Image.createImage("/backgroundCompleto.png");}catch(Exceptione){System.out.println("Erro ao adicionar a imagem : "+this.getClass());}//formListar = new Form("Listagem OS Aberta");this.setLayout(newBorderLayout());this.setBgImage(osMobileBackground);this.addCommandListener(this);//formListar.getTitleStyle().setBgColor(0xff8040);LabelImagemLabel=newLabel(osMobileIcon);this.addComponent(BorderLayout.NORTH,ImagemLabel);this.addCommand(voltar);this.addCommand(consultarDadosAberta);this.addCommand(deletarDadoEscolhido);ListModelmodel=newDefaultListModel(os.listarOSEmAberta());list.setModel(model);this.addComponent(BorderLayout.CENTER,list);returnthis;}
MEU METODO DE CONSULTAR ONDE EU PASSO ID COMO PARAMENTRO
//consultar um dado e detalharpublicOsconsultarDadoAberta(intid)throwsFloggyException{Ososbjeto=newOs();try{PersistableManager.getInstance().load(osbjeto,id);System.out.println(osbjeto.toString());}catch(FloggyExceptione){}returnosbjeto;}
V
vinidrummer
e performance? Estou usando um código semelhante, mas estou sofrendo com problemas de performance.
V
Vingard
Eu fiz alguns testes com vetores diferentes, mais específicos, para melhorar a performance e adiantou. Em vez de consultar um vetor só “único”, separei em vários vetores por categoria. Claro que uma consulta no geral (em todos juntos) ainda demora.