Floggy - Banco de dados
Transcrição
Floggy - Banco de dados
1 FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE – FANESE CST – SISTEMAS PARA INTERNET DAYSE SOARES SANTOS LUCIELMO AQUINO TUTORIAL FLOGGY Eclipse Aracaju ,2010 2 SISTEMAS DE ARQUIVOS Tutorial Floggy - Eclipese Tutorial apresentado a Faculdade de Administração e Negócios de Sergipe, como um dos pré-requisitos de avaliação na disciplina de Sistemas Operacionais de Rede. ORIENTADOR PROF.: Fabio Coriolano Sobreira Aracaju, 2010 3 O que é Floggy? É um framework . O Floggy seria como uma camada de nível mais alto, acima do RMS, aonde visa abstrair os detalhes de manipulação de caracteres do programador, ficando este responsável apenas pela montagem da lógica da aplicação, ou seja, ao invés de persistir um array de dados, a persistência será feita com instâncias dos objetos das classes modelo, assim como é feito atualmente em Java EE. Classes modelo são as conhecidas classes model do modelo MVC em Java EE, onde efetuando um mapeamento objeto-relacional, pode-se mapear todas as tabelas de um banco utilizando simples classes Java, facilitando o acesso à informação e a implementação das regras de negócio específicas. Vamos desenvolver um projeto no eclipse que será uma agenda. Antes do desenvolvimento do mesmo, é necessário que sigamos alguns passos para configurar o eclipse para que possamos desenvolver para J2ME para celular. 1º - Baixe na internet o WTK - Sun Java (TM) Wireless Toolkit 2.5.1 for CLDC e instalar em seu computador. 2º - Acesse esse link : http://sourceforge.net/projects/floggy e baixe o floggy-persistence-1.3.1 3º - Descompacte o arquivo floggy-persistence-1.3.1.zip . 4º - Entre na pasta: floggy-persistence-1.3.1\floggy-persistence-1.3.1\lib\ 5º - Copie o arquivo floggy-persistence-framework.jar e cole dentro do diretório C:\eclipse\plugins INICIANDO O PROJETO 1º - Execute o Eclipse 2º - Clique em File / New / Project... 4 3º - Escolha a opção J2ME, J2ME Midlet Suite. 4º - Next. 5º - Informe o nome do projeto 6º - Escolha a Midlet que desejar. No tutorial sugiro o uso do DefaultColorPhone. 7º - Next e Finish. 5 8º - Clique com o botão direito do mouse, escolha a opção do Floggy, Add Floggy nature. 10º - Clique novamente com o direito do mouse no projeto, Floggy, Generate Source 11º - Clique com o botão direito do mouse em src do projeto PrjFloggyAgenda, New, Class 12º - Informe o nome do Package: Agenda e o Name da class: Contato. 13º - Faça o mesmo para nome da class: App, Alterar,Cadastrar, Listar e Principal. 6 14º Na class Contato Crie as variáveis que será usado no projeto e gere os get e set. public class Contato implements Persistable{ private private private private String nome; String fone; String email; int indice; public Contato(String nome, String fone, String email) { this.nome = nome; this.fone = fone; this.email = email; } public Contato() { // TODO Auto-generated constructor stub } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getFone() { return fone; } public void setFone(String fone) { this.fone = fone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getIndice() { return indice; } public void setIndice(int indice) { this.indice = indice; } } 15º Na class App . public class App extends MIDlet implements CommandListener { Display tela; Principal principal; Form formPri; Cadastrar cadastrar; Form formCad; 7 Listar listar; Form formLis; Alterar alterar; Form formAlt; public App() { formPri = new Form("Principal"); principal = new Principal("Formulario Principal",this); formCad = new Form("Cadastro"); cadastrar = new Cadastrar("Formulario Cadastro",this); formLis = new Form("Listar"); listar = new Listar("Formulario Lista",this); formAlt = new Form("Alterar"); alterar = new Alterar("Formulario Alterar",this); // } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { tela = Display.getDisplay(this); tela.setCurrent(principal); } public void EntrePrincipal() { tela = Display.getDisplay(this); tela.setCurrent(principal); } public void sair() { notifyDestroyed(); } public void EntreCadastrar() { tela = Display.getDisplay(this); tela.setCurrent(cadastrar); } public void EntreAlterar() { tela = Display.getDisplay(this); tela.setCurrent(alterar); } public void EntreListar() { tela = Display.getDisplay(this); listar.preencherLista(); tela.setCurrent(listar); 8 } public void commandAction(Command arg0, Displayable arg1) { // TODO Auto-generated method stub } } 16º - Na Class Principal. public class Principal extends Form implements CommandListener { App app; ChoiceGroup choice; Command cmdSair, cmdProx; public Principal(String title, App app) { super(title); app.formCad = null; app.formLis = null; app.formAlt = null; String[] strchoice = { "Cadastrar", "Listar" }; choice = new ChoiceGroup("Selecionar", ChoiceGroup.EXCLUSIVE, strchoice, null); this.append(choice); cmdSair = new Command("Sair", Command.EXIT, 0); cmdProx = new Command("Prox", Command.OK, 0); this.addCommand(cmdSair); this.addCommand(cmdProx); //app.formPri.addCommand(cmdSair); this.app = app; this.setCommandListener(this); //app.formPri.setCommandListener(this); } public void commandAction(Command c, Displayable d) { System.out.println("choice.getSelectedIndex() " + choice.getSelectedIndex()); if (c == cmdSair) { app.sair(); }else{ if (c == cmdProx) { if (choice.getSelectedIndex()==0) { app.EntreCadastrar(); }else{ //app.tela.setCurrent(app.listar); app.EntreListar(); } } } 9 } } 17º - Na Class Cadastrar. public class Cadastrar extends Form implements CommandListener{ TextField nome; TextField fone; TextField email; Command cmdMenu, cmdCadastrar; App app; public Cadastrar(String title, App app) { super(title); nome = new TextField("Nome", "", 50, TextField.ANY); fone = new TextField("Fone", "", 50, TextField.ANY); email = new TextField("Email", "", 50, TextField.ANY); this.append(nome); this.append(fone); this.append(email); cmdMenu = new Command("Menu",Command.EXIT,0); cmdCadastrar = new Command("Ok",Command.OK,0); this.addCommand(cmdMenu); this.addCommand(cmdCadastrar); app.formCad.addCommand(cmdMenu); app.formCad.addCommand(cmdCadastrar); this.app = app; this.setCommandListener(this); app.formCad.setCommandListener(this); } public void commandAction(Command c, Displayable d) { if (c == cmdMenu) { app.EntrePrincipal(); }else{ if (c == cmdCadastrar) { // Resgatando o item do forms TextField nome = (TextField) this.get(0); TextField fone = (TextField) this.get(1); TextField email = (TextField) this.get(2); String nm = nome.getString(); String fn = fone.getString(); String em = email.getString(); Contato contato = new Contato(nm,fn,em); try { int save = PersistableManager.getInstance().save(contato); contato.setIndice(save); 10 PersistableManager.getInstance().save(contato); } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } nome.setString(""); fone.setString(""); email.setString(""); app.EntrePrincipal(); } } } } 18º - Na Class Listar. public class Listar extends Form implements CommandListener { App app; ChoiceGroup choiceListar; Command cmdMenu, cmdVisualizar, cmdDeletar; private Vector v; public Listar(String title, App app) { super(title); cmdMenu = new Command("Menu", Command.EXIT, 0); cmdVisualizar = new Command("Visualizar", Command.OK, 0); cmdDeletar = new Command("Deletar", Command.OK, 1); this.addCommand(cmdMenu); this.addCommand(cmdVisualizar); this.addCommand(cmdDeletar); this.app = app; this.setCommandListener(this); } public void preencherLista() { this.deleteAll(); System.out.println("entrou no preenche lista"); choiceListar = new ChoiceGroup(null, ChoiceGroup.EXCLUSIVE); try { ObjectSet contatos = PersistableManager.getInstance().find( Contato.class, null, new NomeComparator()); v = new Vector(); if (contatos.size() > 0) { this.addCommand(cmdVisualizar); Contato contato = new Contato(); for (int i = 0; i < contatos.size(); i++) { 11 contato = (Contato) contatos.get(i); // contatos.get(i, contato); choiceListar.append(contato.getNome(), null); v.addElement(new Integer(contato.getIndice())); } } } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.append(choiceListar); } public void commandAction(Command c, Displayable d) { if (c == cmdMenu) { app.EntrePrincipal(); } else { if (c == cmdDeletar) { try { Integer indice = (Integer) v.elementAt(choiceListar .getSelectedIndex()); ObjectSet contatos = PersistableManager.getInstance().find( Contato.class, null, new NomeComparator()); if (contatos.size() > 0) { Contato contato = new Contato(); for (int i = 0; i < contatos.size(); i++) { contato = (Contato) contatos.get(i); if (contato.getIndice() == indice.intValue()) { PersistableManager.getInstance() .delete(contato); } } } } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } app.EntrePrincipal(); } else { try { Integer indice = (Integer) v.elementAt(choiceListar .getSelectedIndex()); ObjectSet contatos = PersistableManager.getInstance().find( Contato.class, null, new NomeComparator()); 12 if (contatos.size() > 0) { Contato contato = new Contato(); for (int i = 0; i < contatos.size(); i++) { contato = (Contato) contatos.get(i); if (contato.getIndice() == indice.intValue()) { app.alterar = new Alterar(app,indice.intValue()); } } } } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } app.EntreAlterar(); // if (c == cmdVisualizar) { // Integer indice = (Integer) v.elementAt(choiceListar // .getSelectedIndex()); // app.alterar = new Alterar(app, indice.intValue()); // app. //// app.tela.setCurrent(app.alterar); // } } } } } 19º - Na Class NomeComparator public class NomeComparator implements Comparator { public int compare(Persistable p1, Persistable p2) { Contato c1 = (Contato)p1; Contato c2 = (Contato)p2; int comparador = c1.getNome().toLowerCase().compareTo(c2.getNome().toLowerCase()); if(comparador<0){ return PRECEDES; }else if (comparador>0){ return FOLLOWS; }else{ return EQUIVALENT; } } } 13 20º - Na Class Alterar. public class Alterar extends Form implements CommandListener { App app; TextField nome; TextField fone; TextField email; Command cmdMenu, cmdAlterar; // int indice; Contato contato = new Contato(); public Alterar(App app, int indice) { super("alterar"); try { ObjectSet contatos = PersistableManager.getInstance().find(Contato.class, null, new NomeComparator()); if (contatos.size() > 0) { Contato contato = new Contato(); for (int i = 0; i < contatos.size(); i++) { contato = (Contato) contatos.get(i); if (contato.getIndice() == indice) { this.contato = contato; } } } nome = new TextField("nome", contato.getNome(), 50, TextField.ANY); fone = new TextField("fone", contato.getFone(), 50, TextField.ANY); email = new TextField("email", contato.getEmail(), 50, TextField.ANY); this.append(nome); this.append(fone); this.append(email); cmdMenu = new Command("Menu",Command.EXIT,0); cmdAlterar = new Command("Ok",Command.OK,0); this.addCommand(cmdMenu); this.addCommand(cmdAlterar); app.formAlt.addCommand(cmdMenu); app.formAlt.addCommand(cmdAlterar); this.app = app; this.setCommandListener(this); app.formAlt.setCommandListener(this); } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 14 public void commandAction(Command c, Displayable d) { if (c == cmdMenu) { app.EntrePrincipal(); } else { if (c == cmdAlterar) { contato.setNome(nome.getString()); contato.setFone(fone.getString()); contato.setEmail(email.getString()); try { PersistableManager.getInstance().save(contato); } catch (FloggyException e) { // TODO Auto-generated catch block e.printStackTrace(); } app.EntrePrincipal(); } } } }