Mécanique Smalltalk (3)






Si vous avez un écran Noir & Blanc cliquez ICI

VIII/ Construction d'une application simple

But de l'application : Permettre de construire et modifier un graphe formé de trajets reliant des lieux. Les lieux sont des objets nommés, les trajets connaissent un lieu de départ et un lieu d'arrivée. Le plan connait une liste de lieux et une liste de trajets.

Dans la fenêtre principale de l'application, trois listes apparaissent :

Deux boutons (Ajouter et Nouveau Trajet) permettent respectivement d'ajouter un lieu et de créer un trajet. Le bouton Nouveau Trajet n'est activable que si un lieu de départ et un lieu d'arrivée sont sélectionnés.

Dans les listes, des menus permettent des actions supplémentaires :

La liste de trajets est subordonnée aux sélections effectuées dans les deux premières listes :

Quand rien n'est sélectionné :
la liste affiche tous les trajets existants.
Quand seul un lieu de départ est sélectionné :
la liste affiche tous les trajets partant de ce lieu.
Quand seul un lieu d'arrivé est sélectionné :
la liste affiche tous les trajets arrivant à ce lieu.
Enfin, quand un départ et une arrivée sont sélectionnés :
la liste n'affiche que les trajets partant du lieu de départ et arrivant au lieu d'arrivée donnés. Il peut y avoir plusieurs trajets reliant les mêmes lieux.

1/ Construction du modèle

La première phase est la construction du modèle. Dans notre cas, nous créons trois classes : Lieu, Trajet, et Plan.

Utilisez le butineur (Browser) pour explorer les classes du modèle.
N'oubliez pas de lire les commentaires des classes et des méthodes.


2/ Création du canevas

Le canevas est un plan de travail décrivant une fenêtre de l'application. La création d'un canevas est initiée par la fonction New Canvas du menu Tools de la fenêtre principale de VisualWorks.



Le nouveau canevas (une fenêtre vide) apparait accompagné de deux outils, La palette et l'outil canvas

Palette


Outil canevas




On utilise la palette pour choisir un élément graphique ou widget et le déposer sur le canevas.
On utilise l'outil canevas pour lancer des commandes permettant d'attribuer des valeurs aux propriétés des widgets (Properties), créer la sous-classe d'application (ApplicationModel) qui supportera notre interface (Install...), définir les variables d'instance et les méthodes nécessaires à la liaison entre l'application et le modèle (Define...), éditer le code correspondant à un widget ou à l'application entière (Browse...), tester l'application (Open), ajuster la position et la taille des widgets.

Le canevas avec un menu local déployé et les poignées pour déplacer les widgets.


Liaison entre l'application générée et le modèle


Le modèle ne connait ni l'application ni la partie graphique. Il ne sert qu'a représenter les objets du problème. L'application connait et utilise le modèle (1), elle transmet les messages provenant des contrôleurs des vues graphiques vers des actions réalisables par le modèle.

L'application connait (2) et utilise un constructeur (une instance de Builder) pour construire (3) la fenêtre, les vues graphiques et les widgets. Les widgets obtiennent les informations du modèle pour s'afficher (4).



Exemple

Quand vous avez chargé le programme exemple dans sa totalité (
Lieu.st, Trajet.st, Plan.st et PlanApplication.st), depuis le browser de Smalltalk, vous pouvez procéder à l'ouverture du canevas, en faisant un DoIt sur le commentaire de la méthode windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec"



Puis, pour lancer l'application, envoyez un message #open à la classe PlanApplication, regardez les exemples ou encore pressez le bouton Open dans l'outil canevas.

(suite)


Date de mise à jour 11/11/1996 m a i l t o : v i @ a i . u n i v - p a r i s 8 . f r
Vincent LESBROS, Mécanique Smalltalk (3)