Sunteți pe pagina 1din 10

Codigo

Clase Principal
package clases;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Principal extends MIDlet {
Display pantalla;
ListaContactos lc;
public Principal() {
pantalla = Display.getDisplay(this);
lc=new ListaContactos(this);
}
public void startApp() {
pantalla.setCurrent(lc);
}
public void pauseApp() {
}
public void destroyApp(boolean x) {
}
}
Clase ListaContactos
package clases;
import java.util.Vector;
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.lcdui.*;
public class ListaContactos extends Form implements CommandListener,
ItemStateListener {
Command salir, Nuevo;
Principal p;
Vector contacts=new Vector();
public ListaContactos(Principal midlet) {
super("Agenda");
p = midlet;
salir = new Command("Salir", Command.EXIT, 0);
Nuevo = new Command("Nuevo", Command.OK, 1);
contactosPorDefecto();
listarContactos();
addCommand(salir);
addCommand(Nuevo);
setCommandListener(this);
setItemStateListener(this);
}
public void contactosPorDefecto() {
RMSOperaciones rms=new RMSOperaciones();
rms.abrirZona("AgendaTelefonica");
Contacto c=rms.listarRegistro(2);
if(c==null){
Contacto c1=new Contacto("Java1", "Zone1", "123456");
Contacto c2=new Contacto("Java2", "Zone2", "123456");
rms.adicionarRegistro(-1,c1);
rms.adicionarRegistro(-1,c2);
rms.cerrarZona();
}else{
rms.cerrarZona();
}
}

public void listarContactos(){
this.deleteAll();
RMSOperaciones rms=new RMSOperaciones();
rms.abrirZona("AgendaTelefonica");
contacts.removeAllElements();
for(int i=1;i<rms.numeroDeRegistros()+1;i++){
Contacto c=rms.listarRegistro(i);
if(c!=null){
contacts.addElement(c);
JZChoiceGroup
cgcontactos=new JZChoiceGroup(i,c.getNombre()+" "+c.getApellido());
cgcontactos.append("Actualizar", null);
cgcontactos.append("Eliminar", null);
cgcontactos.append("Detalles", null);
cgcontactos.append("Llamar", null);
cgcontactos.append("Enviar SMS", null);
append(cgcontactos);
}
}
}
public void commandAction(Command c, Displayable arg1) {
if (c == salir) {
p.destroyApp(true);
p.notifyDestroyed();
} else {
if (c == Nuevo) {
FormaNuevo fn=new FormaNuevo(p,this);
p.pantalla.setCurrent(fn);
}
}
}
public void itemStateChanged(Item item) {
JZChoiceGroup cgp = (JZChoiceGroup) item;
switch (cgp.getSelectedIndex()) {
case 0:
FormaActualizar
fa=new FormaActualizar(p, this, (Contacto)contacts.elementAt(cgp.getIndice()-1));
p.pantalla.setCurrent(fa);
break;
case 1:
RMSOperaciones rmso=new RMSOperaciones();
rmso.abrirZona("AgendaTelefonica");
rmso.eliminarContactos(cgp.getIndice());
rmso.cerrarZona();
listarContactos();
break;
case 2:
FormaDetalle
fd=new FormaDetalle(p, this,((Contacto)contacts.elementAt(cgp.getIndice()-1)));
p.pantalla.setCurrent(fd);
break;
case 3:
try {
p.platformRequest("tel:"+((Contacto)contacts.elem
entAt(cgp.getSelectedIndex()-1)).getTelefono());
} catch (ConnectionNotFoundException e) {
e.printStackTrace();
}
break;
case 4:
FormaSMS
fsms=new FormaSMS(((Contacto)contacts.elementAt(cgp.getIndice()-
1)).getTelefono());
p.pantalla.setCurrent(fsms);
break;
}
}
}
Clase FormaNuevo
package clases;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.lcdui.*;
public class FormaNuevo extends Form implements CommandListener {
Command guardar, atras;
TextField txtnombre, txtapellido, txttelefono;
Principal midlet;
Alert alerta;
ListaContactos lc;
public FormaNuevo(Principal mid, ListaContactos lcont) {
super("Registro");
midlet = mid;
lc=lcont;
txtnombre = new TextField("Nombre:", "", 40, TextField.ANY);
txtapellido = new TextField("Apellido:", "", 40, TextField.ANY);
txttelefono
= new TextField("Telefono:", "", 40, TextField.NUMERIC);
atras = new Command("Atras", Command.EXIT, 1);
guardar = new Command("Guardar", Command.OK, 2);
append(txtnombre);
append(txtapellido);
append(txttelefono);
addCommand(guardar);
addCommand(atras);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if (c == atras) {
midlet.pantalla.setCurrent(lc);
lc.listarContactos();
} else {
if (c == guardar) {
RMSOperaciones rmso = new RMSOperaciones();
rmso.abrirZona("AgendaTelefonica");
Contacto
contacto=new Contacto(txtnombre.getString(), txtapellido.getString(),
txttelefono.getString());
rmso.adicionarRegistro(-1,contacto);
rmso.cerrarZona();
alerta = new Alert("Mensaje", "Se ha guardado
exitosamente",
null, AlertType.CONFIRMATION);
alerta.setTimeout(1000);
midlet.pantalla.setCurrent(alerta, this);
txtnombre.setString("");
txtapellido.setString("");
txttelefono.setString("");
}
}
}
}
Clase FormaActualizar
package clases;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.lcdui.*;
public class FormaActualizar extends Form implements CommandListener {
Command actualizar, atras;
TextField txtnombre, txtapellido, txttelefono;
Principal midlet;
Alert alerta;
ListaContactos lc;
Contacto contacto;
public FormaActualizar(Principal mid, ListaContactos lcont, Contacto
contacto) {
super("Registro");
midlet = mid;
lc=lcont;
this.contacto=contacto;
txtnombre
= new TextField("Nombre:", ""+contacto.getNombre(), 40, TextField.ANY);
txtapellido
= new TextField("Apellido:", ""+contacto.getApellido(), 40, TextField.ANY);
txttelefono
= new TextField("Telefono:", ""+contacto.getTelefono(), 40, TextField.NUMERIC);
atras = new Command("Atras", Command.EXIT, 1);
actualizar = new Command("Actualizar", Command.OK, 2);
append(txtnombre);
append(txtapellido);
append(txttelefono);
addCommand(actualizar);
addCommand(atras);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if (c == atras) {
midlet.pantalla.setCurrent(lc);
lc.listarContactos();
} else {
if (c == actualizar) {
RMSOperaciones rmso = new RMSOperaciones();
rmso.abrirZona("AgendaTelefonica");
Contacto
contactu=new Contacto(txtnombre.getString(), txtapellido.getString(),
txttelefono.getString());
if(rmso.actualizarRegistro(contacto,contactu)){
alerta = new Alert("Mensaje", "Se ha
actualizo exitosamente",
null,
AlertType.CONFIRMATION);
alerta.setTimeout(1000);
midlet.pantalla.setCurrent(alerta, this);
txtnombre.setString("");
txtapellido.setString("");
txttelefono.setString("");
}else{
alerta = new Alert("Error", "No se pudo
actualizar el registro",
null,
AlertType.CONFIRMATION);
alerta.setTimeout(1000);
midlet.pantalla.setCurrent(alerta, this);
}
rmso.cerrarZona();
}
}
}
}
Clase FormaDetalle
package clases;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.lcdui.*;
public class FormaDetalle extends Form implements CommandListener {
Command atras;
StringItem txtnombre, txtapellido, txttelefono;
Principal midlet;
Alert alerta;
ListaContactos lc;
public FormaDetalle(Principal mid, ListaContactos lcont, Contacto
contacto) {
super("Detalle");
midlet = mid;
lc=lcont;
txtnombre = new StringItem("Nombre:", ""+contacto.getNombre());
txtapellido
= new StringItem("Apellido:", ""+contacto.getApellido());
txttelefono
= new StringItem("Telefono:", ""+contacto.getTelefono());
atras = new Command("Atras", Command.EXIT, 1);
append(txtnombre);
append(txtapellido);
append(txttelefono);
addCommand(atras);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if (c == atras) {
midlet.pantalla.setCurrent(lc);
lc.listarContactos();
}
}
}
Clase FormaSMS
package clases;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InterruptedIOException;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class FormaSMS extends Form implements CommandListener {
TextField mensaje;
Command atras, enviar;
String destinatario;
public FormaSMS(String dest) {
super("Mensaje a "+dest);
destinatario=dest;
mensaje = new TextField("Mensaje", "", 140, TextField.ANY);
mensaje.setPreferredSize(getWidth()-10,getHeight()-10);
append(mensaje);
atras = new Command("Atras", Command.EXIT, 0);
enviar = new Command("Enviar", Command.OK, 1);
addCommand(atras);
addCommand(enviar);
setCommandListener(this);
}
public void commandAction(Command arg0, Displayable arg1) {
if (arg0.equals(atras)) {

} else {
enviarSMS();
}
}
public void enviarSMS() {
MessageConnection conn = null;
TextMessage msg = null;
try {
conn = (MessageConnection) Connector.open("sms://"
+ destinatario);
msg
= (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(mensaje.getString());
conn.send(msg);
conn.close();
} catch (InterruptedIOException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
conn = null;
}
}
}
Clase JZChoiceGroup
package clases;
import javax.microedition.lcdui.ChoiceGroup;
public class JZChoiceGroup extends ChoiceGroup{
int indice;
String nombre;

public JZChoiceGroup(int i, String nom) {
super(""+nom, ChoiceGroup.POPUP);
indice=i;
nombre=nom;
}
public int getIndice() {
return indice;
}
public void setIndice(int indice) {
this.indice = indice;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
Clase Contacto
package clases;
public class Contacto {

String nombre;
String apellido;
String telefono;

public Contacto(String n, String a, String t){
nombre=n;
apellido=a;
telefono=t;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
}
Clase RMSOperaciones
package clases;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.rms.*;
public class RMSOperaciones {
RecordStore rs;
public RMSOperaciones() {
}
public boolean abrirZona(String nombreZona) {
try {
rs = RecordStore.openRecordStore(nombreZona, true);
return true;
} catch (RecordStoreException e) {
e.toString();
return false;
}
}
public boolean adicionarRegistro(int indice,Contacto c) {
try {
byte[] mensaje;
ByteArrayOutputStream baos=new ByteArrayOutputStream();
DataOutputStream dos=new DataOutputStream(baos);
dos.writeUTF(c.getNombre());
dos.writeUTF(c.getApellido());
dos.writeUTF(c.getTelefono());
mensaje = baos.toByteArray();
if(indice!=-1){
rs.setRecord(indice,mensaje, 0, mensaje.length);
}else{
rs.addRecord(mensaje, 0, mensaje.length);
}
System.out.println(c.getNombre()+"-"+c.getApellido());
return true;
} catch (RecordStoreException e) {
e.toString();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
public boolean adicionarRegistro(String valor) {
byte[] mensaje;
mensaje = valor.getBytes();
try {
rs.addRecord(mensaje, 0, mensaje.length);
return true;
} catch (RecordStoreException e) {
e.toString();
return false;
}
}
public String listarRegistro() {
byte[] reg = new byte[100];
int tam;
String buffer = "";
try {
for (int i = 1; i <= rs.getNumRecords(); i++) {
tam = rs.getRecordSize(i);
reg = rs.getRecord(i);
buffer += "\n" + i + new String(reg, 0, tam);
}
} catch (RecordStoreException e) {
System.out.println("Error de Lectura 1");
}
return buffer;
}

public int numeroDeRegistros(){
try {
return rs.getNumRecords();
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
return 0;
}
}

public void eliminarContactos(){
try {
for(int i=1;i<rs.getNumRecords()+1;i++){
rs.deleteRecord(i);
}
} catch (RecordStoreNotOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidRecordIDException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void eliminarContactos(int i){
try {
rs.deleteRecord(i);
} catch (RecordStoreNotOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidRecordIDException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public boolean actualizarRegistro(Contacto c, Contacto cact){
try {
String n=c.getNombre()+" "+c.getApellido();
for(int i=1;i<rs.getNumRecords()+1;i++){
byte[] reg = new byte[100];
reg=rs.getRecord(i);
ByteArrayInputStream bais= new ByteArrayInputStre
am(reg);
DataInputStream dis=new DataInputStream(bais);
String nom=dis.readUTF();
String ape=dis.readUTF();
System.out.println(n+"--"+nom+" "+ape);
if(n.equalsIgnoreCase(nom+" "+ape)){
System.out.println(i);
adicionarRegistro(i, cact);
return true;
}
}
return false;
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (InvalidRecordIDException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
public Contacto listarRegistro(int r) {
byte[] reg = new byte[100];
Contacto c=null;
ByteArrayInputStream bais;
DataInputStream dis;
String[] datos = new String[3];
try {
reg = rs.getRecord(r);
bais = new ByteArrayInputStream(reg);
dis = new DataInputStream(bais);
c=new Contacto(dis.readUTF(), dis.readUTF(),
dis.readUTF());
} catch (RecordStoreException e) {
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c;
}
public boolean cerrarZona() {
try {
rs.closeRecordStore();
return true;
} catch (RecordStoreException e) {
e.toString();
return false;
}
}
}

S-ar putea să vă placă și