240 likes | 390 Views
Java avancé. Gestion de mp3 http://code.google.com/p/gestionmp3. Karim Hajy. Packages. 2 packages : Composants (indépendant de Gdm): composants génériques Gdm (gestion de musique): spécialisé dans la gestion de mp3. Composants génériques.
E N D
Java avancé Gestion de mp3 http://code.google.com/p/gestionmp3 Karim Hajy
Packages • 2 packages : • Composants (indépendant de Gdm): composants génériques • Gdm (gestion de musique): spécialisé dans la gestion de mp3
Composants génériques But du package composants: Réaliser des composants génériques
Composants de base : • Trois composants ``modèle'' permettant de décrire la structure des données : • Champ.java • Entite.java • Liste.java
Structures de base : Champ /* table de hash a 2 dimensions , la clé est le nom d une table de hash 'element' les valeurs sont des tables de hash */
Interface: IComposants public String getNom(); public void setNom(String nom); public String toXML(); public DefaultMutableTreeNode createRootNode(); public DefaultMutableTreeNode addTreeNode(DefaultMutableTreeNode n); public JPanelView getPanelView(); implements Liste Entite Champ
public String getNom(); • Renvoie le nom du Composant • public void setNom(String nom); • Fixe le nom du Composant • public String toXML(); • Affiche le composant sous forme XML , appelle récursivement la méthode sur ses fils , le type des fils étant détecté dynamiquement à l'execution. • public DefaultMutableTreeNode createRootNode(); • Permet de créer un arbre ayant pour racine le composant en question. • L'avantage est qu'un dmtn joue à la fois le rôle de modele et de vue (possibilité affichage Jtree) • public DefaultMutableTreeNode addTreeNode(DefaultMutableTreeNode n); • Permet de créer un sous-arbre ayant pour racine le composant avec pour parent le noeud n • public JPanelView getPanelView(); • permet d afficher le composant graphiquement • de l editer,sauvegarder,ouvrir etc... • et on peut acceder a la correspondance reference-id via une table static dans Champ.
Composants : • JpanelView.java • LireEcrireXml.java
JPanel • JpanelView • //Attributs • /**Composant a afficher*/ • public IComposants composant=null; • /**Arbre JTree representant la structure en ram de mon arbre issu d un fichier xml*/ • JTree monArbre=null; • /**Noeud selectionne dans le JTree*/ • public static DefaultMutableTreeNode selectedNode = new DefaultMutableTreeNode(); • //Methodes • JPanelView(IComposants c) • void makeGui(DefaultMutableTreeNode racine)
LireEcrireXML static String xmlFileIn= « default_test.xml » public static IComposants readXMLFile(String xmlFileToOpen) public static IComposants readXMLFile(String xmlFileToOpen,String type) public static Node getRootChild(String xmlFileToOpen) public static void ecrireXML(String outputFile, IComposants c)
Composants: TestComposants • Sert à tester les composants • Afficher,ecrire,modifier,ouvrir, gestion des id ref • On peut faire ces dernieres opérations sur N IMPORTE QUEL FICHIER XML puisque c'est TOTALEMENT GENERIQUE ...
Gestion de Musique C'est un cas particulier : On veut pouvoir en plus ajouter des chansons et des types de musiques
Gestionnaire de musique package gdm Que de l interface graphique et qques appels de methodes de IComposants !
FenetreGestion /**Composant , ici representant une collection de mp3*/ IComposants composant =LireEcrireXml.readXMLFile(""); /*Panel edition */ JPanelView jpv = null; /*Panel edition */ JPanelChanson jpc = null; /*Panel edition */ JPanelTypeMusique jptm = null;
On peut tout modifier : liste , entite , champ Le rafraichaîssiment est automatique ...