Pages

6 juil. 2008

DataBase (1/5)

property allCards : {} -- liste des scripts objets  
property myQuote : ASCII character (34)
on run
set dataFilePath to ((path to me) as string) & "Contents:Resources:data.txt" -- fichier data
if allCards is {} then
set theData to read_file(dataFilePath as alias)
if theData is in {false, "list"} then
set allCards to {} -- fichier data.txt vide
else
set allCards to theData -- chargement scripts objets
end if
end if
repeat
set btn to button returned of (display dialog "DataBase" buttons {"Quit", "New card...", "All cards"} default button 3 with icon 1)
if btn = "Quit" then
write_file(allCards, dataFilePath as alias)
exit repeat
else
if btn = "New card..." then
newCard()
else if btn = "All cards" then
CardList()
end if
write_file(allCards, dataFilePath as alias)
end if
end repeat
end run

>>Ouvrir le script dans l'éditeur
Exemple de base de données qui gère une bibliothèque illustrant la methode objet. Le script doit être enregistré au format "Application Bundle" pour contenir un fichier texte "data.txt" stockant les données. Le fichier "data.txt" est accessible par ctrl-clic ou clic droit sur le script puis menu contextuel "Show Package Contents".

1/5) Le script principal on run/end run gère l'interface de saisie des fiches de la bases de données. La base de données est chargée au lancement du script dans la variable "theData". Chaque fiche est une instance du script objet contenu dans le handler "createCard". Les fiches sont stockées dans la variable "allCards" qui est une liste des instances du script objet. Les differents items de chaque fiche (auteur, titre, sujet, édition) sont stockés dans les propriétés (property) de chaque instance du script objet.

2/5) Le handler CardList gère l'affichage des fiches, l'effacement d'une fiche et la recherche d'une fiche dans la base de données.

3/5) Le handler newCard crée une nouvelle fiche.

4/5) Le handler createCard contient le script objet proprement dit. Les fiches sont des instances de ce script objet qui sert de modèle. Les differents items de chaque fiche (auteur, titre, sujet, édition) sont stockés dans les propriétés de l'instance du script objet. Les deux handlers "getInfos" et "getInfos2" servent respectivement à l'affichage des fiches et à la recherche d'une fiche.

5/5) Les handlers read_file, write_file, checkEmptyDialog, ItemNumber et ASTID gèrent "les affaires courantes" comme dans un script classique, à savoir : Lecture du contenu d'un fichier, écriture dans un fichier, test de saisie d'une boite de dialogue, numéro d'item dans une liste, fixation du délimitateur d'item dans un script.

Aucun commentaire: