Descripción del diseño del sistema

Anuncio
30 Mayo 2011
[DHMO]
Descripción del diseño del sistema
Descripción general del diseño del sistema
DIAGRAMA DE CLASES UML DEL PROYECTO
2
Error! Use the Home tab to apply Título to the text that yo
Descripción general del diseño del sistema
DESCRIPCIÓN DE CLASES
Main.java
Detecta si se ha introducido una canción como parámetro y dependiendo de eso inicializa un objeto
PlayerWindow por defecto o con ese parámetro.
PlayerWindow.java
Se encarga de gestionar toda la parte visual del reproductor y de la lista de reproducción. Así
mismo desde esta clase se accede a la biblioteca y al editor de tags.
Player.java
Enlaza la librería del reproductor con la parte visual, implementando los métodos típicos de un
reproductor de música.
ListaReproducción.java
Contiene dos listas, una con las canciones en el orden en el que se añadieron y otra con el orden de
la reproducción de la lista. Cuando el reproductor tiene desactivada la opción de aleatorio las dos listas son
iguales, pero al activar la opción de aleatorio la segunda se ordena aleatoriamente.
Biblioteca Window
Representa gráficamente las funcionalidades de la biblioteca. Utiliza un árbol de categorías para
navegar por las canciones. Utiliza una tabla para visualizar el contenido de las categorías seleccionadas,
cada celda corresponde a un campo, y soportan ordenación alfabética por cada uno de esos campos. La
pestaña búsqueda devuelve de forma dinámica los archivos que concuerdan con los elementos buscados y
los posiciona en a tabla.
EditorTagsWindow
Representa la vista de la clase editor, cuyo único método se alimenta de los campos de texto de
esta ventana.
ConfigBibliotecaWinwow
sirve como contenedor de los directorios a explorar por la biblioteca, permitiendo añadir y borrar
de esta lista.
Album.java
Representa el álbum de una canción.
Artista.java
Representa el artista de una canción.
Biblioteca.java
Se encarga del funcionamiento de la biblioteca.
Cancion.java
Contiene todos los datos (título, género, artista, álbum, códec, año, bitrate, canales, pista, duración,
ruta, tamaño y carátula) de una canción.
EditorTags.java
Se encarga de sobrescribir los tags de una canción.
ElementoBiblioteca.java
Clase de la que heredan los elementos álbum, genero y artista.
3
Error! Use the Home tab to apply Título to the text that yo
Descripción general del diseño del sistema
Genero.java
Representa el género de una canción.
Hilo.java
Esta clase hereda de Thread. Implementa un hilo de ejecución cuyo cometido es cargar en la
biblioteca una lista de archivos o directorios.
LectorSAX.java
Clase que implementa un párser con SAX para construir un objeto biblioteca desde un xml.
LectorTags.java
Clase que proporciona los métodos para construir canciones desde archivos de audio leyendo su
meta-información de las etiquetas en el archivo.
DESCRIPCIÓN DE LA ESTRUCTURA XML DE LA BIBLIOTECA
El XML generado de la Biblioteca de DHMO se estructura de la siguiente manera:

Primero una lista con todos los géneros de música que hay disponibles en la Biblioteca. Dicha lista
comienza con la etiqueta <generos> y finaliza con </generos>. Cada género viene definido por las
etiquetas <genero> y </genero>, de la siguiente manera:
<generos>
<genero> Genero 1 </genero>
<genero> Genero 2 </genero>
<genero> Genero 3 </genero>
<genero> Genero 4 </genero>
<genero> Genero .. </genero>
<genero> Genero n </genero>
</generos>

A continuación comienza una lista de artistas, que contiene todos los artistas disponibles en la
Biblioteca. Dicha lista viene etiquetada con los campos <artistas> y finaliza con </artistas>.
Dentro de este listado de artistas, cada artista está identificado unívocamente con las etiquetas
<artista nombre="nombre_de_artista”> y </artista>.
<artistas>
<artista nombre="artista 1">
//info artista 1
</artista>
<artista nombre="artista 2">
//info artista 2
</artista>
<artista nombre="artista n">
//info artista n
</artista>
</artistas>
4
Error! Use the Home tab to apply Título to the text that yo
Descripción general del diseño del sistema

Cada artista, además, contiene todos los álbumes que le pertenecen, identificados con <album
nombre="nombre_de_album"> y </album>.
<artista nombre ="artista n">
<album nombre="album 1">
//info album 1
</album>
<album nombre="album 2">
//info album 2
</album>
<album nombre="album n">
//info album n
</album>
</artista>

Cada álbum contiene todas las canciones incluidas en él y que estén en la biblioteca, identificados
por las etiquetas <cancion> y </cancion> y la ruta donde estan localizadas
<album nombre ="album n">
<cancion path="path 1">
//info cancion 1
</album>
<cancion path="path 2">
//info cancion 2
</album>
<cancion path="path n">
//info cancion n
</album>
</album>

Para finalizar, cada canción contiene su respectiva información, es decir, los TAGs entre las
correspondientes etiquetas <titulo>, <codec>, <canales>, <bitrate>, <duracion>, <pista>, <anio>,
<genero> y sus cierres correspondientes, de la siguiente manera:
<cancion path = "path n">
<titulo> nombre_titulo </titulo>
<codec> nombre_codec </codec>
<canales> num_canales </canales>
<bitrate> tipo_bitrate </bitrate>
<duracion> duracion_cancion </duracion>
<pista> num_pista </pista>
<anio> num_anio </anio>
<genero> nombre_genero </genero>
</cancion>
5
Error! Use the Home tab to apply Título to the text that yo
Descripción general del diseño del sistema
DESCRIPCIÓN DE LA ESTRUCTURA XML DE LA BIBLIOTECA: EJEMPLO
<?xml version="1.0"?>
<biblioteca>
<generos>
<genero><![CDATA[Punk]]></genero>
<genero><![CDATA[Drum & Bass]]></genero>
<genero><![CDATA[Alternative Rock]]></genero>
<genero><![CDATA[Pop]]></genero>
</generos>
<artistas>
<artista nombre="Blink 182">
<album nombre="Dude Ranch">
<cancion path="C:\hlocal\Blink-182-Dammit.mp3">
<titulo><![CDATA[Dammit]]></titulo>
<codec><![CDATA[MPEG-1 Layer 3]]></codec>
<canales><![CDATA[Joint Stereo]]></canales>
<bitrate><![CDATA[128]]></bitrate>
<duracion><![CDATA[165.0]]></duracion>
<pista><![CDATA[]]></pista>
<anio><![CDATA[97]]></anio>
<genero><![CDATA[Punk]]></genero>
</cancion>
</album>
</artista>
<artista nombre="Pendulum">
<album nombre="Immersion">
<cancion path="C:\hlocal\Pendulum-Watercolour.mp3">
<titulo><![CDATA[Watercolour]]></titulo>
<codec><![CDATA[MPEG-1 Layer 3]]></codec>
<canales><![CDATA[Joint Stereo]]></canales>
<bitrate><![CDATA[320]]></bitrate>
<duracion><![CDATA[288.0]]></duracion>
<pista><![CDATA[1]]></pista>
<anio><![CDATA[2010]]></anio>
<genero><![CDATA[Drum & Bass]]></genero>
</cancion>
</album>
</artista>
<artista nombre="System Of A Down">
<album nombre="Chop Suey (Promo CD Single)">
<cancion path="C:\hlocal\System-of-a-Down-Chop-Suey.mp3">
<titulo><![CDATA[Chop Suey]]></titulo>
<codec><![CDATA[MPEG-1 Layer 3]]></codec>
<canales><![CDATA[Stereo]]></canales>
<bitrate><![CDATA[128]]></bitrate>
<duracion><![CDATA[211.0]]></duracion>
<pista><![CDATA[1]]></pista>
<anio><![CDATA[2001]]></anio>
<genero><![CDATA[Alternative Rock]]></genero>
</cancion>
</album>
</artista>
<artista nombre="The Corrs">
<album nombre="Unplugged">
<cancion path="C:\hlocal\The-Corrs-Toss-The-Feathers.mp3">
<titulo><![CDATA[Toss The Feathers]]></titulo>
<codec><![CDATA[MPEG-1 Layer 3]]></codec>
<canales><![CDATA[Stereo]]></canales>
<bitrate><![CDATA[320]]></bitrate>
<duracion><![CDATA[194.0]]></duracion>
<pista><![CDATA[4]]></pista>
<anio><![CDATA[2000]]></anio>
<genero><![CDATA[Pop]]></genero>
</cancion>
</album>
</artista>
</artistas>
</biblioteca>
6
Error! Use the Home tab to apply Título to the text that yo
Descargar