Comando
vcAdmin

Sintaxis
java vcAdmin<nombre archivo de videos>

Archivos Relacionados
vcAdmin.java
vcframe.java
frameayuda.java
Makefile
videos.txt

Este programa permite desplegar en pantalla una lista de videos obtenida desde el archivo videos.txt (o del archivo cuyo nombre se haya ingresado al ejecutar el programa). Siempre es necesario ingresar un nombre de archivo como parámetro. sin embargo, el archivo puede no existir. Si no existe, el programa crea un archivo, pero siempre es necesario ingresar un nombre. El programa muestra la lista de nombres de los videos. Al presionar con el mouse en un nombre, se muestra la duración del video.
Además, el programa permite agregar y eliminar videos de la lista. Para esto, el menú archivo del programa cuenta con los ítemes Agregar video  y Eliminar video. Al presionar en Agregar Archivo, se muestra un cuadro de dialogo para seleccionar el archivo de video que se quiere agregar dentro del sistema de archivos. Si se selecciona un archivo, se pregunta luego por su duración. Si se presiona en eliminar video, el video que esta seleccionado en la lista se borra.
El menu Archivo cuenta además con el item Guardar cambios. Esta opción permite guardar los cambios realizados en la lista en el archivo ingresado como parámetro.
El menu Archivo cuenta además con la opción Salir, que permite abandonar el programa. Al salir, se pregunta si se desea guardar los cambios en caso de que no se hayan guardado.
El menú ayuda contiene el item Documentación, que permite visualizar esta página.
 
 

Principales Clases Utilizadas

vcAdmin

La clase vcAdmin se encarga de inicializar el frame donde se desarrolla la aplicación. Además, lee el archivo de videos ingresado como parámetro, y entrega los datos obtenidos de él al frame. Básicamente, vcAdmin se encarga de crear un objeto de la clase vcframe que se define más adelante

vcframe

vcframe es la clase principal del proyecto. vcframe es el frame que contiene la lista de videos, los labels para indicar la duración y los menús que permiten realizar las acciones. vcframe define primero los distintos componentes de la ventana. Luego, el método constructor asigna a variables locales las variables recibidas desde vcAdmin (la información del archivo de videos).  Luego se llama al método jb_init, que inicializa todas las componentes (fonts, tamaños etc...) y donde se agregan las componentes al frame principal.
Se definen también los métodos que responderán a las distintas acciones que se pueden realizar (seleccionar elementos de la lista, activar los items del menú, etc...).

frameayuda

frame ayuda es una clase que permite desplegar la información de esta documentación. Para esto, frameayuda contiene un jEditorPane, el cual acepta en su construcción una URL, y puede desplegar páginas HTML en pantalla.

JList

JList es una clase que permite desplegar una lista en pantalla. En este caso, se crea una instancia de JList a la cual se le entrega como parámetro la lista de nombres de los videos. JList puede responder a acciones de seleccion de los elementos de la lista, lo cual se aprovecha para mostrar la duración de un video cuando es seleccionado. En este caso, el encargado de responder a las acciones de seleccion es vcframe, que implementa ListSelectionListener. Dentro de vcframe se define el método valueChanged que permite reaccionar ante selecciones en la lista.En este caso, el objeto de tipo JList se agrega a un objeto de tipo JScrollPane para que la lista tenga Barras de desplazamiento

DefaultListModel

Cada tipo de datos leído del archivo es ingresado a un objeto de la clase DefaultListModel. Esta clase permite definir una lista de objetos, en este caso Strings, y tiene la ventaja que contiene métodos que permiten realizar distintas acciones con ella. Por ejemplo, es posible agregar y quitar objetos en forma arbitraria de la lista, y además es una lista de tamaño variable. Tiene la ventaja también que puede ser ingresada como argumento a un objeto de la clase JList, el cual despliega automáticamente la lista en pantalla.

JEditorPane

Esta clase se utiliza para desplegar este archivo en pantalla al ingresar al menú de ayuda. Sólo es necesario ingresar el URL del archivo HTML que se quiere  mostrar, mediante el método setPage(URL). El objeto de tipo JEditorPane se agrega u un objeto de tipo JScrollPane para que la página pueda verse con barras de despla zamiento

GridBagLayout
Se crea un objeto de esta clase que define el layout de vcframe. este Layout permite que los componentes del frame ajusten dinámicamente su tamáño y posición de acuerdo al tamaño de la ventana. Asociado a esta clase, se crea un objeto del tipo GridBagConstraints, el cual contiene las restricciones con las cuales son desplegados los componentes en pantalla.

A continuación se muestra un diagrama del funcionamiento del programa, y la interacción entre los distintos componentes.