170 likes | 339 Views
Seaside Web dynamique en Smalltalk (Squeak). Smalltalk Entreprise Aubergine Server Noury Bouraqadi http://csl.ensm-douai.fr/noury Ecole des Mines de Douai. Présentation. Masque au maximum le code html Description des pages html générées en Smalltalk
E N D
Seaside Web dynamique en Smalltalk (Squeak) Smalltalk Entreprise Aubergine Server Noury Bouraqadi http://csl.ensm-douai.fr/noury Ecole des Mines de Douai
Présentation • Masque au maximum le code html • Description des pages html générées en Smalltalk • Découple les traitements de l'interface html • Méthode spécifique pour produire l'html (renderOn:) • Simplifie la construction de pages • Imbrication d'éléments • Support automatique des sessions • Outils de test/déboguage en ligne
Exemple du compteur :Code - 1 • WAComponent subclass: #Compteur instanceVariableNames: 'valeur' … • increment valeur := valeur + 1 • decrement valeur := valuer - 1 • initialize super initialize. valeur := 0
Exemple du compteur :Code - 2 • renderOn: html "html est une instance de WAHtmlRenderer" "Afficher la valeur en grand" html heading: valeur. html form: [ "Bouton pour incrémenter" html submitButtonWithAction: [self increment] text: 'Incrémenter'. "Bouton pour décrémenter" html submitButtonWithAction: [self decrement] text: 'Décrémenter'. ]
Exemple du compteur :Extension : Confirmer passage en négatif • renderOn: html html heading: valeur. html form: [ "Bouton pour incrémenter" html submitButtonWithAction: [self increment] text: 'Incrémenter'. "Bouton pour décrémenter" html submitButtonWithAction: [ valeur == 0 ifTrue: [(self confirm: 'Acceptez les négatifs ?') ifTrue: [self decrement]] ifFalse: [self decrement]] text: 'Décrémenter'. ]
Créer de nouvelles pages par imbricationExemple de liste de compteur - 1 • WAComponent subclass: ListeCompteurs instanceVariableNames: 'compteurs'… • initialize super initialize. compteurs := OrderedCollection new • addCompteur compteurs add: (Compteur parent: self)
Créer de nouvelles pages par imbricationExemple de liste de compteur - 2 • renderOn: html html heading: 'Nbre de compteurs ', compteurs size printString html form: [ html submitButtonWithAction: [self addCompteur] text: 'Ajouter un compteur']. html horizontalRule. compteurs do: [:compt| html horizontalRule. compt renderOn: html]
Créer de nouvelles pages par imbricationLa liste de compteur obtenue
Une application Seaside • Un nom • Casse prise en compte • Une classe de démarrage • sous-classe de WAComponent • Instanciée à chaque session • Une configuration (possible en ligne) • Type de session (simple, avec authentification, …) • Afficher/Masquer les outils de déboguage
Webographie • Site officiel : • http://www.beta4.com/seaside2/ • Page d'accueil • http://www.beta4.com/seaside2/tutorial.html • Tutoriel • Seaside swiki : • http://swiki.squeakfoundation.org/sea • Page d'accueil • http://swiki.squeakfoundation.org/sea/60 • Doc Seaside • retour d'expérience avec Seaside