home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / ClienteChat / Cliente Chat.jar / com / xibaro / chat / Cliente.class (.txt) next >
Encoding:
Java Class File  |  2002-04-23  |  7.9 KB  |  333 lines

  1. package com.xibaro.chat;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.util.Hashtable;
  7. import javax.microedition.io.Connector;
  8. import javax.microedition.io.HttpConnection;
  9. import javax.microedition.lcdui.Alert;
  10. import javax.microedition.lcdui.AlertType;
  11. import javax.microedition.lcdui.Display;
  12. import javax.microedition.lcdui.Image;
  13. import javax.microedition.midlet.MIDlet;
  14.  
  15. public class Cliente extends MIDlet {
  16.    private Display display = Display.getDisplay(this);
  17.    private VentanaEstado ventanaEstado = new VentanaEstado(this);
  18.    private VentanaLogin ventanaLogin = new VentanaLogin(this);
  19.    private VentanaAccion ventanaAccion = new VentanaAccion(this);
  20.    private VentanaSalir ventanaSalir = new VentanaSalir(this);
  21.    private VentanaNuevaConversa ventanaNuevaConversa = new VentanaNuevaConversa(this);
  22.    private VentanaCambiaConversa ventanaCambiaConversa;
  23.    private VentanaCambiaConversaNada ventanaCambiaConversaNada;
  24.    private VentanaTerminaConversa ventanaTerminaConversa;
  25.    private VentanaTerminaConversaNada ventanaTerminaConversaNada;
  26.    private VentanaChat ventanaChat = new VentanaChat(this);
  27.    private Entrada entrada;
  28.    private String nickUser;
  29.    private Hashtable tablaBuffer;
  30.    private String actual;
  31.    private int estado = 0;
  32.    // $FF: renamed from: id java.lang.String
  33.    private String field_0 = null;
  34.    private HttpConnection conexionIn = null;
  35.    private HttpConnection conexionOut = null;
  36.    // $FF: renamed from: in java.io.InputStream
  37.    private InputStream field_1 = null;
  38.    private OutputStream out = null;
  39.    private String servidor = "http://microjavacenter.com:1981";
  40.  
  41.    public Cliente() {
  42.       this.display.setCurrent(this.ventanaEstado);
  43.       this.nickUser = "";
  44.       this.tablaBuffer = new Hashtable();
  45.       this.actual = "";
  46.       this.iniciaConexion();
  47.    }
  48.  
  49.    public void startApp() {
  50.    }
  51.  
  52.    public void pauseApp() {
  53.    }
  54.  
  55.    public void destroyApp(boolean var1) {
  56.    }
  57.  
  58.    public void mensajeEstado(String var1) {
  59.       this.ventanaEstado.mensaje(var1);
  60.    }
  61.  
  62.    private void iniciaConexion() {
  63.       this.ventanaEstado.mensaje("Connecting to server...");
  64.  
  65.       try {
  66.          this.conexionIn = (HttpConnection)Connector.open(this.servidor, 1);
  67.          this.conexionIn.setRequestProperty("S", "B");
  68.          this.field_1 = this.conexionIn.openInputStream();
  69.          this.field_0 = this.conexionIn.getHeaderField("Id");
  70.          this.ventanaEstado.mensaje("Id:" + this.field_0);
  71.          this.entrada = new Entrada(this, this.field_1);
  72.          this.entrada.start();
  73.          this.conexionOut = (HttpConnection)Connector.open(this.servidor);
  74.          this.conexionOut.setRequestMethod("POST");
  75.          this.conexionOut.setRequestProperty("S", "S");
  76.          this.conexionOut.setRequestProperty("Id", this.field_0);
  77.          this.out = this.conexionOut.openOutputStream();
  78.          this.out.flush();
  79.          this.display.setCurrent(this.ventanaLogin);
  80.       } catch (IOException var2) {
  81.          this.ventanaEstado.mensaje("Error when trying to connect to server");
  82.       }
  83.  
  84.    }
  85.  
  86.    public void volverEstado() {
  87.       if (this.estado == 0) {
  88.          this.display.setCurrent(this.ventanaLogin);
  89.       } else {
  90.          this.display.setCurrent(this.ventanaAccion);
  91.       }
  92.  
  93.    }
  94.  
  95.    public void verEstado() {
  96.       this.display.setCurrent(this.ventanaEstado);
  97.    }
  98.  
  99.    public void loginError(String var1) {
  100.       this.ventanaEstado.mensaje(var1);
  101.       this.display.setCurrent(this.ventanaEstado);
  102.    }
  103.  
  104.    public void loginOk(String var1, boolean var2) {
  105.       if (var2) {
  106.          Diccio.espanol(true);
  107.          this.ventanaEstado.mensaje(Diccio.frase(1) + var1 + "...");
  108.          this.ventanaEstado = new VentanaEstado(this);
  109.          this.ventanaAccion = new VentanaAccion(this);
  110.          this.ventanaSalir = new VentanaSalir(this);
  111.          this.ventanaNuevaConversa = new VentanaNuevaConversa(this);
  112.          this.ventanaChat = new VentanaChat(this);
  113.          this.envia("q");
  114.       }
  115.  
  116.       this.display.setCurrent(this.ventanaEstado);
  117.       this.envia("l" + var1);
  118.    }
  119.  
  120.    public void salir() {
  121.       this.estado = 2;
  122.       this.display.setCurrent(this.ventanaSalir);
  123.  
  124.       try {
  125.          this.conexionIn.close();
  126.          this.conexionOut.close();
  127.          this.field_1.close();
  128.          this.out.close();
  129.       } catch (IOException var2) {
  130.       }
  131.  
  132.    }
  133.  
  134.    public void salirFin() {
  135.       this.destroyApp(false);
  136.       ((MIDlet)this).notifyDestroyed();
  137.    }
  138.  
  139.    public void nuevaConversa() {
  140.       this.display.setCurrent(this.ventanaNuevaConversa);
  141.    }
  142.  
  143.    public void volverNuevaConversa(String var1) {
  144.       if (var1 != null) {
  145.          this.addBuffer(var1);
  146.          this.pon(var1);
  147.          if (var1.length() > 0) {
  148.             if (var1.charAt(0) == '#') {
  149.                this.envia("j" + var1);
  150.             } else {
  151.                this.envia("s" + var1);
  152.             }
  153.          }
  154.       } else {
  155.          this.display.setCurrent(this.ventanaAccion);
  156.       }
  157.  
  158.    }
  159.  
  160.    public void cambiaConversa() {
  161.       if (this.tablaBuffer.size() != 0) {
  162.          this.ventanaCambiaConversa = new VentanaCambiaConversa(this, this.tablaBuffer);
  163.          this.display.setCurrent(this.ventanaCambiaConversa);
  164.       } else {
  165.          this.ventanaCambiaConversaNada = new VentanaCambiaConversaNada(this);
  166.          this.display.setCurrent(this.ventanaCambiaConversaNada);
  167.       }
  168.  
  169.    }
  170.  
  171.    public void volverCambiaConversa(String var1) {
  172.       if (var1 != null) {
  173.          if (this.tablaBuffer.get(var1) != null) {
  174.             this.pon(var1);
  175.          }
  176.       } else {
  177.          this.display.setCurrent(this.ventanaAccion);
  178.       }
  179.  
  180.       this.ventanaCambiaConversa = null;
  181.       this.ventanaCambiaConversaNada = null;
  182.    }
  183.  
  184.    public void pon(String var1) {
  185.       String var2 = (String)this.tablaBuffer.get(var1);
  186.       this.ventanaChat.setTitulo(var1);
  187.       if (var2 == null) {
  188.          this.ventanaChat.setText("");
  189.       } else {
  190.          this.ventanaChat.setText(var2);
  191.       }
  192.  
  193.       this.actual = var1;
  194.       this.display.setCurrent(this.ventanaChat);
  195.    }
  196.  
  197.    public void terminaConversa() {
  198.       if (this.tablaBuffer.size() != 0) {
  199.          this.ventanaTerminaConversa = new VentanaTerminaConversa(this, this.tablaBuffer);
  200.          this.display.setCurrent(this.ventanaTerminaConversa);
  201.       } else {
  202.          this.ventanaTerminaConversaNada = new VentanaTerminaConversaNada(this);
  203.          this.display.setCurrent(this.ventanaTerminaConversaNada);
  204.       }
  205.  
  206.    }
  207.  
  208.    public void volverTerminaConversa(String var1) {
  209.       if (var1 != null) {
  210.          this.tablaBuffer.remove(var1);
  211.          if (var1.length() > 0 && var1.charAt(0) == '#') {
  212.             this.envia("d" + var1);
  213.          }
  214.  
  215.          this.ventanaTerminaConversa = new VentanaTerminaConversa(this, this.tablaBuffer);
  216.          this.display.setCurrent(this.ventanaTerminaConversa);
  217.       } else {
  218.          this.display.setCurrent(this.ventanaAccion);
  219.       }
  220.  
  221.       this.ventanaTerminaConversa = null;
  222.       this.ventanaTerminaConversaNada = null;
  223.    }
  224.  
  225.    public void opcionesVentanaChat() {
  226.       this.display.setCurrent(this.ventanaAccion);
  227.    }
  228.  
  229.    public void listaCanales() {
  230.       this.display.setCurrent(this.ventanaEstado);
  231.       this.ventanaEstado.mensaje(Diccio.frase(2));
  232.       this.envia("i");
  233.    }
  234.  
  235.    public void listaUsuarios() {
  236.       this.display.setCurrent(this.ventanaEstado);
  237.       if (this.actual.length() > 0) {
  238.          if (this.actual.charAt(0) == '#') {
  239.             this.ventanaEstado.mensaje(Diccio.frase(3) + this.actual + "...");
  240.             this.envia("i" + this.actual);
  241.          } else {
  242.             this.ventanaEstado.mensaje(Diccio.frase(4));
  243.          }
  244.       } else {
  245.          this.ventanaEstado.mensaje(Diccio.frase(4));
  246.       }
  247.  
  248.    }
  249.  
  250.    public void addBuffer(String var1) {
  251.       if (this.tablaBuffer.get(var1) == null) {
  252.          this.tablaBuffer.put(var1, "");
  253.       }
  254.  
  255.    }
  256.  
  257.    public void datosBuffer(String var1, String var2) {
  258.       String var3 = (String)this.tablaBuffer.get(var1);
  259.       if (var3 != null) {
  260.          if (var3.length() > 1000 && var3.indexOf(10, 1000) > 0) {
  261.             var3 = var3.substring(0, var3.indexOf(10, 1000));
  262.          }
  263.  
  264.          var3 = var2 + "\n" + var3;
  265.          this.tablaBuffer.put(var1, var3);
  266.       } else {
  267.          this.display.setCurrent(new Alert("", var1 + Diccio.frase(5), (Image)null, AlertType.CONFIRMATION));
  268.          this.tablaBuffer.put(var1, var2);
  269.       }
  270.  
  271.    }
  272.  
  273.    public void recibido(String var1) {
  274.       try {
  275.          char var2 = var1.charAt(0);
  276.          if (this.estado == 0 && var2 == 'l') {
  277.             char var3 = var1.charAt(1);
  278.             if (var3 == 'a') {
  279.                this.nickUser = var1.substring(2);
  280.                this.ventanaEstado.mensaje(Diccio.frase(6) + this.nickUser);
  281.                this.estado = 1;
  282.                this.display.setCurrent(this.ventanaAccion);
  283.             } else if (var3 == 'e') {
  284.                this.ventanaEstado.mensaje(var1.substring(2));
  285.             }
  286.          }
  287.  
  288.          if (this.estado == 1) {
  289.             if (var2 == 'c') {
  290.                String var7 = var1.substring(1, var1.indexOf("@~#"));
  291.                String var4 = var1.substring(var1.indexOf("@~#") + 3);
  292.                this.datosBuffer(var7, var4);
  293.                if (var7.equals(this.actual)) {
  294.                   this.ventanaChat.setText((String)this.tablaBuffer.get(var7));
  295.                }
  296.             } else if (var2 == 'i') {
  297.                var1 = var1.substring(1).replace('%', '\n');
  298.                this.ventanaEstado.mensaje(var1);
  299.             }
  300.          }
  301.       } catch (IndexOutOfBoundsException var5) {
  302.       }
  303.  
  304.    }
  305.  
  306.    public void enviaChat(String var1) {
  307.       this.envia("c" + this.actual + "@~#" + var1);
  308.    }
  309.  
  310.    public void envia(String var1) {
  311.       if (this.out != null) {
  312.          try {
  313.             this.out.write(("z" + var1 + "\n").getBytes());
  314.             this.out.flush();
  315.          } catch (IOException var3) {
  316.             this.finTransmision();
  317.          }
  318.       } else {
  319.          this.finTransmision();
  320.       }
  321.  
  322.    }
  323.  
  324.    public void finTransmision() {
  325.       if (this.estado != 2) {
  326.          this.estado = 0;
  327.          this.ventanaEstado.mensaje(Diccio.frase(7));
  328.          this.display.setCurrent(this.ventanaEstado);
  329.       }
  330.  
  331.    }
  332. }
  333.