Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlooTD1r1.7 - 19 Sep 2007 - 12:27 - PhilippeCollettopic end

Start of topic | Skip to actions

TD 1 : Prise en main

PhilippeCollet

Introduction

Dans le cadre de ce TD (et des suivants si tout va bien), vous allez utiliser un IDE (Integrated Development Environment) sous Linux, en l'occurence, Eclipse 3. Eclipse (www.eclipse.org) est l'environnement de développement intégré le plus utilisé actuellement.

Pour démarrer, vous allez utiliser Eclipse 3.1 et le JDK 1.5. Par la suite, nous utiliserons peut être la dernière version d'Eclipse, v3.3 Europa avec un JDK 1.6, mais certains plugins n'ont pas encore été portés au moment ou le cours démarre. De toute façon, certains TDs utiliseront des outils expérimentaux avec du code uniquement compatible avec le JDK 1.4...

Si vous utilisez Eclipse sur votre machine personnelle, sachez qu'il risque d'y avoir de petites différences de présentation et de comportement entre les versions 3.1, 3.2 et 3.3 d'Eclipse...

Lancement et paramétrage d'Eclipse 3.1 (obsolète)

Assurez-vous que vous pouvez accéder à un JDK récent par votre variable PATH. Placez par exemple la commande suivante dans votre fichier ~/.zshenv :

  export PATH=/usr/local/java/jdk1.5.0_06/bin:$PATH
Vous pouvez ensuite démarrer Eclipse :
  /usr/local/eclipse-3.1/eclipse &

Passage à Eclipse 3.3 (mise à jour du 18 septembre 2007)

Exécution

Normalement, la version 3.3 (Europa) d'Eclipse doit être maintenant installée sur toutes les machines de l'étage. Vous devriez aussi disposer d'un JDK très récent :

  export PATH=/usr/local/java/jdk1.6.0_02/bin:$PATH
Eclipse 3.3 peut être démarré de la façon suivante :
  /usr/local/eclipse-3.3/eclipse &

ALERT! En cas de plantage de l'environnement sur "OutOfMemory", il vous faudra créer un alias ou une commande pour exécuter ceci :

  /usr/local/eclipse-3.3/eclipse -vmargs -Xmx384M &
Remplacer éventuellement 384 par 512 au cas ou beaucoup de plugins sont lancés successivement, car ils consomment toujours plus de mémoire...

Eventuelle installation perso

Si vous souhaitez installer Eclipse 3.3 sur votre machine perso, sachez que l'installation que vous utilisez sur les machines contient :

  • Le plugin Omondo, pour un support complet de diagrammes UML : http://www.eclipsedownload.com/ (ALERT! lisez bien les contraintes d'installation du plugin, il ne faut pas avoir déjà lancé de workspace pour que l'install se passe bien...)
  • L'éditeur visuel d'Eclipse (VE) dans une version patchée spécialement pour la v3.3 : voir plus bas
  • Les packages nécessaires aux deux précédents plugins (EMF, GMF, etc.)

Pour installer le plugin VE, il faut normalement récupérer les archives à cette adresse : http://www.ehecht.com/eclipse_ve/ve.html mais les liens de téléchargement n'ont plus l'air de fonctionner au 18 sept 2007. Je vous propose :

  • sous windows : de prendre la version locale suivante (fichier zip en 2 parties à cause du quota d'upload à 10 Mo) :
  • sous Linux : de récupérer toute l'install (ou les jar correspondants) dans le répertoire d'une des machines de la fac, car je n'ai pas sauvegardé l'archive.

Prise en main

La page d'aide de bienvenue devrait s'afficher à la fin du lancement :

  • Effectuez le tutorial HelloWorld intégré a Eclipse (création de projet, compilation, exécution). Observez et explorez !

  • Dans le tutorial Eclipse de JM Doudoux, effectuez :
    • les chapitres 3 à 6 de la première partie,
    • surtout le chapitre 7 de la deuxième partie (les chapitres 8 et 9 pourront être vus par la suite, ils sont très utiles),

ALERT! Au moment de l'écriture de ce sujet de TD, le tutoriel correspond à la version 3.2 d'Eclipse. Comme nous devrions utiliser les versions 3.1 ou 3.3, il y aura tout le temps de petites différences !

Après ça, vous devriez être paré pour démarrer et continuer à acquérir de l'expérience dans Eclipse. Prenez votre temps pour expérimenter. Comme tous les gros IDE, Eclipse peut être rebutant au départ, mais il peut aussi rendre de grands services si on sait comment utiliser les bonnes fonctionnalités au bon moment.

Familiarisation avec l'environnement

Le Visual Editor d'Eclipse

Pour prendre en main le plugin Visual Editor, le mieux est, comme souvent avec Eclipse, d'aller voir chez doudoux. Effectuez le tutorial correspondant : http://www.jmdoudoux.fr/java/dejae/chap017.htm#chap_17_3

Création d'une petite application graphique

Pour continuer à se faire la main, le mieux est de développer une petite application graphique (dans un nouveau projet) contenant :

  • une fenêtre, contenant un panel (celui est normalement généré automatiquement si vous créez une JFrame par l'éditeur), qui contient lui-même un bouton, un label et un champ de texte.
  • jouez avec les écouteurs pour récupérer le texte saisi, changer le texte du label en fontion de l'appui du bouton, bref, expérimentez toutes les interactions possibles avec ces trois objets graphiques...
  • modifiez le layout du JPanel et regardez ce qu'offre l'environnement pour paramétrer les différents layouts.

Remarque : pour créer des éléments graphiques, passez par le bouton new (pas le menu), puis sélectionnez "classe visuelle" (ou "visual class" en version anglaise) dans l'arborescence "Java"

Premières expérimentations avec le simulateur de bébêtes

Analyse et compilation du projet

Créez un nouveau projet à partir du contenu de bebeteStupide.zip :

  • soit vous placez le contenu dans un répertoire hors de votre workspace et vous créerez le projet "à partir d'une source existante",
  • soit vous créerez un projet vide, puis vous recopierez le contenu de l'archive et vous réactualiserez le projet.

L'archive contient un sous-répertoire src/tp1/bebetes qui contient 4 fichiers java, le tout étant un ensemble de classes pour simuler un troupeau d'animaux, les bébêtes :

  • L'application fournit une architecture pour faire des simulations de bébêtes : une bébête a une position, elle se déplace dans une certaine direction avec une vitesse donnée et elle peut voir devant elle avec un certain champ de vision. Elle est censée agir (se déplacer dans un premier) temps en fonction de son environnement (les bébêtes autour par exemple).

  • Le package contient quatre classes
    • La classe principale est TestBebetes : ce n'est qu'une frame graphique qui contient un ChampDeBebetes.
    • La classe ChampDeBebetes s'occupe de créer les bébêtes et agit comme le moteur de la simulation. Régulièrement (avec un thread), elle fait "agir" chaque bébête. Cette classe s'occupe aussi de dessiner les bébêtes avec les outils AWT/Swing de base (paint/repaint).
    • La classe BebeteAbstraite est une classe abstraite qui regroupe les attributs de toutes bebetes (position, vitesse, direction...) ainsi que de quoi la dessiner (couleur, methode graphique seDessine). La seule méthode abstraite est "agit" dans laquelle doit être définie le comportement.
    • La classe BebeteStupide ne fait que définir "agit" en incrémentant les coordonnées et en gérant le débordement du champ.

Vous remarquez que la bébête fournie est plutôt stupide (d'où son nom...). Exécutez cette application.

Pensez à expérimenter un maximum de fonctionnalités qui vous ont été présentées dans les tutoriaux...

Utilisation classique de ant

  • Hors de Eclipse (dans un shell), vérifiez la configuration de ant, faites les exportations nécessaires :
    1. export ANT_HOME=/opt/apache-ant-1.6.2
    2. export JAVA_HOME=/usr/local/java/jdk1.5.0_06
    3. export PATH=${PATH}:${ANT_HOME}/bin

  • Téléchargez l'archive antfiles.zip. Décompactez la à la racine du projet. Étudiez le fichier build.xml. Modifiez ce qu'il faut pour pouvoir compiler et exécuter votre projet en utilisant ant en ligne de commande (le projet est complet si vous arrivez a faire un "ant jar" et a exécuter directement "java -jar lejarproduit.jar" aide: inutile de toucher à build.xml ou à default.properties).

Utilisation de ant dans Eclipse

  • Retournez dans Eclipse et rafraichissez le contenu du projet. Le fichier build.xml devrait apparaitre...
  • Expérimentez les différentes actions que vous pouvez faire sur ce fichier (édition, visualisation de la structure, exécution de tâches, etc.) _Remarquez que vous pouvez exécuter le fichier build.xml en tant que "compilation ant" (utilisation par défaut) ou comme "génération ant" (vous aurez ainsi accès à tous les paramètres de pilotage de ant (chemins, cibles, environnement...).

TIP Au cas où vous êtes un peu perdu, pensez à Doudoux, il y a un chapitre sur l'utilisation de ant dans Eclipse : http://www.jmdoudoux.fr/java/dejae/chap010.htm#chap_10

Bébêtes intelligentes

Création d'une nouvelle classe

Créez une nouvelle classe BebeteEmergente qui simule le comportement suivant :

  • Essaye d'aller à la vitesse moyenne des bébêtes autour
  • Va dans la direction moyenne du troupeau environnant (les bébêtes autour)
  • Maintient une distance minimale avec celles qui sont autour

Vous pouvez construire le comportement de votre bébête au fur et à mesure en définissant la méthode agit(). Regardez bien les méthodes utilitaires fournies dans les classes BebeteAbstraite et ChampDeBebetes : la direction d'une bébête est gérée en radians (soit une valeur entre 0 et 2*PI) et vous avez pratiquement toutes les informations précalculées. N'oubliez pas de faire des modifications pour que le champ de bébêtes utilise vos bébêtes à la place des bébêtes stupides.

Aide :

  • pour qu'une bestiole avance dans une certaine direction, si x,y est sa position initiale et dir sa direction en radians, le nouveau x vaudra x + distance de déplacement en pixels * cos(dir), y vaudra y + distance de déplacement * sin(dir).
  • Par défaut, la liste des bébêtes qui sont dans le champs de vision correspond à toutes les bébêtes en face de la bébête courante. Pour obtenir de meilleurs résultats, modifiez la méthode qui calcule la liste des bébêtes pour ne renvoyer que celles qui sont en face et par exemple à moins de 20 pixels de distance. BebeteAbstraite propose des fonctions de calcul de distance.

Tranformation du modèle objet du simulateur

Essayez de donner la liste de tous les problèmes de conception présents dans le projet :

  • Que faire des fonctions utilitaires sur les calculs de distance et de direction ?
  • Que faire pour que la simulation même soit indépendante de la partie graphique ?
  • Que faire pour changer le comportement des bébêtes lors de l'exécution ?
  • ...

Remarque : il n'est pas demandé de corriger ces problèmes pour l'instant.

Tutoriaux et références

-- PhilippeCollet - 18 Sep 2007
to top

I Attachment sort Action Size down Date Who Comment
antfiles.zip manage 1.9 K 05 Sep 2007 - 13:14 PhilippeCollet  
bebeteStupide.zip manage 4.0 K 05 Sep 2007 - 13:14 PhilippeCollet  
ve_eclipse_33_win32.zip manage 4870.9 K 18 Sep 2007 - 12:30 PhilippeCollet  
ve_eclipse_33_win32.z01 manage 8000.0 K 18 Sep 2007 - 12:31 PhilippeCollet  

You are here: Minfo > GLOO > GlooTD1

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback