Conception & Mod elisation de l'applet VALPO d'illustration de protocoles gsm
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Conception & Modélisation de l’applet VALPO d’illustration de protocoles gsm Télécom Bretagne Projet INVOCOM Département Réseaux, Sécurité, Multimédia Avril-Juillet 2004 Rédacteurs : Télécom Bretagne Xavier Lagrange 2 rue de la Chataigneraie -CS 17607 Jean-Pierre Le Narzul 35576 Cesson-Sévigné Cedex France Alexis Koalla
TABLE DES MATIÈRES Document de Conception Table des matières 1 Introduction 3 2 Nomenclature des classes 4 2.1 Nomenclature des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Organisation du code source 5 3.1 Vue générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Zoom sur les différents packages . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1 Le package applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 Le package general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Le package gui[control,model,dialog et pane] . . . . . . . . . . . . . . . . . . . 7 3.4 Description des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4 Conception 11 4.1 Le modèle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Exemple de modèle MVC tiré du code . . . . . . . . . . . . . . . . . . . . . . 12 5 Conclusion 13 A Annexes 14 A.1 Description des algorithmes principaux de l’illustrateur de protocoles GSM/UMTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 A.1.1 Algorithme de lecture du fichier scénario . . . . . . . . . . . . . . . . . 14 A.1.2 Algorithme d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 A.1.3 Algorithme de controle . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 A.1.4 La barre de défilement . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 A.2 Description des classes par ordre alphabétique . . . . . . . . . . . . . . . . . . 16 ENST- Bretagne 1 Projet INVOCOM
TABLE DES FIGURES Figures Table des figures 3.1 Vue des packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1 Le modèle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Exemple de modèle MVC tiré du code . . . . . . . . . . . . . . . . . . . . . . . 12 ENST- Bretagne 2 Projet INVOCOM
Introduction 1 Introduction Le Projet INVOCOM vise à concevoir et à développer des enseignements à distance à travers Internet. Le présent document décrit la conception et la modélisation des applets développés dans le cadre de ce projet. Les applets réalisés s’appuient sur du code existant écrit dans le cadre des activités du département RSM. La conception a consisté en la mise en place d’une structure du code source grâce à une technique de conception orientée objet. Cette structure qui n’existait pas dans la version antérieure du logiciel. Nous avons utilisé le modèle MVC(Model View Controller) afin de permettre une meilleure lisibilité du code, et une meilleure extensibilité et de facilité la maintenance du logiciel. La description de ce modèle est donnée dans la section4. La modélisation a consisté en l’identification d’une part des classes, de leurs méthodes et de leurs attributs et d’autre part des relations qui les lient. Le planning ne nous permettant pas de faire une modélisation complète, nous nous sommes limités à la génération des diagrammes de classes. Ce présent document se structure comme suit : la section 2 décrit toutes les classes développées : nomenclature et rôles La section 3 décrit l’organisation du code, notamment les différents packages des codes sources. La section 4 décrit brièvement la conception et la modélisation. ENST- Bretagne 3 Projet INVOCOM
Description des classes 2 Nomenclature des classes Ce paragraphe décrit les différentes classes codées. 2.1 Nomenclature des classes Les noms des classes sont choisis de manière à évoquer leurs rôles. Par exemple : 1. la plupart des classes qui héritent de la classe JPanel se termine par Pane et sont situées dans le package gui.pane. 2. la plupart des classes qui implémentent un contrôleur se termine par Controller et sont situées dans le package gui.control Les paragraphes suivants donnent une vue de chaque package, et un petit descriptif des classes qu’il contient. Les classes non décrites dans le paragraphe ne font pas partie du package ; ils appartiennent à un autre package. une description par ordre alphabétique de toutes les classes est donnée en annexe A. ENST- Bretagne 4 Projet INVOCOM
Organisation du code 3 Organisation du code source 3.1 Vue générale Comme tout projet Java, les classes du projet ont été organisées en packages. Chaque package contient un certain nombre de classes qui ont en général soit des rôles similaires soit des relations de dépendances directes. Des vues de ces packages ont réalisées dans le but de simplifier la lisibilité des diagrammes. La figure 3.1 donne une vue globale des packages. implements implements Language JMenuBar ProtocolController JFrame JApplet ActionListener 1 SimuPopMenu 1 PopUpListener 1 ScenarioMenu ProtocolFrame ProtocolIllustrator 1 1 1 PopUpMenuController MenuController 1 ScenarioDisplayerModel ProtocolGUIController HelpFrame ScenarioFrame PDUFrame 1 1 1 1 1 DocumentationController ScenarioImageViewer 1 PDUFRameController ScenarioDisplayerController 1 JDialog 1 Used by all 1 ScenarioScrollerController possède Link ProtocolConstants 2 ScenarioPane Node 1 ProtocolDialog * * Message 2 possède Documentation ScenarioDisplayer ScenarioScrollerPane AboutApplet QuitApplet ScenarioFileChooser NodeIcon 1 1 Fig. 3.1 – Vue des packages 3.2 Zoom sur les différents packages Ce paragraphe décrit le contenu de chaque package du projet. Les classes en fond jaune ou blanc ne font pas partie du contenu du package.Elles sont rajoutées pour une meilleure compréhension de la hiérarchie des classes du package. Dans un souci de lisibilité des dia- grammes certaines relations entre certaines classes ne sont pas représentées. La Javadoc du projet peut etre utiliséé en complément de ces diagrammes pour avoir des détails plus précis. ENST- Bretagne 5 Projet INVOCOM
3.2 Zoom sur les différents packages Organisation du code 3.2.1 Le package applet Ce package contient 4 classes qui héritent toutes de la classe JApplet. Toute nouvelle applet devra etre rajoutée dans ce package. ProtocolIllustrator Elle hérite de la classe JApplet et permet d’illustrer les scénarii de protocoles gsm. Récupère les paramètres contenus dans la page html et crée l’interface graphique avec ces valeurs. C’est le point d’entrée de la simulation 3.2.2 Le package general Ce package contient toutes les classes qui sont utilisées (relation de clientèle ou d’héritage) par toutes les autres classes. Par exemple la classe Language est utilisée par toutes les classes qui manipule des chaines de caractères. Language Permet d’internationaliser les chaines de caractères utilisées dans l’applet. Deux langues sont actuellement implémentées : français et anglais ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs sont public final et static ENST- Bretagne 6 Projet INVOCOM
3.3 Le package gui[control,model,dialog et pane] Organisation du code 3.3 Le package gui[control,model,dialog et pane] Le package gui contient toutes les classes relatives à l’interface graphique. Il contient en outre des sous-packages divisés en modèle, vue et contrôle. Le package gui.control contient toutes les classes qui jouent le role de contrôleur : gestion de l’affichage et mise à jour des éléments graphiques visualisés par l’utilisateur. Le package gui.model contient toutes les classes qui implémentent un modèle : modèle intrinsèque d’une fonctionnalité du logiciel. Le package gui.dialog contient toutes les classes qui gèrent une boite de dialogue : pour guider l’utilisateur dans les actions qu’il exécute. Le package gui.pane contient toutes les classes qui étendent JPanel et permettent d’organiser les éléments graphiques sur l’écran. 3.4 Description des classes Le paragraphe suivant décrit le role de chaque classe. AboutApplet Cette classe affiche des informations à propos de l’applet et du projet INVOCOM. ButtonController Permet de controler l’aspect des boutons suivant les actions de l’utilisateur Buttons Encapsule les boutons qui permettent à l’utilisateur d’inter-agir avec l’illustra- teur de protocoles. Documentation Permet d’afficher des informations concernant le scénario qui s’exécute. Utilisé dans la version debug DocumentationController Controle de l’affichage de la documentation sur l’interface HelpFrame Permet d’afficher une aide rapide concernant l’interface graphique. Language Permet d’internationaliser l’applet. Deux langues sont actuellement implémentées : français et anglais Link Désigne un lien au sens réseau. Un lien est formé de deux entités appelées nœuds : source et destination. Cette classe est utilisées lors de la création des nœuds pour mémoriser ENST- Bretagne 7 Projet INVOCOM
3.4 Description des classes Organisation du code loes liens entre les différents nœuds. MenuController Permet de controler les éléments de la barre dee menu. Activation et désactivation des boutons. Message Implémente le format des messages échangés. Les caractéristiques des messages sont celles décrites dans le document du format des fichiers scénario. MessagePauseDialog Permet d’afficher uner message de pause dans un scénario. La pause interrompt momentanément l’exécution de l’applet. Node Implémente un nœud. Les caractéristiques d’un noeud sont : le numéro du noeud, son nom, l’image qui lui est associée, l’ensemble des messages que le nœud émet,les voisins qui sont les nœud avec lesquels il ya un lien. NodeIcon Cette classe héritent de la classe ScenarioPane et permet de représenter les nœuds du scénario. On dessine les images associées aux nœuds et on y inscrit leur nom et le titre du scénario. PDUFrame Permet d’afficher les PDU échangés entre les différents nœuds. PDUFrameController controle l’affichage des PDU dans la fenetre désignée à cet effet. PopMenuController Permet de controler l’affichage du pop up menu : Activation et désactivation des items. PopUpListener Ecouteur sur le pop up menu. Permet de traiter les actions de l’utilisa- teur. ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs sont public final et static ProtocolController Classe abstraite permettant de créer des controleurs personnali- sables. ProtocolDialog Classe générique permet de créer une boite de dialogue personnalisable. ProtocolFrame Classe générique(abstraite) permettant de créer une fenètre personnali- sable. ProtocolGUIController Permet de controler toutes les composantes de l’interface. Elle crée les différents controleurs et délègue l’appel de certaines de certaines méthodes aux controleurs adapté. Maintient la cohérence entre ce que l’utilisateur voit et l’exécution interne de l’application. C’est le cœur du controle de l’applet. ENST- Bretagne 8 Projet INVOCOM
3.4 Description des classes Organisation du code ProtocolIllustrator C’est l’applet d’illustration. Lit les paramètres d’entrée et crée l’interface d’affichage du scénario. QuitApplet Permet de quitter l’applet proprement. RunningActions Interface permettant de regrouper toutes les actions conscernant l’applet : arret,lancement,suspension,rejouer,etc. ScenarioDisplayController permet de controler l’affichage du scénario et de maintenir la cohérence entre le modèle et la vue. ScenarioDisplayer Permet d’implémnter l’interface d’illustration du scénario. Affiche les nœuds et les messages échangés. ScenarioFileChooser Permet à l’utilisateur de choisir un fichier scénraio à partir du titre du scénario. C’est une boite de dialogue. ScenarioHead Permet de représenter l’entete du scénario. Cette classe n’est pas actuellement utilisée. ELle serait utile dans le cas où on désire implémenter une version compatible XML ScenarioImageViewer Permet d’afficher l’image associée au scénario dans une fenètre séparée. ScenarioMenu Crée un menu pour le scénario et y met les raccourcis clavier qu’il faut. ScenarioPane Classe abstraite permettant de créer un JPanel personnalisable. ScenarioPlayerModel Classe qui implémente l’algorithme intrinsèque exécuté durant l’illustration. Elle s’occupe du parsing du fichier, de la crétaion des nœuds, des liens et des messages. Certaines méthodes de cette classes sont surchargées par la classe ScenarioDisplay- Controller afin d’assurer la cohérence entre le modèle et la vue1 . ScenarioScrollerController Cette hérite de la classe ProtocolController et permet de gérer l’ensemble de l’affichage. Elle gère la vue associée à la classe ScenarioScrollerPane. ScenarioScrollerPane Elle implémente la classe ScenarioPane et contient plusieurs éléments graphiques. Ces éléments grapiques sont : L’entete du scénario composée du titre et des nœuds. La zone centrale d’affichage des messages échangés et enfin la barre de défilement situé à droite. ScenarioViewerFrame Cette classe permet d’encapsuler l’affichage du panel contenant 1 Ce que l’utilisateur voit à l’écran ENST- Bretagne 9 Projet INVOCOM
3.4 Description des classes Organisation du code l’illustration du protocole dans une JFrame. SimuPopMenu Permet de créer un menu pop up et de le rajouter à l’interface. ENST- Bretagne 10 Projet INVOCOM
Modèle MVC 4 Conception 4.1 Le modèle MVC Le modèle de conception adopté est le modèle MVC. Ce modèle consiste à séparer trois parties en matière de programmation graphique : le modèle, la vue et le contrôle. 1. le modèle, appelée aussi souvent abstraction, désigne les concepts et les fonctions du système, 2. la vue, appelée aussi souvent présentation définit l’image du système, c’est-à-dire son comportement en entrée comme en sortie vis-à-vis de l’utilisateur, 3. le contrôle maintient la cohérence entre les facettes vue et modèle : toute action sur le modèle est répercutée sur la vue et vice-versa. En termes de programmes Java le schéma suivant donne une illustration du modèle MVC. L’utilisateur percoit une interface graphique à l’écran sur laquelle il peut agir. Ensuite toutes ses actions sont sont répercutées sur le model grace au controller. Ce dernier étendant le model de base est donc un modèle enrichi. Inversement si le model change au cours du fonctionnement du système le controller est là pour mettre à jour la view qui est un attribut de classe. La figure 4.1 illustre ce concept. Model User {see} View Contoller 1 manages, updates Fig. 4.1 – Le modèle MVC ENST- Bretagne 11 Projet INVOCOM
4.2 Exemple de modèle MVC tiré duExemple code de modèle MVC tiré du code 4.2 Exemple de modèle MVC tiré du code Le schéma de la figure 4.2 donne un exemple d’utilisation du modèle MVC tiré du code. Les commentaires en face des classes donnent une illustration du code écrit. ScenarioDisplayerModel public void updateScenarioName(String name){ //traitement de mise a jour du titre du scénario } public void updateScenarioName(String name){ //appel de la methode de la classe mere pour garder //la coherence avec la vue ScenarioDisplayerController super.updateScenarioName(name) 1 //mise a jour de la vue qui est un attribut du controller view.updateScenarioName(name) } manages public void updateScenarioName(String name){ //traitement de mise a jour du titre du scénario ScenarioDisplayer setScenarioName(name) repaint(); } Fig. 4.2 – Exemple de modèle MVC tiré du code ENST- Bretagne 12 Projet INVOCOM
Exemple de modèle MVC tiré du code 5 Conclusion Dans un souci de clarté et de simplicité certains détails ont été volontairement omis. Le contenu du présent document peut etre complété en lisant la Javadoc du logiciel. certains algorithmes sont décrits en annexe. ENST- Bretagne 13 Projet INVOCOM
Description des classes A Annexes A.1 Description des algorithmes principaux de l’illustrateur de pro- tocoles GSM/UMTS A.1.1 Algorithme de lecture du fichier scénario Classe ScenarioDisplayerModel.readFile(String head,String messages) Cette méthode permet de lire l’entete du fichier scénario et les messages. Elle lève une exception si le fichier spécifié est introuvable ou s’il ya une erreur dans le format du fichier.Voici de façon simplifiée ce que fait l’algo : begin 1. ouvrir le fichier d’entete head 2. lire la première ligne du fichier et mettre la valeur dans LigneLue while (LigneLueNonNulle){ (a) si LigneLue=”ScenarioName” alors mettre la chaine qui suit dans la variable nom du scénario (b) si LigneLue=”File” mettre la chaine lue dans la variable nom du fichier image associée au scénario (c) si LigneLue=”NodeName” récupérer le nom du noeud et les autres paramètres et créer le noeud (d) si LingeLue=”PropagThroughput” récupérer les valeurs et créer/rajouter le lien entre le noeud source et le noeud destination à l’ensemble des liens du noeuds source 3. Créer le noeud et le rajouter à l’ensemble des noeuds 4. Lire une ligne et mettre la valeur dans LigneLue endwhile 5. fermer le fichier head 1. ouvrir le fichier décrivant les messages 2. lire la première ligne du fichier et mettre la valeur dans LigneLue while (LigneLueNonNulle){ (a) récupérer l’id du noeud source (b) récupérer l’id du noeud destination si le message n’est pas une pause alors (c) récupérer le nom du message (d) récupérer le type du message ;Déterminer la couleur du message en fonction de la valeur du type (e) récupérer la longueur du message (f) récupérer le treatment time (g) récupérer la valeur du step de ce message dans l’algorithme (h) récupérer la valeur du dash ENST- Bretagne 14 Projet INVOCOM
A.1 Description des algorithmes principaux de l’illustrateur de protocoles GSM/UMTS Description des classes (i) récupérer la valeur du startTime (j) récupérer la valeur du point de synchronisation s’il en existe un sinon (k) récupérer le texte de la question (l) récupérer le texte de la réponse (m) récupérer le nom de la nouvelle image à charger (n) récupérer le nouveau titre du scénarion 3. Créer le messages et l’ajouter à l’ensemble des messages 4. Lire une ligne et mettre la valeur dans LigneLue endwhile 5. fermer le fichier décrivant les messages 6. Mettre à jour les coordonnées des messages en fonction de la présence ou non de points de synchronisation 7. Mettre à jour les coordonnées des nœuds end A.1.2 Algorithme d’affichage L’affichage de l’entete du scénario est géré par la classe NodeIcon. L’essentiel du code se situe dans la méthode paintComponent(Graphics g) : 1. calculer l’espace entre les nœuds en fonction de la taille de l’écran d’affichage du scénario 2. Ecrire les titre du scénario 3. Ecrire le nom des nœuds et afficher les images associées à chaque nœud L’affichage des messages échangés est gérée par la classe ScenarioDisplayer et l’essentiel du code de la gestion de l’affichage se trouve dans la méthode paintComponent(Graphics g). Voici succintement ce que fait cette méthode : 1. Tracer les barre verticales représentant le déroulement du temps 2. Ecrire les messages(hors mis les messages de pause) en fonction de leurs caractéristiques. Cette partie fait appel à d’autres méthodes de dessin dont nous ne détaillerons pas ici. A.1.3 Algorithme de controle L’essentiel du code pour le controle se trouve dans la méthode nextstep() de la classe ScenarioDisplayerController. Voici l’algorithme qui est exécuté : 1. Récupérer le nombre de pas d’exécutions de l’algorithme 2. while(getTime()
A.2 Description des classes par ordre alphabétique Description des classes (a) Vérifier que le Thread d’exécution n’est pas suspendu par l’utilisateur (b) Mettre à jour le temps (c) Parcourir les messages(hormis ceux marquant une pause) et afficher ceux dont l’or- donnée Y est inférieure ou égale au temps courant (d) Si c’est un message de pause alors i. Interrompre l’exécution du Thread et activer le bouton Continue ii. mettre à jour l’image du scénario iii. mettre à jour le titre du scénario, iv. Poursuivre l’exécution dès que l’utilisateur à cliquer sur le bouton Continue v. faire une pause de 50 millisecondes pour permettre une certaine fluidité endwhile A.1.4 La barre de défilement La barre de défilement permet de faire défiler automatiquement l’affichage des messages échangés dans le scénario lorsque le scénario est très long. Elle permet également de pouvoir visualiser tout le scénario lorsque l’exécution du scénario est terminée. Les valeurs de la zone d’affichage changent en fonction des actions de l’utilisateur sur la barre de défilement. A.2 Description des classes par ordre alphabétique AboutApplet Cette classe affiche des informations à propos de l’applet et du projet INVOCOM. ButtonController Permet de controler l’aspect des boutons suivant les actions de l’utilisateur Buttons Encapsule les boutons qui permettent à l’utilisateur d’inter-agir avec l’illustra- teur de protocoles. Documentation Permet d’afficher des informations concernant le scénario qui s’exécute. Utilisé dans la version debug DocumentationController Controle de l’affichage de la documentation sur l’interface HelpFrame Permet d’afficher une aide rapide concernant l’interface graphique. Language Permet d’internationaliser l’applet. Deux langues sont actuellement implémentées : français et anglais Link Désigne un lien au sens réseau. Un lien est formé de deux entités appelées nœuds : source et destination. Cette classe est utilisées lors de la création des nœuds pour mémoriser ENST- Bretagne 16 Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes loes liens entre les différents nœuds. MenuController Permet de controler les éléments de la barre dee menu. Activation et désactivation des boutons. Message Implémente le format des messages échangés. Les caractéristiques des messages sont celles décrites dans le document du format des fichiers scénario. MessagePauseDialog Permet d’afficher uner message de pause dans un scénario. La pause interrompt momentanément l’exécution de l’applet. Node Implémente un nœud. Les caractéristiques d’un noeud sont : le numéro du noeud, son nom, l’image qui lui est associée, l’ensemble des messages que le nœud émet,les voisins qui sont les nœud avec lesquels il ya un lien. NodeIcon Cette classe héritent de la classe ScenarioPane et permet de représenter les nœuds du scénario. On dessine les images associées aux nœuds et on y inscrit leur nom et le titre du scénario PDUFrame Permet d’afficher les PDU échangés entre les différents nœuds. PDUFrameController controle l’affichage des PDU dans la fenetre désignée à cet effet. PopMenuController Permet de controler l’affichage du pop up menu : Activation et désactivation des items. PopUpListener Ecouteur sur le pop up menu. Permet de traiter les actions de l’utilisa- teur. ProtocolConstants Regroupe les constantes utilisées dans l’applet. Toutes les valeurs sont public final et static ProtocolController Classe abstraite permettant de créer des controleurs personnali- sables. ProtocolDialog Classe générique permet de créer une boite de dialogue personnalisable. ProtocolFrame Classe générique(abstraite) permettant de créer une fenètre personnali- sable. ProtocolGUIController Permet de controler toutes les composantes de l’interface. Elle crée les différents controleurs et délègue l’appel de certaines de certaines méthodes aux controleurs adapté. Maintient la cohérence entre ce que l’utilisateur voit et l’exécution interne de l’application. C’est le cœur du controle de l’applet. ENST- Bretagne 17 Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes ProtocolIllustrator C’est l’applet d’illustration. Lit les paramètres d’entrée et crée l’interface d’affichage du scénario. QuitApplet Permet de quitter l’applet proprement. RunningActions Interface permettant de regrouper toutes les actions conscernant l’applet : arret,lancement,suspension,rejouer,etc. ScenarioDisplayController permet de controler l’affichage du scénario et de maintenir la cohérence entre le modèle et la vue. ScenarioDisplayer Permet d’implémnter l’interface d’illustration du scénario. Affiche les nœuds et les messages échangés. ScenarioFileChooser Permet à l’utilisateur de choisir un fichier scénraio à partir du titre du scénario. C’est une boite de dialogue. ScenarioHead Permet de représenter l’entete du scénario. Cette classe n’est pas actuellement utilisée. ELle serait utile dans le cas où on désire implémenter une version compatible XML ScenarioImageViewer Permet d’afficher l’image associée au scénario dans une fenètre séparée. ScenarioMenu Crée un menu pour le scénario et y met les raccourcis clavier qu’il faut. ScenarioPane Classe abstraite permettant de créer un JPanel personnalisable. ScenarioPlayerModel Classe qui implémente l’algorithme intrinsèque exécuté durant l’illustration. Elle s’occupe du parsing du fichier, de la crétaion des nœuds, des liens et des messages. Certaines méthodes de cette classes sont surchargées par la classe ScenarioDisplay- Controller afin d’assurer la cohérence entre le modèle et la vue2 . ScenarioScrollerController Cette hérite de la classe ProtocolController et permet de gérer l’ensemble de l’affichage. Elle gère la vue associée à la classe ScenarioScrollerPane. ScenarioScrollerPane Elle implémente la classe ScenarioPane et contient plusieurs éléments graphiques. Ces éléments grapiques sont : L’entete du scénario composée du titre et des nœuds. La zone centrale d’affichage des messages échangés et enfin la barre de défilement situé à droite. ScenarioViewerFrame Cette classe permet d’encapsuler l’affichage du panel contenant 2 Ce que l’utilisateur voit à l’écran ENST- Bretagne 18 Projet INVOCOM
A.2 Description des classes par ordre alphabétique Description des classes l’illustration du protocole dans une JFrame. SimuPopMenu Permet de créer un menu pop up et de le rajouter à l’interface. ENST- Bretagne 19 Projet INVOCOM
Vous pouvez aussi lire