Tutoriel Currency Converter - Inside Mac OS X
←
→
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
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 conven- tionnels, 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 : trad.applescript@free.fr afin de les corriger dans une prochaine version. Dans l’espoir que cette version française comblera l’attente de tous les uti- lisateurs 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 La fenêtre de l’application “Currency Converter” . . . . . . . . 2 2 Choix du type de projet dans Project Builder . . . . . . . . . . 3 3 Un projet avec tous les groupes développés . . . . . . . . . . . . 3 4 Les fenêtres d’Interface Builder lors de l’ouverture du fi- chier MainMenu.nib . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 Sélection du titre de l’instance “Window” de “MainMenu.nib” . 5 6 La fenêtre par défaut du projet “Currency Converter” . . . . . 6 7 Le panneau “Attributes” de la fenêtre Info d’un objet window . 6 8 La fenêtre Info après retitrage de la fenêtre de “Currency Converter” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 Les réglages finaux des attributs de la fenêtre de “Cur- rency Converter” . . . . . . . . . . . . . . . . . . . . . . . . . . 7 10 Le panneau “Size” de la fenêtre de “Currency Converter” . . . 8 11 La fenêtre de “Currency Converter” après modification . . . . . 9 12 Le panneau “Cocoa-Views” . . . . . . . . . . . . . . . . . . . . 10 13 Positionnement du champ texte servant à saisir le taux . . . . . 10 14 Redimensionnement du champ servant pour le taux . . . . . . . 11 15 Le panneau “Attributes” de la fenêtre Info du champ taux . . . 11 16 La fenêtre Info après indication du nom AppleScript du champ devant recevoir le taux . . . . . . . . . . . . . . . . . . . 12 17 La fenêtre Nib montrant l’objet “AppleScript Info” (non sélectionné) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 18 Positionnement de l’étiquette du taux . . . . . . . . . . . . . . . 13 19 Redimensionnement de l’étiquette du taux . . . . . . . . . . . . 14 20 La fenêtre Info après réglage du texte et des attributs de l’étiquette du taux . . . . . . . . . . . . . . . . . . . . . . . . . 14 21 Le champ étiquette du taux . . . . . . . . . . . . . . . . . . . . 15 22 La fenêtre de “Currency Converter” avec les champs de saisie et étiquette . . . . . . . . . . . . . . . . . . . . . . . . . . 16 V
VI Liste des Illustrations 23 La fenêtre de “Currency Converter” avec les champs pour le résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 24 La fenêtre Info à obtenir . . . . . . . . . . . . . . . . . . . . . . 17 25 Association d’un objet “number formatter” au champ du taux . 18 26 Le panneau “Formatter” du champ du taux . . . . . . . . . . . 19 27 Le panneau “Formatter” du champ du résultat . . . . . . . . . 20 28 La fenêtre de “Currency Converter” avec le bouton “Convert” . 20 29 La fenêtre de “Currency Converter” avec le séparateur horizontal 21 30 La partie de la fenêtre Info permettant de spécifier le raccourci-clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 31 Spécification du raccourci-clavier du bouton “Convert” . . . . . 22 32 La fenêtre Info après connexion du gestionnaire Clicked au bouton “Convert” . . . . . . . . . . . . . . . . . . . . . . . . 23 33 La fenêtre Info après le choix du gestionnaire Should Quit After Last Window Closed . . . . . . . . . . . . . . . . . . . . . 24 34 L’application “Currency Converter” après une conversion réussie 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 Stu- dio, 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 cli- quez 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 fonc- tionnelle, avec une fenêtre qui peut être agrandie, réduite et fermée. L’appli- cation pourra afficher une fenêtre “À propos de. . .” et répondre à un certain nombre de menus. Ces caractéristiques sont fournies par le framework Co- coa, 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 auto- matiquement un fichier nib par défaut nommé MainMenu.nib. Pour lancer Interface Builder, double-cliquez sur l’icone de ce fichier. Vous devez norma- lement 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 Conver- ter” 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 af- fiche 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’af- ficher. 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 re- dimensionner 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 Buil- der 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 Conver- ter” 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 pa- lette. 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 choi- sissant “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 “Cur- rency 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 sai- sie 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’illustra- Traduction : 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 à plu- sieurs é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 “Apple- Script”, 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 pan- neau “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’In- terface 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 “Dupli- cate” 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 “At- tributes”, saisissez “Dollars to Convert” dans le champ “Title”. (d) Pour donner un nom AppleScript au nouveau champ de saisie ser- vant à spécifier la somme à convertir, sélectionnez le champ, ou- vrez 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 à conver- tir, 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 à sai- sir 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 “num- ber formatters” (basés sur la classe Cocoa NSNumberFormatter). Dans le panneau “Cocoa-Views” de l’illustration 12 (page 10), l’objet “number for- matter” 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 Conver- ter”. 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 pan- neau “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 ob- jets 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’illustra- tion 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 en- dessous 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éplacez- les 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 lors- qu’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’appli- cation 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 Buil- der : 1. Sélectionnez le bouton “Convert”, puis afficher son panneau “Attri- butes”. L’illustration 30 montre la ligne du panneau “Attributes” ser- vant à 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 , 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’ap- plication, 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 Apple- Script. 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 in- dique 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 bou- ton “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 instruc- tion 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 gestion- naire 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
Vous pouvez aussi lire