uniandes.cupi2.messengerAmigos.interfazCliente
Class InterfazClienteMessengerAmigos

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by uniandes.cupi2.messengerAmigos.interfazCliente.InterfazClienteMessengerAmigos
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, IInterfazCliente

public class InterfazClienteMessengerAmigos
extends javax.swing.JFrame
implements IInterfazCliente

Esta es la ventana principal de la aplicación.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
InterfazClienteMessengerAmigos(java.lang.String archivoConfiguracion)
          Construye la ventana e inicializa sus componentes
 
Method Summary
 void actualizarAmigos(java.util.Collection amigos)
          Actualiza la lista de amigos mostrada
 void actualizarEstadoInterfaz()
          Actualiza la interfaz según el estado de la conexión:
Se actualiza el título de la ventana y se activan o desactivan opciones de la barra de menú
 void agregarAmigo()
          Agrega un amigo al usuario actual.
 void crearVentanaConversacion(Conversacion conv)
          Crea una nueva ventana para una conversación
 void dispose()
          Cuando se cierra la ventana, se inicia el proceso de finalización de la aplicación
 void iniciarConexion()
          Inicia la conexión del cliente con el servidor:
pide al usuario que indique su nombre y luego se conecta al servidor.
 void iniciarConversacion(java.lang.String nombreAmigo)
          Inicia una nueva conversación con un amigo
 void iniciarFinalizacionAplicacion()
          Inicia el proceso de finalización de la aplicación.
static void main(java.lang.String[] args)
          Este método ejecuta la aplicación, creando una nueva interfaz
 void reqFuncOpcion1()
          Método para la extensión 1
 void reqFuncOpcion2()
          Método para la extensión 2
 void terminarAplicacion()
          Si se había solicitado que se terminara el programa, se cierra la ventana y la aplicación.
 void terminarConexion()
          Cierra la conexión del cliente con el servidor
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

InterfazClienteMessengerAmigos

public InterfazClienteMessengerAmigos(java.lang.String archivoConfiguracion)
                               throws java.lang.Exception
Construye la ventana e inicializa sus componentes

Parameters:
archivoConfiguracion - Es el nombre del archivo que contiene la configuración para el cliente
Throws:
java.lang.Exception - Se lanza esta excepción si hay problemas con el archivo
Method Detail

iniciarConexion

public void iniciarConexion()
Inicia la conexión del cliente con el servidor:
pide al usuario que indique su nombre y luego se conecta al servidor.


terminarConexion

public void terminarConexion()
Cierra la conexión del cliente con el servidor


iniciarFinalizacionAplicacion

public void iniciarFinalizacionAplicacion()
Inicia el proceso de finalización de la aplicación.
El cliente se debe desconectar y todas las conversaciones se deben terminar. Cuando esto se haya hecho entonces se cierra la ventana y la aplicación.
Si el cliente no estaba conectado entonces la aplicación simplemente se cierra.


terminarAplicacion

public void terminarAplicacion()
Si se había solicitado que se terminara el programa, se cierra la ventana y la aplicación.
pre:El cliente está desconectado del servidor y no hay conversaciones en curso.

Specified by:
terminarAplicacion in interface IInterfazCliente

dispose

public void dispose()
Cuando se cierra la ventana, se inicia el proceso de finalización de la aplicación

Overrides:
dispose in class java.awt.Window

actualizarEstadoInterfaz

public void actualizarEstadoInterfaz()
Actualiza la interfaz según el estado de la conexión:
Se actualiza el título de la ventana y se activan o desactivan opciones de la barra de menú

Specified by:
actualizarEstadoInterfaz in interface IInterfazCliente

actualizarAmigos

public void actualizarAmigos(java.util.Collection amigos)
Actualiza la lista de amigos mostrada

Specified by:
actualizarAmigos in interface IInterfazCliente
Parameters:
amigos - Una colección con los amigos (Usuario) del usuario - amigos != null

agregarAmigo

public void agregarAmigo()
Agrega un amigo al usuario actual. Este método debe pedirle al usuario que indique el nombre del amigo.
pre: El cliente está conectado


crearVentanaConversacion

public void crearVentanaConversacion(Conversacion conv)
Crea una nueva ventana para una conversación

Specified by:
crearVentanaConversacion in interface IInterfazCliente
Parameters:
conv - La conversación asociada a la nueva ventana - conv != null

iniciarConversacion

public void iniciarConversacion(java.lang.String nombreAmigo)
Inicia una nueva conversación con un amigo

Parameters:
nombreAmigo - El nombre del amigo con el que se va a iniciar la conversación - nombreAmigo != null

reqFuncOpcion1

public void reqFuncOpcion1()
Método para la extensión 1


reqFuncOpcion2

public void reqFuncOpcion2()
Método para la extensión 2


main

public static void main(java.lang.String[] args)
Este método ejecuta la aplicación, creando una nueva interfaz

Parameters:
args - Parámetros de ejecución. No son necesarios, pero si se usan el primero debe ser la ruta al archivo de configuración.