/** * *

Titulo: Servidor de respuestas a preguntas

*

Descripcion: Este programa permite mostrar y gestionar acciones del menu * y recepcionar las respuestas a esta. *

* @author Diego Gonzalez Barrientos * @version 1.0 */ //Paquete en el que se encapsula todo el codigo del servidor package servidorpreguntas; import java.util.Vector; import java.io.*; /**Basicamente administra el menu que se imprime en la linea de comandos. *Por lo tanto permite el manejo de eventos */ public class MessageUI { public void addCommand( String s ) { commands.add( s ); } /**Metodo Constructor. *@param l Referencia a objeto que se hara cargo de los eventos */ public void setCommandListener( CommandListener l ) { listener = l; } /**Metodo principal de la clase. Muestra en pantalla el menu. Y espera respuestas a traves de la entrada estandar */ public void showui() { for ( int i=0; i< commands.size(); i++ ) { String s = (String) commands.elementAt( i ); System.out.println("["+i+"]"+s); } Thread t = new Thread() { public void run() { // we need to wait for user input from console, // so fork a new thread to be blocked try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String s = in.readLine(); if ( listener != null ) listener.commandAction( (String)commands.elementAt(Integer.parseInt(s)), MessageUI.this); } catch (Exception e) { e.printStackTrace(); } } }; t.start(); } /** Vector de Strings */ Vector commands = new Vector(); // Vector of String /**Referencia a receptor de eventos */ protected CommandListener listener = null; }