Le projet consiste à créer une application permettant de gérer un ensemble de fichiers mp3. Pour réaliser cette application il faut tout d'abord réaliser des composants génériques, puis les assembler pour obtenir l'application.
Les composants sont répartis en deux familles :
Le projet doit comporter au moins les composants précédents. Une solution devra être trouvée pour pouvoir éditer les composants Entite, Champ ou Liste à partir des composants vue.
Le but est d'assembler les composants développés dans la section précédente pour créer une application Java permettant de gérer une collection de fichiers mp3.
Voici la description Xml d'une collection :
<?xml version="1.0" encoding="UTF-8"?>
<mp3collection>
<touslestypes>
<typemusique><id>1</id><nom>jazz</nom></typemusique>
<typemusique><id>2</id><nom>rock</nom></typemusique>
<typemusique><id>3</id><nom>pour la voiture</nom></typemusique>
</touslestypes>
<collection>
<chanson>
<id>1</id>
<artiste>Michael Bublé</artiste>
<titre>It's time</titre>
<fichier>c:/Documents and setting/fab/Ma musique/mick.mp3</fichier>
<listetype>
<type>1</type>
<type>2</type>
<type>3</type>
</listetype>
</chanson>
<chanson>
<id>2</id>
<artiste>Madonna</artiste>
<titre>Confessions on a Dance Floor</titre>
<fichier>c:/Documents and setting/fab/Ma musique/mado.mp3</fichier>
<listetype>
<type>2</type>
<type>3</type>
</listetype>
</chanson>
</collection>
</mp3collection>
On remarque qu'une même chanson peut avoir plusieurs type d'ecoute : ainsi la chanson de Madonna (identifiant 2) a les types d'écoute 2 (rock) et 3 (pour la voiture).
Comme dans tous fichier XML les \ sont remplacés par des /
On y trouve quatre types de composants Entite : le type de musique, la collection, la chanson, la liste des types.
Voici deux composants utilisés pour décrire un type de musique : un identifiant (balise id), le nom. Une collection possède un champ qui est une liste de chansons. Une chanson possède 5 champs :
<?xml version="1.0" encoding="UTF-8"?>
<assemblage>
<!-- définition d'un type de musique -->
<objet nom="typemusique">
<!-- donne le nom du type de musique -->
<champ nom="id" type="nombre"/>
<champ nom="nom" type="textuel"/>
</objet>
<!-- référence à un type de musique -->
<objet nom="typemusique_ref">
<!-- donne le nom du type de musique -->
<champ nom="id" type="reference" objet="typemusique"/>
</objet>
<!-- définition d'une chanson -->
<objet nom="chanson">
<!-- donne les attributs de la chanson -->
<champ nom="id" type="nombre"/>
<champ nom="artiste" type="textuel"/>
<champ nom="titre" type="textuel"/>
<champ nom="fichier" type="textuel"/>
<liste nom="listetype" objet="typemusique_ref"/>
</objet>
<!-- définition d'une collection de mp3-->
<objet nom="mp3collection">
<liste nom="touslestypes" objet="typemusique"/>
<liste nom="collection" objet="chanson"/>
</objet>
</assemblage>