:: Enseignements :: Master :: M2 :: 2010-2011 :: Interface graphique II ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Jacques Beauheur |
But du projet
Dernière mise à jour: 18 janvier 2011
En exil en France après ses dernières aventures, notre héros s'ennuie et aimerait bien pouvoir continuer
à jouer à sauver le monde, mais hélas, les moyens informatiques français sont loin d'égaler
les infrastructures auxquelles il était habitué. Pas de couverture satellite, pas de traceurs
radioactifs, pas de reconnaissance faciale sur les caméras de surveillance des Prisunic, le
pauvre ne peut même pas suivre de bêtes rames de métro. Pour l'aider à sortir votre pays de
la préhistoire numérique où il se trouve, vous devrez aider notre ami en réalisant un simulateur de
trafic du métro parisien.
La carte
On veut pouvoir suivre en temps réel le trafic du métro parisien en suivant la position de chaque rame.
Pour cela, vous devrez proposer une vue graphique du plan du métro parisien sur laquelle on devra pouvoir
voir évoluer la position de chaque rame. Cette vue devra être gérée de façon vectorielle de façon à ce que l'on
puisse zoomer dessus à volonté. En cas de zoom, on doit pouvoir déplacer la zone visualisée à la souris, à la
façon des cartes proposées par des sites comme mappy.
Les stations
Votre application doit permettre de gérer la fermeture des stations. Cela devra pouvoir se faire à
la souris, directement sur la carte. On devra également disposer d'une liste de toutes les stations,
et pouvoir modifier leur statut par clic sur cette liste. On veut une apparence générale de liste,
mais il pourra s'agir d'une table. Comme la liste des stations est très longue, on veut également
une zone de texte dans laquelle on pourra saisir au fur et à mesure le nom de la station recherchée.
Au fur et à mesure de la frappe, on veut que la liste soit filtrée pour ne montrer que les noms de
stations commençant par la chaîne saisie. En bonus, un mécanisme de complétion automatique
pourrait être envisagé.
Les rames
Votre application doit pouvoir gérer les rames de métro. Pour chaque ligne, on doit avoir une
liste des rames. Au démarrage de l'application, on doit pouvoir paramétrer un nombre de rames
pour chaque ligne, et l'application les répartira équitablement sur la ligne. Chaque rame aura un
numéro, et on devra pouvoir accéder à la liste de toutes les rames. Si l'on survole le dessin associé
à une rame sur la carte, on veut voir une sorte de tooltip qui montre son numéro. On doit pouvoir
ajouter et supprimer des rames. On doit également pouvoir paramétrer, pour chaque ligne, le temps
passé entre deux stations et le temps d'arrêt à une station. Naturellement, on devra voir bouger les
rames en temps réel sur la carte.
Travail demandé
Vous devez fournir une application Swing proposant un tel simulateur. Votre programme devra
proposer un format de sauvegarde permettant de sauver et de recharger des configurations.
L'objectif général est de fournir une application la plus ergonomique possible (sinon, la version
française de Chloé ne sera pas contente).
SI ET SEULEMENT SI le travail demandé est accompli, vous êtes libres d'apporter toutes
les fonctionnalités supplémentaires de votre choix à cette application.
Conditions de rendu
Vous travaillerez en binômes. En premier lieu, vous lirez avec profit la
charte des projets pour
éviter des bavures malheureuses. Vous rendrez ensuite une archive nommée
login1-login2.zip
contenant les choses suivantes:
- un répertoire src contenant les sources du projet ainsi qu'un build.xml. Lorsqu'on
lance ant, on doit obtenir un exécutable nommé beauheur. La cible clean
doit fonctionner correctement. Les sources doivent être propres, en anglais et commentées.
- un fichier doc.pdf contenant votre rapport qui devra décrire votre travail. En particulier,
vous décrirez avec soin et en les justifiant tous vos choix d'architecture, en particulier sur les
MVC et la façon de gérer le plan graphique du métro. Si votre projet ne fonctionne pas complètement,
vous devrez en décrire les bugs.
- Il est interdit d'utiliser du code externe: vous devrez tout coder vous-mêmes.
- Tout code commun à plusieurs projets vaudra zéro pour tous les projets concernés.
Le projet est à rendre par mail l'enseignant (i.e. Sébastien Paumier),
au plus tard le lundi 4 avril à 23h.
© Université de Marne-la-Vallée