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();
}
}
}
}