/**
* Programación II. Semestre primavera 2011.
*
* Práctica 3.
*
* Programa principal de la aplicación de correo electrónico.
*
* @version 1.0
* @author Rodrigo Linares Hernandez
*/
import java.util.*;
public class AplicacionCorreo {
private static Scanner teclado;
static final int MAX = 20;
/**
* @param args Argumentos del programa.
*/
public static void main(String[] args) {
Estafeta estafeta;
teclado = new Scanner(System.in);
estafeta = new Estafeta();
menuPrincipal(estafeta);
}
private static void menuPrincipal(Estafeta estafeta) {
char opcion;
String nombreBuzon;
Buzon buzon;
do {
System.out.println("\nMENÚ PRINCIPAL");
System.out.println("==============\n");
System.out.println("A - Abrir un buzón");
System.out.println("C - Crear un buzón");
System.out.println("L - Crear una lista de correo");
System.out.println("R - Crear un buzón robotizado");
System.out.println("E - Eliminar un buzón");
System.out.println("S - Salir del programa");
System.out.print("\nIntroduzca una opción: ");
opcion = (teclado.nextLine() + " ").toUpperCase().charAt(0);
System.out.println();
switch(opcion) {
case 'A':
System.out.println("ABRIR UN BUZÓN\n");
System.out.print("Nombre del buzón: ");
nombreBuzon = teclado.nextLine();
buzon = null;
buzon = estafeta.abrirBuzon(nombreBuzon);
if (buzon != null)
menuBuzon(estafeta, buzon);
else
System.out.println("El buzón no existe.");
break;
case 'C':
System.out.println("CREAR UN BUZÓN\n");
System.out.print("Nombre del buzón: ");
nombreBuzon = teclado.nextLine();
if(estafeta.crearBuzon(nombreBuzon))
System.out.println("Buzon creado correctamente.");
else
System.out.println("No se a podido crear el buzon");
break;
case 'L':
System.out.println("CREAR UNA LISTA DE CORREO\n");
System.out.print("Nombre de la lista: ");
nombreBuzon = teclado.nextLine();
System.out.print("Miembros de la lista: (Escribalos todos en la misma linea separados por espacios)");
String c = teclado.nextLine();
String[] miembros = c.split(" ");
if( estafeta.crearListaCorreo(nombreBuzon,miembros))
System.out.println("Lista creada correctamente.");
else
System.out.println("No se a podido crear la lista");
break;
case 'R':
System.out.println("CREAR UN BUZÓN ROBOTIZADO\n");
System.out.print("Nombre del buzón: ");
nombreBuzon = teclado.nextLine();
if( estafeta.crearBuzonRobotizado(nombreBuzon))
System.out.println("Buzon creado correctamente.");
else
System.out.println("No se a podido crear el buzon");
break;
case 'E':
System.out.println("ELIMINAR UN BUZÓN\n");
System.out.print("Nombre del buzón: ");
nombreBuzon = teclado.nextLine();
if(estafeta.destruirBuzon(nombreBuzon))
System.out.println("Buzon eliminado correctamente.");
else
System.out.println("No se a podido eliminar el buzon");
break;
}
} while (opcion != 'S');
System.out.println("SALIR DEL PROGRAMA\n");
}
private static void menuBuzon(Estafeta estafeta, Buzon buzon) {
char opcion;
int numMensaje;
do {
System.out.println("\nMENÚ DEL BUZÓN");
System.out.println("==============\n");
System.out.println("L - Listar mensajes");
System.out.println("V - Ver un mensaje");
System.out.println("B - Borrar un mensaje");
System.out.println("E - Escribir un mensaje");
System.out.println("S - Cerrar el buzón");
System.out.print("\nIntroduzca una opción: ");
opcion = (teclado.nextLine() + " ").toUpperCase().charAt(0);
System.out.println();
switch(opcion) {
case 'L':
System.out.println("LISTAR MENSAJES\n");
// Listar los mensajes (de, para, asunto).
for(int i=1;i<MAX;i++){
System.out.println("Mensaje " +i+ " :");
System.out.println("De: " + buzon.aMensaje[i].getDe() + "." );
System.out.println("Para: " + buzon.aMensaje[i].getPara() + "." );
System.out.println("Asunto: " + buzon.aMensaje[i].getAsunto() + "." );
}
break;
case 'V':
System.out.println("VER UN MENSAJE\n");
System.out.print("Número del mensaje: ");
numMensaje = teclado.nextInt();
Mensaje mens = buzon.getMensaje(numMensaje);
System.out.println("De: " + mens.getDe() + "." );
System.out.println("Para: " + mens.getPara() + "." );
System.out.println("Asunto: " + mens.getAsunto() + "." );
System.out.println("Texto: " + mens.getTexto() + "." );
// Obtener el mensaje y mostrarlo por pantalla (de, para, asunto, texto).
break;
case 'B':
System.out.println("BORRAR UN MENSAJE\n");
System.out.print("Número del mensaje: ");
numMensaje = teclado.nextInt();
if(buzon.borrarMensaje(numMensaje))
System.out.println("Mensaje eliminado correctamente.");
else
System.out.println("No se a podido eliminar el mensaje");
// Borrar el mensaje.
break;
case 'E':
System.out.println("ESCRIBIR UN MENSAJE\n");
System.out.println("Escriba el destinatario");
String para=teclado.nextLine();
System.out.println("Asunto: ");
String asunto=teclado.nextLine();
System.out.println("Texto: ");
String texto=teclado.nextLine();
Mensaje mensaje = new Mensaje(buzon.getNombre(),para,asunto,texto);
if(estafeta.enviarMensaje(mensaje,para))
System.out.println("Mensaje enviado correctamente.");
else
System.out.println("No se a podido enviar el mensaje");
// Preguntar los campos del mensaje (de, para, asunto, texto) y enviarlo a través de la estafeta, informando del resultado del envío.
break;
}
} while (opcion != 'S');
System.out.println("CERRAR EL BUZÓN\n");
}
}