Satimage Précédent
Interfaces HTML
Accueil Documentation Smile Les interfaces utilisateur Interfaces HTML  

Il est possible de réaliser dans Smile des interfaces HTML. Il s'agit d'une alternative aux interface utilisateurs personnalisées utilisant des dialogues de type aqua. De telles interfaces sont des fichiers HTML classiques pouvant inclure des images, des javascripts, des css, etc. Des exemples sont fournis dans le dossier /Applications/Smile/Script examples/Smile examples/User Interface examples.

La licence Smile Server permet, une fois réalisée une interface HTML, de la transformer en web application, accessible depuis des ordinateurs distants via un navigateur internet.

Editer du HTML dans Smile
Dans Smile, les fichiers HTML s'ouvrent dans des fenêtres Unicode dans lesquelles vous pouvez éditer le source du HTML. Lorsque vous appuyez sur ⌘R, une nouvelle fenêtre affiche le rendu HTML (affiché comme dans un navigateur). Par ailleurs, Vous pouvez appuyer sur ^⌘R pour vérifier la syntaxe XML et sur ⌥⌘R pour vérifier la validité du XML relativement à sa DTD. Pour plus d'informations, Veuillez vous référer à la documentation des fenêtres Unicode.
Comment afficher du HTML dans Smile par script
Les fenêtres permettant d'afficher le rendu HTML sont des web window. Pour charger une page HTML (ou une image JPEG, etc) dans une web window, il suffit de définir sa propriété path name à un alias ou du texte contenant une URL valide.
set w to make new web window with properties {path name:alias "...:index.html", script: alias "...:myScript.scpt"}
Par ailleurs, vous pouvez également définir la propriété contained data de la fenêtre avec le texte correspondant au source du HTML. Ceci peut être utile si vous souhaitz générer du HTML dynamiquement.
set w to make new web window
set contained data of w to "<html><header/><body>hello world</body></html>"
Appeler Smile depuis JavaScript: l'objet JavaScript AS
La web window contient un objet nommé AS pour communiquer avec AppleScript. Cet objet n'a pas de propriété, mais toutes ses fontions sont virtuelles et interpétées comme des appels à des handlers AppleScript. Par exemple, supposons que vous avez définit le handler AppleScriptsuivant :
on foo(s)
msg(s)
return 10
end
Ce handler peut résider dans le contexte de Smile ou, mieux, dans le script de la web window.
Vous pouver appeler ce handler depuis JavaScript par :
var res=AS.foo(s);
Les valeurs passées peuvent être des nombres, des strings, des booléens, des tableaux ou des object de classe JSObject.
Vous pouvez aussi utiliser l'objet window pour passer une référence à la web window.
Du coté AppleScript, foo ne doit retourner que des valeurs contenant des types interprétables par JavaScript (string, number, boolean, list ou record)
Appeler JavaScript depuis Smile
  • La commande callJavaScript demande à la command web window d'exécuter un script textuel:
    callJavaScript w script "document.getElementById('x').value"
  • La métode précédente peut s'avérer compliquée si le but est de communiquer à JavaScript des données volumineuses. Dans ce cas il est plus pratique (et plus efficase) d'utiliser la commande callJavaScriptFunction :
    callJavaScriptFunction w subroutine "SetArray" parameters {myHugeArray}
    qui vous permet de passer directement des valeurs AppleScript.
La Console JavaScript
Dans la phase de mise au point, vous pouvez ouvrir une console JavaScript par le menu contextuel.
La console JavaScript est associée à la web window et fonctionne comme les terminaux AppleScript : la touche Enter execute la sélection ou la ligne courante.
Comparaison entre les interfaces HTML et les dialogues
  • Avantages des interfaces HTML
  • Réaliser de telles interfaces est recommandé aux personnes familières avec le développement en HTML/javascript. Cela permet de bénéficier de la mise en page dynamique du HTML, de l'utilisation de css, de la puissance d'utilisation de javascript, etc.

    La navigation dans du HTML est plus adapté dans un contexte où l'utilisateur doit consulter plusieurs pages.

    Le HTML peut être facilement généré, par exemple en utiilsant XSLT.

    Les interfaces HTML sont plus facilement portables sur internet via les fonctionnalités de Smile Server.

  • Désavantages des interfaces HTML
  • Pour des cas simples, les dialogues de type aqua peuvent être réalisées bien plus rapidement dans Smile.

AppleScript et HTML : l'ancienne métode
Smile déclare gérer le scheme "smile". L'ancienne métode utilse ce scheme et l'AppleEvent open location pour gérer les communications de HTML vers Smile. Cette métode est toujours possible, mais déconseillée.
English version
Copyright ©2008 Paris, Satimage