Diseño

Se creó una clase Event que contiene todas las características del evento, su descripción, su fecha, su frecuencia, la fecha a la cual el usuario quiere que le sea recordado… En el archivo eventos.dat, es un ArrayList de Event que se almacena.

Se implemento también una clase MemoryHandler que se encarga de leer el archivo de dato y de ponerlo al día.
Por otro lado la clase DatePanel implementa la representación grafica de un calendario que se puede reutilizar.

Se utiliza una primera vez en el AgendaFrame que es la interfaz grafica que aparece al iniciar la aplicación. Esta clase es vinculada a la clase MemoryHandler, lo que permite así hacer aparecer en color las fechas de los eventos, y conocer el contenido de estos al pasar el Mouse sobre las dichas fechas.

-Ventana de la Clase AgendaFrame:

Para poder ingresar nuevo eventos, se implementó la clase UpdateFrame. Es una ventana que aparece a presionar una fecha del AgendaFrame y que propone varias opciones para el nuevo evento: su frecuencia, la color con la cual va a aparecer en el calendario, si se quiere que le sea recordado y a cual fecha. Esta misma clase permite borrar un evento. Por supuesto esta clase está vinculada con la clase MemoryHandler.

-Ventana de la Clase UpdateFrame:

La clase DatePanel está reutilizada para implementar la clase ChooseFrame que sirve para escoger la fecha a la cual será recordado el evento. Esta clase hace aparecer una ventana con un calendario al presionar el botón con una campana en la ventana del UpdateFrame. Basta con presionar una fecha para hacer desaparecer ésta ventana y grabar la fecha de recuerdo del evento.

Los vínculos entre éstas varias clase se puede apreciar mediante el diagrama UML siguiente:

Para el programa encargado de recordar al usuario los eventos al inicio de Windows, se implementó una clase CheckDate que compara la fecha del día con las fechas almacenadas en el archivo eventos.dat. Por eso, ésta clase debe estar vinculada con la clase MemoryHandler.

Si una o varias fechas corresponden, aparece una ventana que avisa el usuario de los próximos eventos. El código de esta ventana está en la clase AlarmFrame.

Los vínculos entre estas clase se describe en el diagrama UML siguiente:


Dos tarjetas CRC del proyecto podrían ser las siguientes:

MemoryHandler

updateMemory()            Event
getEvent()                     AgendaPanel
deleteEvent()                 UpdateFrame


AgendaPanel

showDate()                MemoryHandler
showUpdateFrame()    UpdateFrame

 

El diagrama de secuencia UML de la aplicación CheckDate se muestra a continuación: