Blogia
guille9020

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;

public class Clientes extends MIDlet implements CommandListener {
    static final String BD = "datos";
    Cliente c = new Cliente();

    private Display pantalla;

    private Form frmAgregar;
    private Command cmdGuardar;
    private Command cmdCancelar;
    private TextField nombre;
    private TextField descuento;

    private Form frmEliminar;
    private Command cmdEliminar;
    private TextField nombre2;

    private Form frmBuscar;
    private Command cmdBuscar;
    private TextField nombre3;

    private Form frmResultados;
    public int itemResultados;

    private List elmenu;
    private Command cmdSalir;
    private Command cmdSeleccionar;

    private Alert acercade;
    private Command cmdRegresar;

    public Clientes() {
      //----------------------------
      //      Prepara Display
      //----------------------------
        pantalla = Display.getDisplay(this);

      //---------------------------
      //      Prepara Base de datos
      //---------------------------
        RecordStore rs = null;
        
        try
        {
            RecordStore.deleteRecordStore(BD);
        }
        catch(Exception e){}
       
    try
    {
        rs = RecordStore.openRecordStore(BD, true);
        rs.closeRecordStore();
    }
    catch( RecordStoreException e)
    {
            System.out.println(e);
        }

        //---------------------------
        //      Menu Principal
        //---------------------------
        String opciones[] = {"añadir", "Eliminar", "Busqueda", "Acerca de..."};
        Image figuras[] = new Image[4];
        try
        {
            figuras[0] = Image.createImage("/nuevo.png");
            figuras[1] = Image.createImage("/borrar.png");
            figuras[2] = Image.createImage("/buscar.png");
            figuras[3] = Image.createImage("/acercade.png");
        }
        catch (Exception e){}
        cmdSeleccionar = new Command("Seleccionar", Command.ITEM,1);
        cmdSalir = new Command("Salir", Command.EXIT,1);
        elmenu = new List("Sistema Móvil", Choice.IMPLICIT,opciones,figuras);
        elmenu.setSelectCommand(cmdSeleccionar);
        elmenu.addCommand(cmdSalir);
        elmenu.setCommandListener(this);

        //------------------------
        //      Añadir
        //------------------------
        cmdGuardar = new Command("Guardar", Command.OK,2);
        cmdCancelar = new Command("Cancelar", Command.BACK,2);
        frmAgregar = new Form("Añadir cliente");
        nombre = new TextField("Descuento","",3,TextField.NUMERIC);
        frmAgregar.append(nombre);
        frmAgregar.append(descuento);
        frmAgregar.addCommand(cmdGuardar);
        frmAgregar.addCommand(cmdCancelar);
        frmAgregar.setCommandListener(this);

        //------------------------
        //      Eliminar
        //------------------------
        cmdEliminar = new Command("Eliminar", Command.OK,2);
        frmEliminar = new Form("Eliminar cliente");
        nombre2 = new TextField("Nombre","",20,TextField.ANY);
        frmEliminar.append(nombre2);
        frmEliminar.addCommand(cmdEliminar);
        frmEliminar.addCommand(cmdCancelar);
        frmEliminar.setCommandListener(this);

        //------------------------
        //      Buscar
        //------------------------
        cmdBuscar = new Command("Buscar", Command.OK,2);
        frmBuscar = new Form("Buscra cliente");
        nombre3 = new TextField("Nombre","",20,TextField.ANY);
        frmBuscar.append(nombre3);
        frmBuscar.addCommand(cmdBuscar);
        frmBuscar.addCommand(cmdCancelar);
        frmBuscar.setCommandListener(this);

        //---------------------------------
        //      Resultados de la busqueda
        //---------------------------------
        cmdRegresar = new Command("OK", Command.BACK,1);
        frmResultados = new Form("Resultados");
        itemResultados = frmResultados.append("Resultados");
        frmResultados.addCommand(cmdRegresar);
        frmResultados.setCommandListener(this);

        //------------------------
        //      Acerca de...
        //------------------------
        acercade = new Alert("Qiubo lobo");
        acercade.setTimeout(Alert.FOREVER);
        String creditos = "Hecho por: n Guillermo Castro";

        if (pantalla.numColors() > 2)
        {
            String icon = (pantalla.isColor()) ?"/JavaPowered-8.png": "JavaPowered-2.png";
            try
            {
                Image image = Image.createImage(icon);
                        acercade.setImage(image);
            }
            catch (java.io.IOException x){}
        }
        acercade.setString(creditos);
        acercade.addCommand(cmdRegresar);
        acercade.setCommandListener(this);
    }
    public void startApp() throws MIDletStateChangeException{
        pantalla.setCurrent(elmenu);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean incondicional) {
    }

    public void commandAction(Command c, Displayable s){
        switch(c.getCommandType())
        {
            case Command.ITEM:
                switch(elmenu.getSelectedIndex())
                {
                    case 0: //añadir
                        pantalla.setCurrent(frmAgregar);
                        break;

                    case 1: //Eliminar
                        pantalla.setCurrent(frmEliminar);
                        break;

                    case 2: //busqueda
                        pantalla.setCurrent(frmBuscar);
                        break;

                    case 3: //acerca de...
                        pantalla.setCurrent(acercade);
                        break;
                }
                break;
            case Command.EXIT:
              destroyApp(false);
              notifyDestroyed();
              break;
            case Command.BACK:
                pantalla.setCurrent(elmenu);
                limpiar();
                break;
            case Command.OK:
                if (c == cmdGuardar)
                {
                    this.c.nombre = nombre.getString();
                    this.c.descuento = Long.parseLong(descuento.getString());
                    this.c.agregar();
                    limpiar();
                    pantalla.setCurrent(elmenu);
                }
                else if(c == cmdEliminar)
                {
                    this.c.nombre = nombre2.getString();
                    frmResultados.delete(itemResultados);
                    itemResultados = frmResultados.append(this.c.eliminar());
                    limpiar();
                    pantalla.setCurrent(frmResultados);
                }
                else if(c == cmdBuscar)
                {
                    this.c.nombre = nombre3.getString();
                    frmResultados.delete(itemResultados);
                    itemResultados = frmResultados.append(this.c.buscar());
                    limpiar();
                    pantalla.setCurrent(frmResultados);
                }
                break;
        }
    }
    void limpiar()
    {
        nombre.setString("");
        nombre2.setString("");
        nombre3.setString("");
        descuento.setString("");
    }
    class Cliente
    {
            public String clave;
            public String nombre;
            public long descuento;

            public void agregar()
        {
                RecordStore rs = null;
                try
                {
                    rs = RecordStore.openRecordStore(BD, false);
                    RecordEnumeration registros = rs.enumerateRecords(null, null, false);

                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    DataOutputStream os = new DataOutputStream(baos);
                    try
                    {
                        os.writeUTF(nombre);
                        os.writeLong(descuento);
                        os.flush();
                    }
                    catch (IOException ioe) {}

                    byte[] b = baos.toByteArray();
                    try
                    {
                        rs.addRecord(b, 0, b.length);
                    }
                    catch (RecordStoreException rse) {}
                    rs.closeRecordStore();
            }
                catch(RecordStoreException e) {}
            }
            public String eliminar()
       {
                int indice;
                RecordStore rs = null;
                String texto = "No se encontro el registro";
                try
                {
                    rs = RecordStore.openRecordStore(BD, false);
                    RecordEnumeration registros = rs.enumerateRecords(null, null, false);

                    while (registros. hasNextElement())
           {
                    indice = registros.nextRecordId();
                    try
                    {
                            ByteArrayInputStream bais = new ByteArrayInputStream(rs.getRecord(indice));
                            DataInputStream is = new DataInputStream(bais);
                            try
                            {
                                clave = is.readUTF();
                            }
                            catch (EOFException eofe) {}
                            catch (IOException ioe) {}
                            if (clave.equals(this.nombre))
                            {
                                try
                                        {
                                             rs.deleteRecord(indice);
                                             texto = "El registro"+indice+"Ha sido eliminado";
                                           }
                                           catch(InvalidRecordIDException e) {}
                            }
                            }
                            catch(RecordStoreException e) {}
                }
                    rs.closeRecordStore();
            }
            catch(RecordStoreException e) {}
            return texto;
            }
        public String buscar()
        {
                String texto = "";
                String elnombre;
                long eldescto;
                boolean eureka = false;
                RecordStore rs = null;
                int indice;

                try
                {
                    rs = RecordStore.openRecordStore(BD, false);
                    RecordEnumeration registros = rs.enumerateRecords(null, null, false);
            while (registros.hasNextElement())
            {
                   indice = registros.nextRecordId();
                   try
                        {
                                ByteArrayInputStream bais = new ByteArrayInputStream(rs.getRecord(indice));
                                DataInputStream is = new DataInputStream(bais);
                                try
                                {
                                    elnombre = is.readUTF();
                                    eldescto = is.readLong();
                                    if(this.nombre.equals("*") || this.nombre.equals("ALL"))
                                    {
                                        texto += "Indice: "+indice+ "n CLIENTE: " +"nDESCUENTO: "+eldescto+"%nn";
                                        eureka = true;
                                    }
                                    else
                                    {
                                        if(elnombre.equals(nombre))
                                        {
                                            texto += "Indice: "+indice+ "n CLIENTE: " +"nDESCUENTO: "+eldescto+"%nn";
                                            eureka = true;
                                        }
                                    }
                                }
                                catch (EOFException eofe) {}
                                catch (IOException ioe) {}
                                bais.reset();
                                }
                        catch (RecordStoreException e) {}
                        }
                    rs.closeRecordStore();
                    }
                catch(RecordStoreException e){}
                if (!eureka)
                    texto = "No se encontro el registro";
                return texto;
                }
    }
}

0 comentarios