Tutoriel ASS Currency Converter

Transcription

Tutoriel ASS Currency Converter
Inside Mac OS X
Tutoriel Currency Converter
pour AppleScript Studio 1.2
trad.applescript.free.fr
18 septembre 2003
Made with LATEX 2ε on iBook
Préambule
Ce guide n’est absolument pas une traduction officielle de la Société Apple.
Ce tutoriel est extrait du guide “Inside Mac OS X : Building Applications
With AppleScript Studio”.
Ce guide a été entièrement composé et produit avec un logiciel libre et
gratuit, une distribution de LATEX 2ε . Pour ceux qui ne connaissent pas,
essayez-le, malgré son aspect austère et déroutant au premier abord, les
documents obtenus dépassent largement les traitements de texte conventionnels, la preuve ici. :-))
Ce guide n’est pas exempt d’erreurs de frappe ou d’interprétation et je vous
prie de m’en excuser. Si vous constatez des erreurs ou des oublis, je vous
remercie de bien vouloir me faire remonter l’information à cette adresse :
[email protected] afin de les corriger dans une prochaine version.
Dans l’espoir que cette version française comblera l’attente de tous les utilisateurs francophones, je vous souhaite une bonne lecture.
Nicolas
Marques déposées.
Apple, le logo Apple, AppleScript, Finder, Mac, Macintosh et PowerBook sont des marques
déposées de Apple Computer Inc.
Toutes les autres marques sont la propriété de leurs détenteurs respectifs.
Table des matières
Préambule
I
Tutoriel Currency Converter
1
Préparation de l’application . . . . . . . . . . . . . . . . . . . . . .
2
Création du projet . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Construction de l’interface . . . . . . . . . . . . . . . . . . . . . . .
4
Lancez Interface Builder . . . . . . . . . . . . . . . . . . . . .
4
Ajustez certains attributs de la fenêtre de “Currency Converter”
5
Ajoutez les champs de saisie et leurs étiquettes . . . . . . . .
9
Ajoutez un champ et une étiquette pour le résultat . . . . . .
16
Ajoutez des “numbers formatters” pour les champs de saisie
et résultat . . . . . . . . . . . . . . . . . . . . . . . . .
17
Ajoutez le bouton “Convert” . . . . . . . . . . . . . . . . . .
20
Ajoutez le séparateur horizontal . . . . . . . . . . . . . . . . .
21
Finalisez la mise en page . . . . . . . . . . . . . . . . . . . . .
21
Connexion de l’interface . . . . . . . . . . . . . . . . . . . . . . . .
22
Écriture des gestionnaires . . . . . . . . . . . . . . . . . . . . . . .
25
Construction et exécution de l’application . . . . . . . . . . . . . .
26
III
Liste des illustrations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
La fenêtre de l’application “Currency Converter” . . . . . . .
Choix du type de projet dans Project Builder . . . . . . . . .
Un projet avec tous les groupes développés . . . . . . . . . . .
Les fenêtres d’Interface Builder lors de l’ouverture du fichier MainMenu.nib . . . . . . . . . . . . . . . . . . . . . . . .
Sélection du titre de l’instance “Window” de “MainMenu.nib”
La fenêtre par défaut du projet “Currency Converter” . . . .
Le panneau “Attributes” de la fenêtre Info d’un objet window
La fenêtre Info après retitrage de la fenêtre de “Currency
Converter” . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les réglages finaux des attributs de la fenêtre de “Currency Converter” . . . . . . . . . . . . . . . . . . . . . . . . .
Le panneau “Size” de la fenêtre de “Currency Converter” . .
La fenêtre de “Currency Converter” après modification . . . .
Le panneau “Cocoa-Views” . . . . . . . . . . . . . . . . . . .
Positionnement du champ texte servant à saisir le taux . . . .
Redimensionnement du champ servant pour le taux . . . . . .
Le panneau “Attributes” de la fenêtre Info du champ taux . .
La fenêtre Info après indication du nom AppleScript du
champ devant recevoir le taux . . . . . . . . . . . . . . . . . .
La fenêtre Nib montrant l’objet “AppleScript Info” (non
sélectionné) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Positionnement de l’étiquette du taux . . . . . . . . . . . . . .
Redimensionnement de l’étiquette du taux . . . . . . . . . . .
La fenêtre Info après réglage du texte et des attributs de
l’étiquette du taux . . . . . . . . . . . . . . . . . . . . . . . .
Le champ étiquette du taux . . . . . . . . . . . . . . . . . . .
La fenêtre de “Currency Converter” avec les champs de
saisie et étiquette . . . . . . . . . . . . . . . . . . . . . . . . .
V
.
.
.
2
3
3
.
.
.
.
4
5
6
6
.
7
.
.
.
.
.
.
.
7
8
9
10
10
11
11
.
12
.
.
.
13
13
14
.
.
14
15
.
16
VI
Liste des Illustrations
23
24
25
26
27
28
29
30
31
32
33
34
La fenêtre de “Currency Converter” avec les champs pour
le résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fenêtre Info à obtenir . . . . . . . . . . . . . . . . . . . . . .
Association d’un objet “number formatter” au champ du taux .
Le panneau “Formatter” du champ du taux . . . . . . . . . . .
Le panneau “Formatter” du champ du résultat . . . . . . . . .
La fenêtre de “Currency Converter” avec le bouton “Convert” .
La fenêtre de “Currency Converter” avec le séparateur horizontal
La partie de la fenêtre Info permettant de spécifier le
raccourci-clavier . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spécification du raccourci-clavier du bouton “Convert” . . . . .
La fenêtre Info après connexion du gestionnaire Clicked
au bouton “Convert” . . . . . . . . . . . . . . . . . . . . . . . .
La fenêtre Info après le choix du gestionnaire Should Quit
After Last Window Closed . . . . . . . . . . . . . . . . . . . . .
L’application “Currency Converter” après une conversion réussie
16
17
18
19
20
20
21
22
22
23
24
27
Tutoriel Currency Converter
Dans ce tutoriel, vous allez créer une application AppleScript Studio servant
à convertir des dollars en une autre monnaie. Ce tutoriel décrit un certain
nombre de tâches communes à la plupart des applications AppleScript Studio, comme :
• la création d’un projet avec Project Builder
• la construction de l’interface avec Interface Builder :
- insertion et initialisation des objets d’interface
- respect des directives de l’Aqua guidelines
- connexion de l’interface avec les gestionnaires du script
• l’écriture des gestionnaires
• la construction et l’exécution de l’application
Pour construire l’application “Currency Converter”, vous suivrez ces étapes :
1. Préparation de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Création du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Construction de l’interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Connexion de l’interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5. Écriture des gestionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6. Construction et exécution de l’application . . . . . . . . . . . . . . . . . . . . . . 26
Note :
Depuis la version 2.0 de Project Builder, vous pouvez spécifier le nombre
de fenêtres à utiliser dans votre projet, ce réglage est à effectuer dans le
panneau préférences “Task Templates”. Ce tutoriel suppose que vous avez
choisi le mode “Single Window” (fenêtre unique), lequel émule le style utilisé
par les versions précédentes de Project Builder.
2
Création du projet
Préparation de l’application
L’application Currency Converter devra permettre à l’utilisateur de saisir le
taux de conversion et la somme à convertir, puis de cliquer sur un bouton
pour voir le résultat - la conversion dans la nouvelle monnaie. L’application
ne requerra qu’une seule fenêtre, laquelle pourra ressembler à celle montrée
dans l’illustration suivante.
Fig. 1 - La fenêtre de l’application “Currency Converter”
L’utilisateur saisira les valeurs dans les deux premiers champs, puis cliquera
sur le bouton pour obtenir la conversion dans le troisième champ. Un trait
horizontal séparera la partie saisie du bouton “Convert”.
Création du projet
Pour créer un projet, suivez ces étapes :
1. Ouvrez l’application Project Builder, localisée dans le répertoire /
Developer/Applications.
2. Choisissez “New Project. . .” dans le menu File. Vous devez obtenir la
même boı̂te de dialogue que celle de l’illustration 2.
3. Sélectionnez un des modèles d’application AppleScript Studio. Pour
cet exemple, choisissez le modèle “AppleScript Application”, puis cliquez sur le bouton “Next”. Donnez le nom “Currency Converter” à
votre projet et choisissez un emplacement pour la sauvegarde.
L’illustration 3 montre le nouveau projet après ouverture de plusieurs
groupes du panneau “Groups & Files”. Vous pouvez enregistrer le
projet en appuyant sur Cmd + S ou en choisissant le menu “Save”
dans le menu “File”.
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Création du projet
3
Fig. 2 - Choix du type de projet dans Project Builder
Fig. 3 - Un projet avec tous les groupes développés
À cet instant, vous pouvez construire le projet et créer une application fonctionnelle, avec une fenêtre qui peut être agrandie, réduite et fermée. L’application pourra afficher une fenêtre “À propos de. . .” et répondre à un certain
nombre de menus. Ces caractéristiques sont fournies par le framework Cocoa, sans aucun travail de votre part. Par contre, pour arriver à faire la
conversion, l’application aura besoin de vos services.
Pour construire et lancer l’application dans Project Builder, suivez au choix
une de ces manières :
• appuyez sur Cmd + R
• choisissez “Build and Run” dans le menu “Build”
• cliquez sur l’icone “Build and Run”, icone visible dans l’illustration 3
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
4
Construction de l’interface
Pour revenir au mode création, il vous suffit de quitter l’application.
Construction de l’interface
Pour construire l’interface, vous suivrez ces étapes :
1. Lancez Interface Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Ajustez certains attributs de la fenêtre de “Currency Converter” 5
3. Ajoutez les champs de saisie et leurs étiquettes . . . . . . . . . . . . . . . . . . 9
4. Ajoutez un champ et une étiquette pour le résultat . . . . . . . . . . . . . 16
5. Ajoutez le bouton “Convert” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6. Ajoutez le séparateur horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7. Finalisez la mise en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Lancez Interface Builder
Lorsque vous créez un projet avec Project Builder, le projet contient automatiquement un fichier nib par défaut nommé MainMenu.nib. Pour lancer
Interface Builder, double-cliquez sur l’icone de ce fichier. Vous devez normalement obtenir les mêmes fenêtres que dans l’illustration suivante.
Fig. 4 - Les fenêtres d’Interface Builder lors de l’ouverture du fichier
MainMenu.nib
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
5
Ajustez certains attributs de la fenêtre de “Currency Converter”
Dans cette section, vous allez modifier la fenêtre par défaut afin de régler
certains attributs. Pour modifier la fenêtre par défaut, suivez ces étapes :
1. Dans la fenêtre “MainMenu.nib” d’Interface Builder, double-cliquez
sur le texte “Window” dans le titre de l’instance “Window”. Le résultat
est visible dans l’illustration suivante.
Fig. 5 - Sélection du titre de l’instance “Window” de “MainMenu.nib”
2. Saisissez “Currency Converter” (sans les guillemets) comme nom de la
nouvelle instance. Cette étape modifie uniquement le nom de l’instance
et non le titre de la fenêtre, mais c’est une bonne habitude de toujours
nommer les instances de façon à facilement les identifier.
3. L’illustration 6 présente la fenêtre par défaut de l’instance “Currency
Converter”. Notez que “Window” est encore le titre de la fenêtre.
Cliquez une fois dans cette fenêtre et ouvrez sa fenêtre Info (soit avec
le menu “Show Info” du menu “Tools”, soit avec Cmd + Shift + I).
La fenêtre Info , avec le panneau “Attributes” affiché, est visible dans
l’illustration 7.
La fenêtre Info affiche les informations sur l’objet sélectionné, elle affiche par défaut le panneau “Attributes” ou le dernier panneau affiché
lors d’une précédente ouverture. Si le panneau “Attributes” n’est pas
visible, utilisez le menu déroulant ou appuyez sur Cmd + 1 pour l’afficher.
4. Pour retitrer la fenêtre, saisissez simplement “Currency Converter”
dans le champ “Window Title”, comme dans l’illustration 8.
5. Dans la section “Controls”, décochez la case “Resize” - vous interdirez
ainsi le redimensionnement de la fenêtre de “Currency Converter”.
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
6
Construction de l’interface
Fig. 6 - La fenêtre par défaut du projet “Currency Converter”
Fig. 7 - Le panneau “Attributes” de la fenêtre Info d’un objet window
Plus tard, vous ajouterez un gestionnaire pour quitter l’application
lorsqu’un utilisateur fermera la fenêtre.
Notez que, bien que vous ayez désactivé le redimensionnement de la
fenêtre, la fenêtre de “Currency Converter” a encore un contrôle de
redimensionnement dans Interface Builder, ainsi vous pouvez la redimensionner lors de vos travaux sur l’interface. Mais lorsque vous
construirez et lancerez l’application, la fenêtre n’aura plus ce contrôle
de redimensionnement.
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
7
Fig. 8 - La fenêtre Info après retitrage de la fenêtre de “Currency Converter”
Vous n’avez pas besoin de modifier les réglages par défaut des autres
attributs. Les réglages finaux sont visibles dans l’illustration 9. Pour
plus d’informations sur les autres attributs, voir l’aide d’Interface Builder ou la classe NSWindow dans la documentation Cocoa.
Fig. 9 - Les réglages finaux des attributs de la fenêtre de “Currency Converter”
6. Pour redimensionner la fenêtre de “Currency Converter”, faites glisser
le contrôle de redimensionnement situé dans le coin inférieur droit. La
fenêtre redimensionnée devra ressembler à celle de l’illustration 1.
Au lieu de déplacer le contrôle de redimensionnement, vous pouvez
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
8
Construction de l’interface
régler la taille de la fenêtre au pixel près. Utilisez le menu déroulant
ou appuyez sur Cmd + 3 pour afficher le panneau “Size” dans la fenêtre
Info. Le panneau “Size” est visible dans l’illustration ci-dessous.
Fig. 10 - Le panneau “Size” de la fenêtre de “Currency Converter”
Pour modifier la taille, saisissez de nouvelles valeurs dans les champs
sous le menu déroulant “Width/Height”. Les dimensions de la fenêtre
de l’illustration 1 sont : 320 pixels pour la largeur (width) et 180 pixels
pour la hauteur (height).
Le menu déroulant “Bottom/Left” détermine la position de la fenêtre
dans l’écran lors de son ouverture. Vous pouvez, soit déplacer la fenêtre
à la position désirée, soit modifier les valeurs dans le panneau “Size”.
Plusieurs éléments du panneau “Size” ont des valeurs par défaut qui
n’ont pas besoin d’être modifiées pour “Currency Converter”. Par
exemple, l’image d’une fenêtre entourée par des ressorts contrôle le
comportement de celle-ci lors du redimensionnement, mais comme
vous l’avez désactivé précédemment, vous n’avez pas à vous en
préoccuper.
7. Après avoir fait tous ces changements, la fenêtre de “Currency Converter” devrait ressembler à l’illustration 11.
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
9
Fig. 11 - La fenêtre de “Currency Converter” après modification
Ajoutez les champs de saisie et leurs étiquettes
Dans cette section, vous allez exécuter des étapes qui peuvent être appliquées
à tout développement d’application AppleScript Studio, comprenant :
• le glissement d’objets d’interface dans la fenêtre de votre application
• le positionnement et le redimensionnement d’objets afin de respecter
l’Aqua guidelines
• l’utilisation de la fenêtre Info d’Interface Builder pour régler les attributs
et préparer les objets au scripting
L’application “Currency Converter” a besoin de champs textes pour la saisie
du taux de conversion et la somme à convertir. Chacune de ces entrées a
besoin d’une étiquette.
Pour ajouter des champs de saisie et des étiquettes à la fenêtre de “Currency
Converter”, suivez ces étapes :
1. Cliquez sur l’icone de “Cocoa-Views” dans la barre d’outils de la palette. Le panneau “Cocoa-Views” est visible dans l’illustration 12.
Pour afficher la bulle d’aide décrivant l’icone (et le panneau qu’il
sélectionne), positionnez le curseur de la souris au-dessus et attendez
quelques secondes.
De même, laisser quelques instants le curseur de la souris au-dessus
d’un objet d’interface affiche sa classe Cocoa (comme NSButton ou
NSTextField).
Vous pouvez voir que le panneau fournit plusieurs sortes de boutons.
Chaque bouton a une apparence distincte basée sur son type de bouton
(bouton rond, bouton carré, bouton poussoir, case à cocher, etc. . .).
Les boutons radios font actuellement partie des objets “matrix” - un
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
10
Construction de l’interface
groupe de cellules qui fonctionnent ensemble pour supporter la fonction
des boutons radios.
Notez que vous pouvez modifier la barre d’outils de la palette en choisissant “Customize Toolbar” dans le sous-menu “Palettes” du menu
“Tools” d’Interface Builder. Si, par exemple, vous ne voyez pas l’icone
“AppleScript” (l’icone le plus à gauche dans l’illustration 12) dans la
barre d’outils, vous pouvez l’ajouter en la personnalisant.
Fig. 12 - Le panneau “Cocoa-Views”
2. Faites glisser un objet text field de la palette vers la fenêtre de “Currency Converter”. Positionnez le champ texte dans le coin supérieur
droit, aidez-vous des guides pour aligner ce champ en respectant l’Aqua
guidelines, comme dans l’illustration 13. Ce champ servira pour la saisie du taux de conversion.
Fig. 13 - Positionnement du champ texte servant à saisir le taux
3. Sélectionnez le champ texte, puis faites glisser la poignée de sélection
située au centre du bord gauche du champ, comme dans l’illustraTraduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
11
tion 14. Pour l’instant, ne vous inqiétez pas sur la largeur à prévoir,
vous l’ajusterez plus tard si cela ne convient pas.
Fig. 14 - Redimensionnement du champ servant pour le taux
4. Avec le champ du taux sélectionné, ouvrez le panneau “Attributes” de
la fenêtre Info. Le résultat à obtenir est visible dans l’illustration 15.
Fig. 15 - Le panneau “Attributes” de la fenêtre Info du champ taux
5. Dans la section “Alignment”, cliquez sur le bouton du milieu pour
aligner à droite le texte dans le champ.
6. Pour fournir un nom AppleScript au champ taux (afin de pouvoir y
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
12
Construction de l’interface
accéder dans les scripts), appuyez sur Cmd + 6 pour afficher le panneau
“AppleScript” de la fenêtre Info, puis saisissez “rate” dans le champ
“Name”. Le résultat à obtenir est visible dans l’illustration 16.
Fig. 16 - La fenêtre Info après indication du nom AppleScript du champ devant
recevoir le taux
Il est tout à fait possible de donner le même nom AppleScript à plusieurs éléments d’une même fenêtre, mais alors vous ne pourrez plus
les différencier par leur nom dans vos scripts.
Notez que la première fois que vous modifierez le panneau “AppleScript”, Interface Builder ajoutera une nouvelle instance nommée
“AppleScript Info” à la fenêtre Nib. Cette instance est visible dans
l’illustration 17.
Notez que l’illustration 17 montre l’onglet “Instances” de la fenêtre
de “MainMenu.nib” en présentation par icones. Vous pouvez aussi le
visualiser en mode liste, en cliquant sur l’icone de “outline view” situé
au dessus de l’ascenseur vertical.
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
13
Fig. 17 - La fenêtre Nib montrant l’objet “AppleScript Info” (non sélectionné)
La présentation en mode liste est très pratique pour la visualisation
des hiérarchies et des connexions, et pour la sélection rapide d’éléments
imbriqués.
7. Pour ajouter l’étiquette du champ devant recevoir le taux, faites glisser
un objet “label text field”, l’objet avec le texte “System Font Text”,
depuis la palette vers la fenêtre de “Currency Converter”. Aidez-vous
des guides pour positionner ce champ dans le coin supérieur gauche
afin de respecter l’Aqua guidelines, comme dans l’illustration 18.
Fig. 18 - Positionnement de l’étiquette du taux
8. Comme dans une des étapes précédentes, redimensionnez l’étiquette à
l’aide des poignées de redimensionnement comme dans l’illustration 19.
9. Avec l’étiquette sélectionnée, ouvrez sa fenêtre Info et affichez le panneau “Attributes”. Puis faites ces ajustements :
• Saisissez “Exchange Rate per Dollar” dans le champ “Title”, c’est
le texte de l’étiquette. Si le texte apparaı̂t tronqué, votre étiquette
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
14
Construction de l’interface
Fig. 19 - Redimensionnement de l’étiquette du taux
doit être agrandie afin d’afficher le texte en entier.
• Dans la section “Alignment”, cliquez sur le bouton du milieu, afin
d’aligner à droite le texte de l’étiquette.
L’illustration 20 présente la fenêtre Info à obtenir ; l’illustration 21
présente le champ de l’étiquette. Notez que ce champ, comme un
champ de saisie, est basé sur la classe NSTextField.
Fig. 20 - La fenêtre Info après réglage du texte et des attributs de l’étiquette du
taux
10. Enregistrez toutes vos modifications faites dans Interface Builder - elles
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
15
Fig. 21 - Le champ étiquette du taux
seront enregistrées dans le fichier “MainMenu.nib”.
11. Pour ajouter les champs devant servir à spécifier la somme à convertir,
vous pouvez répéter les étapes précédentes :
(a) Faites glisser un champ texte dans la fenêtre de “Currency
Converter”, alignez le sous le champ du taux.
(b) Redimensionnez ce champ.
(c) Réglez ses attributs.
(d) Donnez-lui comme nom AppleScript “amount”.
(e) Ajoutez un champ étiquette, alignez le sous le champ étiquette
précédent.
(f) Nommez-le “Dollars to convert” et alignez le à droite.
Ou autre solution, vous pouvez utiliser la commande “Duplicate” d’Interface Builder pour dupliquer les deux premiers champs déjà créés,
puis fournir un nouveau texte pour l’étiquette et un nouveau nom
AppleScript :
(a) Sélectionnez les deux premiers champs, soit avec Shift + clic, soit
en faisant glisser le curseur de la souris, puis choisissez “Duplicate” du menu “File” ou appuyez sur Cmd + D.
(b) Faites glisser les champs dupliqués, en vous aidant des guides,
afin de les aligner avec les champs originaux.
(c) Sélectionnez le nouveau champ étiquette et dans le panneau “Attributes”, saisissez “Dollars to Convert” dans le champ “Title”.
(d) Pour donner un nom AppleScript au nouveau champ de saisie servant à spécifier la somme à convertir, sélectionnez le champ, ouvrez le panneau “Attributes” et saisissez “amount” dans le champ
“Name”.
L’illustration 22 montre la fenêtre de “Currency Converter” avec ces deux
nouveaux champs.
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
16
Construction de l’interface
Fig. 22 - La fenêtre de “Currency Converter” avec les champs de saisie et
étiquette
Ajoutez un champ et une étiquette pour le résultat
Dans cette section, vous allez ajouter un champ servant afficher le résultat
de la conversion ainsi que son étiquette.
1. Pour ajouter un champ texte et une étiquette pour le résultat, suivez
ces étapes :
(a) Sélectionnez les champs servant à la saisie de la somme à convertir, soit avec Shift + clic, soit avec le curseur de la souris, puis
dupliquez-les.
(b) Faites glisser les champs dupliqués et alignez-les sous les champs
originaux en vous aidant des guides.
(c) Sélectionnez la nouvelle étiquette et saisissez “Amount in Other
Currency” dans le champ “Title” de son panneau “Attributes”.
(d) Sélectionnez le nouveau champ de saisie et saisissez “Total” dans
le champ “Name” de son panneau “AppleScript”.
L’illustration 23 présente la fenêtre de “Currency Converter” avec les
champs pour le résultat.
Fig. 23 - La fenêtre de “Currency Converter” avec les champs pour le résultat
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
17
2. L’utilisateur ne devra pas pouvoir saisir de données dans le champ
devant afficher le résultat, aussi vous avez besoin de rendre indisponible
ce champ. Sélectionnez le champ, affichez le panneau “Attributes” et
décochez la case “Editable” de la section “Options”. L’illustration 24
montre le panneau à obtenir.
Fig. 24 - La fenêtre Info à obtenir
Enregistrez votre travail avant de passer à la section suivante.
Ajoutez des “numbers formatters” pour les champs de saisie
et résultat
L’application “Currency Converter” devra autoriser les utilisateurs à saisir uniquement des valeurs significatives, et elle devra afficher un résultat
correctement formatté :
• le champ servant pour le taux devra accepter et afficher des nombres
décimaux comme 1.55 ou 10.24.
• le champ servant pour la somme à convertir devra afficher des sommes
valides, comme 125.20.
• le champ servant pour le résultat devra afficher le total dans la monnaie
locale, comme les dollars ($600.10) ou les yens (U1700.00)
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
18
Construction de l’interface
Pour formater le texte d’un champ texte, Interface Builder fournit les “number formatters” (basés sur la classe Cocoa NSNumberFormatter). Dans le
panneau “Cocoa-Views” de l’illustration 12 (page 10), l’objet “number formatter” est représenté par le nombre 1.99 avec le signe dollar.
Important : Lorsqu’un “number formatter” est attaché à un champ texte,
son contenu devra obligatoirement être un nombre et non un texte.
Pour fournir des “number formatters” aux champs textes de “Currency
Converter”, suivez ces étapes :
1. Sélectionnez le champ du taux dans la fenêtre de “Currency Converter”.
2. Ouvrez son panneau “Attributes”.
3. Affichez le panneau “Cocoa-Views” d’Interface Builder.
4. Faites glisser un objet “number formatter” du panneau “Cocoa-Views”
sur le champ du taux, comme dans l’illustration 25.
Fig. 25 - Association d’un objet “number formatter” au champ du taux
L’illustration 26 montre la fenêtre Info du “number formatter”. Le panneau “Formatter” s’ouvre automatiquement lorsque vous associez un
“number formatter” à un champ texte. Vous pouvez aussi sélectionner
le panneau depuis le menu déroulant ou en appuyant sur Cmd + 7.
Les réglages par défaut du panneau “Formatter” convenant pour ce
champ, vous n’avez pas besoin de les modifier.
Notez qu’en visualisant le fichier “MainMenu.nib” de “Currency
Converter” en mode liste, vous pouvez examiner la hiérarchie des objets de l’application, et voir chaque objet number formatter associé
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
19
Fig. 26 - Le panneau “Formatter” du champ du taux
avec les champs.
5. Répétez les étapes précédentes pour ajouter un “number formatter”
au champ de la somme à convertir. Sa fenêtre Info devrait ressembler
à celle de l’illustration 26.
6. Sélectionnez la seconde ligne du panneau “Formatter”, ainsi le champ
comporte le signe Dollar.
7. Répétez les étapes précédentes pour ajouter un “number formatter”
au champ affichant le résultat. Sa fenêtre Info devrait ressembler à
celle de l’illustration 26. De même, sélectionnez le format comportant
le signe Dollar.
8. Comme le résultat pourrait afficher une monnaie différente de celle du
Dollar, cochez la case “Localize” dans la section “Options”. L’illustration 27 montre le résultat à obtenir.
Pour plus d’informations sur les “numbers formatters”, voir l’aide d’Interface
Builder ou la documentation Cocoa sur la classe NSNumberFormatter.
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
20
Construction de l’interface
Fig. 27 - Le panneau “Formatter” du champ du résultat
Ajoutez le bouton “Convert”
Pour ajouter le bouton “Convert” à l’application “Currency Converter”,
suivez ces étapes :
1. Faites glisser un objet button du panneau “Cocoa-Views” sur la fenêtre
de “Currency Converter”. Placez le dans le coin inférieur droit, servez
vous des guides pour aligner le côté droit du bouton avec le côté droit
des champs plus haut.
2. Double-cliquez sur le bouton pour sélectionner son texte, puis saisissez
“Convert”. L’illustration 28 montre le résultat.
Fig. 28 - La fenêtre de “Currency Converter” avec le bouton “Convert”
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction de l’interface
21
Ajoutez le séparateur horizontal
Pour ajouter un séparateur horizontal à “Currency Converter”, suivez ces
étapes :
1. Faites glisser un objet box du panneau “Cocoa-Views” sur la fenêtre de
“Currency Converter”. L’objet box ressemble à une ligne horizontale.
Si vous laissez le curseur de la souris au-dessus de cet objet dans la
palette, Interface Builder affichera “NSBox”.
Positionnez l’objet box au-dessus du bouton “Convert” mais endessous des champs textes, avec le bord droit proche du bord droit
de la fenêtre, servez-vous des guides pour l’aligner.
2. Faites glisser la poignée de sélection gauche pour redimensionner
le séparateur, utilisez les guides pour amener le bord gauche du
séparateur à côté du bord gauche de la fenêtre. L’illustration 29 montre
le résultat.
Fig. 29 - La fenêtre de “Currency Converter” avec le séparateur horizontal
Finalisez la mise en page
Dans ce tutoriel, vous avez généralement positionné les objets d’interface
de façon à ce qu’ils soient alignés avec les autres objets et en respectant
l’Aqua guidelines. Toutefois, maintenant que tous les objets d’interface sont
en place, vous pouvez vérifier leur parfait alignement et exécuter d’autres
opérations de mise en page.
1. Sélectionnez les trois champs étiquettes.
2. Pour redimensionner au mieux ces champs, choisissez “Size to Fit” du
menu “Layout”.
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
22
Connexion de l’interface
3. Pour aligner à droite les étiquettes, choisissez “Align Right Edges”
sous “Alignment” dans le menu “Layout”.
4. Maintenant, sélectionnez les trois autres champs.
5. Pour qu’ils aient tous la même taille, choisissez “Same Size” du menu
“Layout”.
6. Pour aligner leurs bords gauches, choisissez “Align Left Edges” sous
“Alignment” dans le menu “Layout”.
7. Afin d’être sûr qu’ils respectent toujours l’Aqua guidelines, déplacezles pour faire apparaı̂tre les guides.
Pour plus d’informations sur les autres options du menu “Layout”, voir l’aide
d’Interface Builder.
Connexion de l’interface
L’application “Currency Converter” a besoin qu’un gestionnaire soit
connecté au bouton “Convert” afin de pouvoir lancer la conversion lorsqu’un utilisateur clique sur ce bouton ou appuie sur la touche Retour. Elle
a aussi besoin qu’un autre gestionnaire soit connecté afin de quitter l’application lorsque sa fenêtre est fermée par l’utilisateur. Ces deux gestionnaires
sont à installer dans le script de l’application “Currency Converter”.
Pour mettre en place ces connexions, suivez ces étapes dans Interface Builder :
1. Sélectionnez le bouton “Convert”, puis afficher son panneau “Attributes”. L’illustration 30 montre la ligne du panneau “Attributes” servant à spécifier le raccourci-clavier du bouton.
Fig. 30 - La partie de la fenêtre Info permettant de spécifier le raccourci-clavier
Dans le menu déroulant indiquant <no key>, choisissez “Return”. Cela
oblige le gestionnaire du bouton “Convert” (le gestionnaire Clicked que
vous connecterez plus tard) à être appelé lorsqu’un utilisateur appuie
sur la touche Retour. L’illustration 31 montre le résultat.
Fig. 31 - Spécification du raccourci-clavier du bouton “Convert”
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Connexion de l’interface
23
Lorsque vous choisissez la touche Retour comme raccourci-clavier du
bouton, vous désignez ce bouton comme bouton par défaut de la
fenêtre. Cocoa colore alors automatiquement le bouton en bleu pour
montrer qu’il s’agit du bouton par défaut.
Vous pouvez utiliser les cases a cocher situées à droite du menu
déroulant pour inclure la touche Alt ou Cmd au raccourci-clavier, mais
cela n’est pas nécessaire pour “Currency Converter”.
2. Avec le bouton “Convert” toujours sélectionné, affichez son panneau
“AppleScript”.
3. Saisissez “convert” comme nom AppleScript du bouton.
4. Cliquez sur le triangle à côté de la case “Action” et cochez la case
“clicked”, afin d’insérer un gestionnaire Clicked dans le script de l’application, ce gestionnaire sera appelé lorsque l’utilisateur cliquera sur
le bouton.
5. Cochez le fichier Application.applescript dans la liste “Script”
pour connecter ce gestionnaire. L’illustration 32 montre la fenêtre Info
obtenue après cette étape.
Fig. 32 - La fenêtre Info après connexion du gestionnaire Clicked au bouton
“Convert”
6. Enregistrez vos changements. Cela oblige Interface Builder à insérer
un gestionnaire Clicked vierge dans le fichier script sélectionné. Si vous
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
24
Connexion de l’interface
cliquez sur le bouton “Edit Script”, Interface Builder ouvrira alors
le fichier dans Project Builder. Vous verrez le code du gestionnaire
Clicked plus tard. Mais pour l’instant, enregistrez juste vos résultats
et restez dans Interface Builder pour ajouter un autre gestionnaire.
7. Pour que l’application quitte lorsqu’un utilisateur ferme sa fenêtre,
vous aurez besoin d’y connecter un gestionnaire spécial. L’illustration 5
montre la fenêtre de MainMenu.nib. L’instance File’s Owner de cette
fenêtre représente NSApp, une constante globale de l’objet application
qui sert comme contrôleur-maı̂tre de l’application.
Sélectionnez l’instance File’s Owner et ouvrez son panneau AppleScript.
8. Cliquez sur le triangle à côté de la case “Application” et cochez la
case de Should Quit After Last Window Closed. Cocher cette case indique que l’application aura ce modèle de gestionnaire, appelé lorsque
l’utilisateur ferme sa fenêtre (“Currency Converter” n’a qu’une seule
fenêtre).
9. Cochez la case du fichier Application.applescript dans la liste
“Script” pour connecter le gestionnaire. L’illustration 33 montre la
fenêtre Info après cette étape.
Fig. 33 - La fenêtre Info après le choix du gestionnaire Should Quit After Last
Window Closed
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Écriture des gestionnaires
25
Écriture des gestionnaires
Lorsque vous connectez un gestionnaire dans Interface Builder et que vous
enregistrez vos changements, Interface Builder insérera automatiquement
dans votre projet Project Builder un gestionnaire vierge. Le listing 1 montre
le gestionnaire Clicked vierge du fichier script Application.applescript.
L’application appelle ce gestionnaire lorsqu’un utilisateur clique sur le bouton “Convert”. Le paramètre theObject est une référence à l’objet bouton
lui-même.
List. 1 - Un gestionnaire Clicked vierge
on clicked theObject
(* Add your script here. *)
end clicked
Dans le gestionnaire Clicked, l’application “Currency Converter” aura besoin
d’obtenir le taux de change et la somme à convertir, de les multiplier pour
déterminer la conversion et d’afficher le résultat.
Le listing 2 montre le gestionnaire Clicked définitif.
Important
Vous n’avez pas besoin de viser explicitement l’application “Currency
Converter” dans ce script, car lorsque rien n’est spécifié par un bloc tell
"application visée", l’application visée est toujours celle hébergeant le
fichier script. C’est la raison pour laquelle, le gestionnaire Clicked du listing
2 ne contient pas de bloc tell application, mais il utilise une instruction tell window pour viser la fenêtre dont il veut obtenir le contenu des
différents champs.
List. 2 - Le gestionnaire Clicked définitif
on clicked theObject
tell window of theObject
try
set theRate to contents of text field "rate" as number
set theAmount to contents of text field "amount"
as number
set contents of text field "total" to
theRate * theAmount
on error
set contents of text field "total" to 0
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003
26
Construction et exécution de l’application
end try
end tell
end clicked
Les points-clés de ce gestionnaire sont :
• le paramètre theObject référence l’objet bouton cliqué
• un bouton, comme d’autres contrôles, est une “view”, et un script peut
obtenir la fenêtre d’une “view”
• un script peut obtenir la référence de n’importe quel objet d’une fenêtre
portant un nom AppleScript (il peut aussi se référer aux éléments par leur
numéro - par exemple, the first text field - ou par leur ID, mais les
noms sont faciles à spécifier et ne changent pas dynamiquement)
• le gestionnaire montre la syntaxe pour obtenir et régler le contenu des
champs textes ; lorsqu’un “number formatter” est attaché à un champ
texte, son contenu devra être explicitement un nombre, comme dans le
listing 2, et non un texte
• le gestionnaire utilise un bloc try, on error pour régler le contenu du
champ résultat à 0 si une erreur survient dans le calcul de conversion ; cela
protège l’utilisateur des possibles messages d’erreur, s’il essaie de convertir
sans fournir en même temps un taux de change et une somme à convertir
Lorsque vous connectez un gestionnaire dans Interface Builder et que vous
cliquez sur le bouton “Edit Script”, Interface Builder insérera un gestionnaire vierge dans le script spécifié et l’ouvrira dans Project Builder. Le
listing 3 montre le gestionnaire Should Quit After Last Window Closed
complété. Ce gestionnaire est appelé lorsqu’un utilisateur ferme la fenêtre
de “Currency Converter”. Lors de cet appel, le gestionnaire retourne true,
indiquant à l’application qu’il faut qu’elle quitte puisque sa dernière fenêtre
a été fermée.
List. 3 - Le gestionnaire Should Quit After Last Window Closed
on should quit after last window closed theObject
return true
end should quit after last window closed
Construction et exécution de l’application
L’application “Currency Converter” est normalement prête à exécuter les
conversions, aussi il est temps de la construire. Pour se faire, utilisez un de
ces mécanismes :
Traduction : trad.applescript
18/9/2003
Tutoriel Currency Converter
Construction et exécution de l’application
27
• appuyez sur Cmd + R
• choisissez “Build and Run” dans le menu “Buid”
• cliquez sur l’icone “Build and Run” (la télévision avec un marteau)
L’illustration 34 montre l’application après réalisation d’une conversion
monétaire. Comme le test a été réalisé sur une machine aux States, la somme
convertie est exprimée en Dollars, mais avec une machine réglée sur une
autre partie du monde, la somme convertie pourra être affichée en Yens ou
en Livres Sterlings.
Fig. 34 - L’application “Currency Converter” après une conversion réussie
Facile ! ! ! ! :-D
Tutoriel Currency Converter
Traduction : trad.applescript
18/9/2003