uniandes.cupi2.messengerAmigos.cliente
Class Conversacion

java.lang.Object
  extended by uniandes.cupi2.messengerAmigos.cliente.Conversacion

public class Conversacion
extends java.lang.Object

Esta clase representa una conversación que se está llevando a cabo entre dos usuarios


Field Summary
static java.lang.String CONVERSACION_TERMINADA
          Mensaje que se usa para indicar que se aceptó el fin de la conversación
static java.lang.String MENSAJE
          Mensaje que se usa para indicar el inicio de un mensaje enviado dentro de una conversación
static java.lang.String TERMINAR
          Mensaje que se usa para indicar que se quiere terminar la conversación
 
Constructor Summary
Conversacion(IClienteMessenger cliente, int puerto, java.lang.String amigo)
          Crea una nueva conversación.
Conversacion(IClienteMessenger cliente, Usuario amigo)
          Crea una nueva conversación
El amigo fue el que inició la conversación, así que es necesario abrir una conexión hasta el cliente del amigo.
 
Method Summary
 void cambiarVentanaConversacion(IVentanaConversacion ventana)
          Establece la ventana asociada a esta conversación, en la cual se deben mostrar tanto los mensajes enviados por el usuario local como los mensajes enviados por el amigo.
 boolean conversacionTerminada()
          Indica si la conversación ya fue marcada como terminada
 java.lang.String darNombreAmigo()
          Retorna el nombre del amigo con el que se está llevando a cabo la conversación
 void enviarConfirmacionTerminarConversacion()
          Envía un mensaje al amigo confirmando que la conversación será terminada
 void enviarMensaje(java.lang.String mensaje)
          Envía al amigo un mensaje y lo muestra en la ventana de la conversación
 boolean estaConectada()
          Indica si la conversación está conectada
 void mostrarMensajeRecibido(java.lang.String mensaje)
          Muestra en la ventana de la conversacion un mensaje enviado por el amigo
 void terminar()
          Envia un mensaje al amigo diciendo que se quiere terminar la conversación
 void terminarConversacion()
          Termina la conversacion, cerrando la conexión con el amigo y la ventana.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MENSAJE

public static final java.lang.String MENSAJE
Mensaje que se usa para indicar el inicio de un mensaje enviado dentro de una conversación

See Also:
Constant Field Values

TERMINAR

public static final java.lang.String TERMINAR
Mensaje que se usa para indicar que se quiere terminar la conversación

See Also:
Constant Field Values

CONVERSACION_TERMINADA

public static final java.lang.String CONVERSACION_TERMINADA
Mensaje que se usa para indicar que se aceptó el fin de la conversación

See Also:
Constant Field Values
Constructor Detail

Conversacion

public Conversacion(IClienteMessenger cliente,
                    int puerto,
                    java.lang.String amigo)
             throws java.io.IOException
Crea una nueva conversación.
El usuario local fue el que inicio la conversación, así que se debe crear un socket y esperar a que el amigo se conecte.

Parameters:
cliente - Es el cliente en el cual se creó esta conversación - cliente != null
puerto - Es el puerto en el cual se debe esperar la conexión del amigo
amigo - El nombre del amigo con el que se va a realizar la conversación - amigo != null
Throws:
java.io.IOException - Se lanza esta excepción si hay problemas estableciendo la comunicación con el amigo

Conversacion

public Conversacion(IClienteMessenger cliente,
                    Usuario amigo)
             throws java.io.IOException
Crea una nueva conversación
El amigo fue el que inició la conversación, así que es necesario abrir una conexión hasta el cliente del amigo.

Parameters:
cliente - Es el cliente en el cual se creó esta conversación - cliente != null
amigo - Es la información que se tiene sobre el amigo que inició la conversación - amigo != null
Throws:
java.io.IOException - Se lanza esta excepción si hay problemas estableciendo la comunicación con el amigo
Method Detail

estaConectada

public boolean estaConectada()
Indica si la conversación está conectada

Returns:
true si ya está conectada

cambiarVentanaConversacion

public void cambiarVentanaConversacion(IVentanaConversacion ventana)
Establece la ventana asociada a esta conversación, en la cual se deben mostrar tanto los mensajes enviados por el usuario local como los mensajes enviados por el amigo.

Parameters:
ventana - La ventana en la que se publicarán los mensajes - ventana != null

conversacionTerminada

public boolean conversacionTerminada()
Indica si la conversación ya fue marcada como terminada

Returns:
conversacionTerminada

darNombreAmigo

public java.lang.String darNombreAmigo()
Retorna el nombre del amigo con el que se está llevando a cabo la conversación

Returns:
nombreAmigo

enviarMensaje

public void enviarMensaje(java.lang.String mensaje)
Envía al amigo un mensaje y lo muestra en la ventana de la conversación

Parameters:
mensaje - El mensaje que será enviado al amigo - mensaje != null

mostrarMensajeRecibido

public void mostrarMensajeRecibido(java.lang.String mensaje)
Muestra en la ventana de la conversacion un mensaje enviado por el amigo

Parameters:
mensaje - El mensaje que fue recibido - mensaje != null

terminar

public void terminar()
Envia un mensaje al amigo diciendo que se quiere terminar la conversación


enviarConfirmacionTerminarConversacion

public void enviarConfirmacionTerminarConversacion()
Envía un mensaje al amigo confirmando que la conversación será terminada


terminarConversacion

public void terminarConversacion()
Termina la conversacion, cerrando la conexión con el amigo y la ventana.
pre: No hay nadie leyendo o escribiendo en el socket