SlideShare ist ein Scribd-Unternehmen logo
1 von 222
Google Web Toolkit 1.5 JW-GWT
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur  (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...)  Ceci est le Résumé Explicatif du  Code Juridique (la version intégrale du contrat) .
Plan du séminaire
Google Web Toolkit – Plan Général (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Google Web Toolkit – Plan Général (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introduction
Naissance des RIA (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],GWT
Naissance des RIA (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Naissance des RIA (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Naissance des RIA (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIA, Web 2.0 et Ajax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ajax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DHTML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
L’approche de GWT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Avantages de l'approche GWT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principes généraux (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principes généraux (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Schéma général Compilateur Java->Javascript JRE Emulation JSNI JavaScript Native Interface Widgets &Panels I18n RPC Gestion de l'historique (bouton "Back") XML Parser Intégration JUnit
Compilation Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Compilation GWT Java vers JavaScript ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modes de compilation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fichiers générés ("permutation") ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Intégration JSNI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],public static native void alert(String msg) /*-{ $wnd.alert(msg); }-*/;
JRE Emulation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Limitations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comparaisons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Développer une appli GWT
Installation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Installation : arborescence obtenue C:GWT │  about.html  │  about.txt │  applicationCreator.cmd  script de création d'application │  benchmarkViewer.cmd │  COPYING │  COPYING.html │  gwt-benchmark-viewer.jar │  gwt-dev-windows.jar │  gwt-ll.dll │  gwt-module.dtd │  gwt-servlet.jar │  gwt-user.jar │  i18nCreator.cmd  script d'internationalisation │  index.html  point d'entrée html (doc et exemples) │  junitCreator.cmd  script de création tests junit │  projectCreator.cmd  script de création de projet (eclipse) │  release_notes.html │  swt-win32-3235.dll │ ├─── doc  répertoire de documentation ... └─── samples  répertoires d'exemples
Créer et tester une application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],applicationCreator -out dir className
Créer et tester une application : création ,[object Object],[object Object],applicationCreator -out TP1 com.oxiane.formation.tp1.client.App C:GWTTP1 │  App-compile.cmd  script compilation JavaScript │  App-shell.cmd  script exécution mode hosted │ └─── src  répertoire source └─── com └─── oxiane └─── formation └─── tp1  package de l'application │  App.gwt.xml  description du module GWT │ ├─── client  package client (code du client) │  App.java  classe "point d'entrée" │ └─── public  package public (fichiers web) App.css  Feuille de style css de l'appli App.html  Fichier html de chargement web
Tester l'application : mode "hosted" ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fichiers ajoutés par le mode "Hosted" ,[object Object],[object Object],C:GWTTP1 …  code de l'application inchangé └─── tomcat  arborescence simplifiée tomcat ├─── conf │  │  web.xml │  │ │  └─── gwt  │  └─── localhost ├─── webapps │  └─── ROOT │  └─── WEB-INF │  web.xml  conf de l'application web │ └─── work  répertoire de travail tomcat └─── gwt └─── localhost └─── _ tldCache.ser  cache des taglib descriptors
Tester l'application : mode "Web" ,[object Object],[object Object]
Fichiers ajoutés par le mode "Web" ,[object Object],C:GWTTP1 ...  répertoires inchangés └─── www  répertoire ajouté ├─── .gwt-tmp  tmp de compilation │  └─── compiler │  └─── com.oxiane.formation.tp1.App  … └─── com.oxiane.formation.tp1.App  répertoire de l'appli … │  App.css │  App.html … │  com.oxiane.formation.tp1.App.nocache.js  appli JavaScript … └─── gwt  fichiers gwt TP 1
Utilisation dans un IDE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cycle de développement ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],projectCreator Eclipse ? applicationCreator I18n ? i18nCreator JUnit ? junitCreator Import du projet Fin Début Eclipse ? O N O O O N N N
Script "projectCreator" ,[object Object],[object Object],[object Object],projectCreator [-ant nomProjet]  Générer un script Ant de compilation des sources (extension ".ant.xml" ajoutée) [-eclipse nomProjet]  Création pour un projet eclipse [-out répertoire]  Répertoire de génération ("." par défaut) [-overwrite]  Ecraser les fichiers existants (alerte sinon) [-ignore]  Ignorer les fichiers existants (ne pas écraser) [-addToClassPath entrée]  Ajouter une entrée au classPath
Script "applicationCreator" ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],applicationCreator [-eclipse nomProjet]  Création pour un projet eclipse [-out dir]  Répertoire de génération ("." par défaut) [-overwrite]  Ecraser les fichiers existants (alerte sinon) [-ignore]  Ignorer les fichiers existants (ne pas écraser) [-addToClassPath entrée]  Ajouter une entrée au classPath [-addModule module]  Ajouter un module GWT dans l'héritage nomCompletClasse  Nom complet de la classe à créer
Script "i18nCreator" ,[object Object],[object Object],[object Object],[object Object],[object Object],i18nCreator [-eclipse nomProjet]  Création pour un projet eclipse [-out répertoire]  Répertoire de génération ("." par défaut) [-createConstantsWithLookup]  ConstantsWithLookup plutôt que Constants [-createMessages]  Messages plutôt que Constants [-overwrite]  Ecraser les fichiers existants (alerte sinon) [-ignore]  Ignorer les fichiers existants (ne pas écraser) nomCompletInterface  Nom complet de l'interface à créer
Script "junitCreator" ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],junitCreator -junit cheminJUnit  Chemin vers le jar de junit -module nomModule  Nom du module GWT à utiliser [-eclipse nomProjet]  Création pour un projet eclipse [-out répertoire]  Répertoire de génération ("." par défaut) [-overwrite]  Ecraser les fichiers existants (alerte sinon) [-ignore]  Ignorer les fichiers existants (ne pas écraser) [-addToClassPath entrée]  Ajouter une entrée au classPath
Import dans eclipse ,[object Object],[object Object],[object Object]
Autres alternatives de création de projet ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],TP 2
Cypal Studio (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cypal Studio (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cypal Studio (3) ,[object Object],[object Object],[object Object],[object Object]
Cypal Studio (4) ,[object Object],[object Object]
Cypal Studio (5) ,[object Object],[object Object],[object Object],[object Object]
Les composants graphiques
Interface EntryPoint ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],public class App implements EntryPoint { public void onModuleLoad() { Label label = new Label("Hello world !"); RootPanel.get().add(label); } }
Les fenêtres et les panels ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Panel Widget Widget Panel Widget
Window ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RootPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les composants graphiques ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],TP 3
UIObject ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Début de hiérarchie (UIObject) UIObject MenuItem MenuItemSeparator TreeItem Widget Composite FileUpload FocusWidget Frame Hidden Hyperlink Image Label MenuBar Panel Tree NamedFrame
Widget ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget
MenuBar, MenuItem et Command ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget MenuBar
Interfaces HasText et HasHTML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface HasAnimation ,[object Object],[object Object],[object Object],[object Object],[object Object]
MenuBar : exemple MenuBar menu = new MenuBar(); MenuBar menuFichier = new MenuBar(true); menuFichier.addSeparator(); Command cmdPlusTard = new Command() { public void execute() { Window.alert("pas implémentée !"); } }; menuFichier.addItem("Quitter", cmdPlusTard); menu.addItem("Fichier", menuFichier); MenuBar menuAide = new MenuBar(true); menuAide.addItem("A propos", new Command() { public void execute() { ouvrirAPropos(); } }); menu.addItem("Aide", menuAide); RootPanel.get().add(menu); TP 4
Widget : Image ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Image
Widget : Frame ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Frame NamedFrame
Widget : Hidden ,[object Object],[object Object],UIObject Widget Hidden
Widget : Hyperlink ,[object Object],[object Object],[object Object],[object Object],UIObject Widget Hyperlink
Interface HasDirection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface HasWordWrap ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interface HasAlignment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hiérarchie partielle (Label) UIObject Widget Label HTML InlineLabel InlineHTML
Widget : Label ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Label InlineLabel
Widget : HTML ,[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget HTML InlineHTML
Widget : Tree ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Tree
Widget : FileUpload ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FileUpload
Hiérarchie partielle (FocusWidget) UIObject Widget FocusWidget Anchor ListBox SimpleCheckBox ButtonBase RichTextArea Button SimpleRadioButton TextBoxBase CheckBox CustomButton RadioButton PushButton ToggleButton TextArea TextBox PasswordTextBox
Interface HasFocus ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Widget : FocusWidget ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget
Interface HasName ,[object Object],[object Object],[object Object],[object Object]
Widget : Anchor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget Anchor
Widget : ButtonBase et Button ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase Button
Widget : CheckBox, SimpleCheckBox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase CheckBox SimpleCheckBox
Widget : RadioButton, SimpleRadioButton ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase CheckBox SimpleCheckBox RadioButton SimpleRadioButton
Widget : CustomButton ,[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase CustomButton
Widget : PushButton ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase CustomButton PushButton
Widget : ToggleButton ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ButtonBase CustomButton ToggleButton
Widget : TextBoxBase ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget TextBoxBase
Widget : TextBox, PasswordTextBox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget TextBoxBase TextBox
Widget : TextArea ,[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget TextBoxBase TextArea
Widget : RichTextArea ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget RichTextArea
Widget : ListBox (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget FocusWidget ListBox
Widget : ListBox (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],TP 5
La notion de layout ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Panel, Composite et HasWidgets ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface HasWidgets ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hiérarchie partielle (Panel) UIObject Widget Panel ComplexPanel HorizontalSplitPanel AbsolutePanel HTMLTable SimplePanel VerticalSplitPanel CellPanel DeckPanel FlowPanel HTMLPanel StackPanel RootPanel DockPanel HorizontalPanel VerticalPanel DecoratedStackPanel DecoratorPanel FocusPanel FormPanel PopupPanel ScrollPanel DecoratedPopupPanel DialogBox
Panel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel
Panel : attachement et détachement (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],Widget conteneur  Widget contenu setWidget (ou add) adopt  ->setParent() onAttach() //positionne les listeners doAttachChildren() //propager à ses widgets onLoad() setWidget(avec null ou remove) orphan  ->setParent(null) onDetach() onUnload doDetachChildren() //propager à ses widgets //retire les listeners
Panel : attachement et détachement (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
SimplePanel, ComplexPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel SimplePanel UIObject Widget Panel ComplexPanel
Interface IndexedPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FlowPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel FlowPanel
CellPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel CellPanel
HorizontalPanel, VerticalPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel CellPanel HorizontalPanel
DockPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel CellPanel DockPanel
Exemple DockPanel
DeckPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel DeckPanel
StackPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel StackPanel
DecoratedStackPanel ,[object Object],[object Object],UIObject Widget Panel ComplexPanel StackPanel Decorated StackPanel
AbsolutePanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel AbsolutePanel RootPanel
HTMLPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ComplexPanel HTMLPanel
HTMLTable ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel HTMLTable
Grid ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel HTMLTable Grid
FlexTable ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel HTMLTable FlexTable
DecoratorPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel SimplePanel DecoratorPanel
PopupPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel PopupPanel Decorated PopupPanel SimplePanel
DialogBox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel PopupPanel Decorated PopupPanel DialogBox SimplePanel
Exemple DialogBox
ScrollPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel ScrollPanel SimplePanel
HorizontalSplitPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel Horizontal SplitPanel
VerticalSplitPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Panel Vertical SplitPanel
Intégrer GWT dans une page HTML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],TP 6
Hiérarchie partielle (Composite) UIObject Widget Composite CaptionPanel TabPanel DisclosurePanel SuggestBox DecoratedTabPanel TabBar DecoratedTabBar
Widget : Composite ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite
Widget : CaptionPanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite CaptionPanel
Widget : DisclosurePanel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite DisclosurePanel
Widget : SuggestBox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite SuggestBox
Widget : TabBar, DecoratedTabBar ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite Decorated TabBar TabBar
Widget : TabPanel ,[object Object],[object Object],[object Object],[object Object],UIObject Widget Composite Decorated TabPanel TabPanel
Autres composants ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
S'abstraire du JavaScript ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gestion de l'i18n
Gestion de l’internationalisation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DeferredBinding ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
I18n : configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<module> <inherits name='com.google.gwt.user.User'/> <inherits name='com.google.gwt.i18n.I18N'/> <extend-property name=&quot;locale&quot; value=&quot;fr&quot;/> … </module>
NumberFormat ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],NumberFormat fmt1 = NumberFormat.getDecimalFormat(); double value1 = 12345.6789; String formatted = fmt1.format(value1); double value2 = fmt1.parse(&quot;12345.6789&quot;); NumberFormat fmt2 = NumberFormat.getFormat(&quot;000000.000000&quot;); formatted = fmt2.format(value1);
DateTimeFormat ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gestion des messages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
I18n : interface Constants ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Créer l'interface public interface MySettings extends Constants { String welcomeMsg();  String logoImage(); } Dans MySettings.properties welcomeMsg = Bonjour logoImage = /images/logo.jpg Utilisation dans le code MySettings s = GWT.create( MySettings.class); String msg = s.getWelcomeMsg();
I18n : interface ConstantsWithLookup ,[object Object],[object Object],[object Object],[object Object],[object Object]
I18n : interface Messages ,[object Object],[object Object],[object Object],Dans MySettings.properties welcomeMessage = Bonjour {0} {1} logoImage = /images/logo.jpg Interface correspondante public interface MySettings extends Constants { String welcomeMessage(String nom, String prenom);  String logoImage(); } Utilisation dans le code MySettings settings = GWT.create(MySettings.class); String msg = settings.getWelcomeMessage( login.getNom(), login.getPrenom());
(Dés)Avantages de l'inclusion statique ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
I18n : inclusion dynamique ,[object Object],[object Object],[object Object],[object Object],[object Object],var MySettings = { welcomeMessage: &quot;Bienvenue&quot;, logoImage: &quot;/images/logo.jpg&quot; }; Dictionary settings = Dictionary.getDictionary(&quot;MySettings&quot;); TP 7
Les styles CSS
Les styles CSS (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],H1 { text-align: center } .grand { font-size: 20pt } #titre { color: red } H1.grand { color: blue }
Les styles CSS (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],H1, H2, H3 { font-style: bold } H1 { color: green; text-align: center; } --- <BODY> <H1>Un exemple</H1> <P>Avec un <STRONG>paragraphe</STRONG> </P> </BODY> --- /* bleu pour contenu du BODY */ BODY { color: blue } /* rouge pour STRONG dans P */ P STRONG { color: red }
Les styles CSS (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],H1 { font-family: 'Times New Roman', serif; font-style: italic; font-variant: normal; font-size: large; font-weight: bold; font-stretch: expanded; } H2 { font: Times 13px bold; } H3 { font-weight: bold }
Style des widgets ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Dans le code :  Dans le fichier de styles : widget.setStyleName(&quot;special&quot;);  .special { float: right; margin: 5px; }
Style par défaut ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thèmes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modification du style ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Style primaire  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Style secondaire ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Style dépendant  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],TP 8
Les styles CSS
Le modèle événementiel ,[object Object],[object Object],[object Object],[object Object],[object Object],Document Elément2 Element1 Document Elément2 Element1 Event bubbling (modèle Internet Exporer) Event capture (modèle Netscape)
Event ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface EventListener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface EventPreview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Schéma général SourcesConceptEvents -addConceptListener -removeConceptListener ConceptListener -onEtat1(…) -onEtat2(…) ConceptListenerCollection -fireEtat1(…) -fireEtat2(,…) ConceptListenerAdapter -onEtat1(…) { } -onEtat2(…) { } Widget Reçoit des Event du DOM, les retraduit en &quot;Concept&quot; en invoquant les &quot;fire&quot; MyListener1 -onEtat1(…) { … } -onEtat2(…) { … } MyListener2 -onEtat1(…) Interface Class implémente Class contient un Class hérite de Marque la capacité de contenir des listeners Simplifie la gestion de la collection de listeners en propageant les &quot;fire&quot; (invoque les &quot;on&quot;) Réagit aux événements Les méthodes reçoivent le widget en paramètre et éventuellement d'autres valeurs Marque un listener Simplifie si méthodes &quot;on&quot; nombreuses (implémentation vide) Ne redéfinit pas toutes les méthodes &quot;on&quot; Classe développée
Exemple avec Button et Click SourcesClickEvents -addClickListener -removeClickListener ClickListener -onClick(Widget) ClickListenerCollection -fireClick(Widget) Button MyClickListener() { public void onClick(Widget) {   Window.alert(&quot;Click !&quot;);   } } Pas de ClickListenerAdapter (une seule méthode dans l'interface)
Interface ClickListener ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interface LoadListener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface ChangeListener ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interface FocusListener ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interface KeyboardListener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface MouseListener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interface MouseWheelListener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common

Weitere ähnliche Inhalte

Was ist angesagt?

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Microsoft Décideurs IT
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascriptjp_mouton
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frBen Abdallah Helmi
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiEl Habib NFAOUI
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALYoussouph Barry
 

Was ist angesagt? (20)

Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Axis2 services fr
Axis2 services frAxis2 services fr
Axis2 services fr
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
Ejb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans frEjb3 3-message-driven-beans fr
Ejb3 3-message-driven-beans fr
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Présentation WPF
Présentation  WPFPrésentation  WPF
Présentation WPF
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
 
Ejb3 2-session-beans fr
Ejb3 2-session-beans frEjb3 2-session-beans fr
Ejb3 2-session-beans fr
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPAL
 

Andere mochten auch

Food substitution | AIFST Annual conference 2015
Food substitution | AIFST Annual conference 2015Food substitution | AIFST Annual conference 2015
Food substitution | AIFST Annual conference 2015Janine Curll
 
Food adulteration
Food adulterationFood adulteration
Food adulterationrashed027
 
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...XIMEA
 
Anesthetic management of hyperthyroid patient posted for elective
Anesthetic management of hyperthyroid patient posted  for electiveAnesthetic management of hyperthyroid patient posted  for elective
Anesthetic management of hyperthyroid patient posted for electiveRavindra Singh Chouhan
 
FOOD ADULTERATION Prasad ppt1
FOOD ADULTERATION Prasad ppt1FOOD ADULTERATION Prasad ppt1
FOOD ADULTERATION Prasad ppt1prasadnalla
 
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014Asian Food Regulation Information Service
 
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1QIAGEN
 
Nias nagas presentar
Nias nagas presentarNias nagas presentar
Nias nagas presentarChikytaty
 
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIA
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIAPUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIA
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIAEsteban Uyarra Encalado
 
Evolución normativa en España hasta las NIAS
Evolución normativa en España hasta las NIASEvolución normativa en España hasta las NIAS
Evolución normativa en España hasta las NIASEsteban Uyarra Encalado
 
Quick Start Guide Minelab GPX-4000 Metal Detector French Language 4901 0060 ...
Quick Start Guide Minelab GPX-4000 Metal Detector  French Language 4901 0060 ...Quick Start Guide Minelab GPX-4000 Metal Detector  French Language 4901 0060 ...
Quick Start Guide Minelab GPX-4000 Metal Detector French Language 4901 0060 ...Serious Detecting
 
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language ...
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language      ...Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language      ...
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language ...Serious Detecting
 
Treasury Web Report
Treasury Web ReportTreasury Web Report
Treasury Web Report3V FINANCE
 
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...Pôle Qualiméditerranée
 

Andere mochten auch (20)

Guide Entrepreneur 2.0
Guide Entrepreneur 2.0Guide Entrepreneur 2.0
Guide Entrepreneur 2.0
 
Food substitution | AIFST Annual conference 2015
Food substitution | AIFST Annual conference 2015Food substitution | AIFST Annual conference 2015
Food substitution | AIFST Annual conference 2015
 
Food adulteration
Food adulterationFood adulteration
Food adulteration
 
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...
XIMEA Presentation by Max Larin: HSI Cameras for Food Safety and Fraud Detect...
 
Anesthetic management of hyperthyroid patient posted for elective
Anesthetic management of hyperthyroid patient posted  for electiveAnesthetic management of hyperthyroid patient posted  for elective
Anesthetic management of hyperthyroid patient posted for elective
 
FOOD ADULTERATION Prasad ppt1
FOOD ADULTERATION Prasad ppt1FOOD ADULTERATION Prasad ppt1
FOOD ADULTERATION Prasad ppt1
 
Food adulteration
Food adulterationFood adulteration
Food adulteration
 
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014
MSU Food Fraud Initiative Emering Issues & New Frontiers for FDA Regulation_2014
 
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1
Digital RNAseq Technology Introduction: Digital RNAseq Webinar Part 1
 
Food adulteration
Food adulterationFood adulteration
Food adulteration
 
Food Fraud - Threats & Impacts
Food Fraud - Threats & ImpactsFood Fraud - Threats & Impacts
Food Fraud - Threats & Impacts
 
Economically Motivated Adulteration
Economically Motivated AdulterationEconomically Motivated Adulteration
Economically Motivated Adulteration
 
Nias nagas presentar
Nias nagas presentarNias nagas presentar
Nias nagas presentar
 
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIA
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIAPUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIA
PUESTA EN MARCHA DE LAS NORMAS INTERNACIONALES DE AUDITORIA
 
Evolución normativa en España hasta las NIAS
Evolución normativa en España hasta las NIASEvolución normativa en España hasta las NIAS
Evolución normativa en España hasta las NIAS
 
Quick Start Guide Minelab GPX-4000 Metal Detector French Language 4901 0060 ...
Quick Start Guide Minelab GPX-4000 Metal Detector  French Language 4901 0060 ...Quick Start Guide Minelab GPX-4000 Metal Detector  French Language 4901 0060 ...
Quick Start Guide Minelab GPX-4000 Metal Detector French Language 4901 0060 ...
 
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language ...
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language      ...Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language      ...
Instruction Manual Minelab GPX 4800-5000 Metal Detector French Language ...
 
Treasury Web Report
Treasury Web ReportTreasury Web Report
Treasury Web Report
 
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...
Repères et Outils pour l’Évaluation de l’Aptitude au Contact Alimentaire de M...
 
Nias
NiasNias
Nias
 

Ähnlich wie Google Web Toolkit 1.5 Presentation Web Creative Common

Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Développement Web
Développement WebDéveloppement Web
Développement Webmastertic
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
Yass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxYass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxyassinesouli2
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfRachida19
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Développement Web
Développement WebDéveloppement Web
Développement Webmastertic
 
Les 11 bonnes raisons de migrer vers Windows Server 2008
Les 11 bonnes raisons de migrer vers Windows Server 2008Les 11 bonnes raisons de migrer vers Windows Server 2008
Les 11 bonnes raisons de migrer vers Windows Server 2008fabricemeillon
 
La plateforme Web Microsoft
La plateforme Web MicrosoftLa plateforme Web Microsoft
La plateforme Web MicrosoftChristophe Lauer
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...CERTyou Formation
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxHamzaElgari
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 

Ähnlich wie Google Web Toolkit 1.5 Presentation Web Creative Common (20)

Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
Gwt final
Gwt finalGwt final
Gwt final
 
Yass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxYass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptx
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
Les 11 bonnes raisons de migrer vers Windows Server 2008
Les 11 bonnes raisons de migrer vers Windows Server 2008Les 11 bonnes raisons de migrer vers Windows Server 2008
Les 11 bonnes raisons de migrer vers Windows Server 2008
 
La plateforme Web Microsoft
La plateforme Web MicrosoftLa plateforme Web Microsoft
La plateforme Web Microsoft
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptx
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 

Mehr von Stéphane Liétard

DevoxxFR Présentation des portails en 2014
DevoxxFR Présentation des portails en 2014DevoxxFR Présentation des portails en 2014
DevoxxFR Présentation des portails en 2014Stéphane Liétard
 
Introduction aux méthodes agiles pour conduite de projet
Introduction aux méthodes agiles pour conduite de projetIntroduction aux méthodes agiles pour conduite de projet
Introduction aux méthodes agiles pour conduite de projetStéphane Liétard
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous AndroidStéphane Liétard
 

Mehr von Stéphane Liétard (7)

Présentation Oxiane 2016
Présentation Oxiane 2016Présentation Oxiane 2016
Présentation Oxiane 2016
 
Présentation OXiane 2015
Présentation OXiane 2015Présentation OXiane 2015
Présentation OXiane 2015
 
DevoxxFR Présentation des portails en 2014
DevoxxFR Présentation des portails en 2014DevoxxFR Présentation des portails en 2014
DevoxxFR Présentation des portails en 2014
 
Présentation OXiane Value
Présentation OXiane ValuePrésentation OXiane Value
Présentation OXiane Value
 
Introduction aux méthodes agiles pour conduite de projet
Introduction aux méthodes agiles pour conduite de projetIntroduction aux méthodes agiles pour conduite de projet
Introduction aux méthodes agiles pour conduite de projet
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
 

Google Web Toolkit 1.5 Presentation Web Creative Common

  • 1. Google Web Toolkit 1.5 JW-GWT
  • 2. Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) Ceci est le Résumé Explicatif du Code Juridique (la version intégrale du contrat) .
  • 4.
  • 5.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Schéma général Compilateur Java->Javascript JRE Emulation JSNI JavaScript Native Interface Widgets &Panels I18n RPC Gestion de l'historique (bouton &quot;Back&quot;) XML Parser Intégration JUnit
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 28.
  • 29. Installation : arborescence obtenue C:GWT │ about.html │ about.txt │ applicationCreator.cmd script de création d'application │ benchmarkViewer.cmd │ COPYING │ COPYING.html │ gwt-benchmark-viewer.jar │ gwt-dev-windows.jar │ gwt-ll.dll │ gwt-module.dtd │ gwt-servlet.jar │ gwt-user.jar │ i18nCreator.cmd script d'internationalisation │ index.html point d'entrée html (doc et exemples) │ junitCreator.cmd script de création tests junit │ projectCreator.cmd script de création de projet (eclipse) │ release_notes.html │ swt-win32-3235.dll │ ├─── doc répertoire de documentation ... └─── samples répertoires d'exemples
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. Début de hiérarchie (UIObject) UIObject MenuItem MenuItemSeparator TreeItem Widget Composite FileUpload FocusWidget Frame Hidden Hyperlink Image Label MenuBar Panel Tree NamedFrame
  • 57.
  • 58.
  • 59.
  • 60.
  • 61. MenuBar : exemple MenuBar menu = new MenuBar(); MenuBar menuFichier = new MenuBar(true); menuFichier.addSeparator(); Command cmdPlusTard = new Command() { public void execute() { Window.alert(&quot;pas implémentée !&quot;); } }; menuFichier.addItem(&quot;Quitter&quot;, cmdPlusTard); menu.addItem(&quot;Fichier&quot;, menuFichier); MenuBar menuAide = new MenuBar(true); menuAide.addItem(&quot;A propos&quot;, new Command() { public void execute() { ouvrirAPropos(); } }); menu.addItem(&quot;Aide&quot;, menuAide); RootPanel.get().add(menu); TP 4
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69. Hiérarchie partielle (Label) UIObject Widget Label HTML InlineLabel InlineHTML
  • 70.
  • 71.
  • 72.
  • 73.
  • 74. Hiérarchie partielle (FocusWidget) UIObject Widget FocusWidget Anchor ListBox SimpleCheckBox ButtonBase RichTextArea Button SimpleRadioButton TextBoxBase CheckBox CustomButton RadioButton PushButton ToggleButton TextArea TextBox PasswordTextBox
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94. Hiérarchie partielle (Panel) UIObject Widget Panel ComplexPanel HorizontalSplitPanel AbsolutePanel HTMLTable SimplePanel VerticalSplitPanel CellPanel DeckPanel FlowPanel HTMLPanel StackPanel RootPanel DockPanel HorizontalPanel VerticalPanel DecoratedStackPanel DecoratorPanel FocusPanel FormPanel PopupPanel ScrollPanel DecoratedPopupPanel DialogBox
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121. Hiérarchie partielle (Composite) UIObject Widget Composite CaptionPanel TabPanel DisclosurePanel SuggestBox DecoratedTabPanel TabBar DecoratedTabBar
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158. Schéma général SourcesConceptEvents -addConceptListener -removeConceptListener ConceptListener -onEtat1(…) -onEtat2(…) ConceptListenerCollection -fireEtat1(…) -fireEtat2(,…) ConceptListenerAdapter -onEtat1(…) { } -onEtat2(…) { } Widget Reçoit des Event du DOM, les retraduit en &quot;Concept&quot; en invoquant les &quot;fire&quot; MyListener1 -onEtat1(…) { … } -onEtat2(…) { … } MyListener2 -onEtat1(…) Interface Class implémente Class contient un Class hérite de Marque la capacité de contenir des listeners Simplifie la gestion de la collection de listeners en propageant les &quot;fire&quot; (invoque les &quot;on&quot;) Réagit aux événements Les méthodes reçoivent le widget en paramètre et éventuellement d'autres valeurs Marque un listener Simplifie si méthodes &quot;on&quot; nombreuses (implémentation vide) Ne redéfinit pas toutes les méthodes &quot;on&quot; Classe développée
  • 159. Exemple avec Button et Click SourcesClickEvents -addClickListener -removeClickListener ClickListener -onClick(Widget) ClickListenerCollection -fireClick(Widget) Button MyClickListener() { public void onClick(Widget) { Window.alert(&quot;Click !&quot;); } } Pas de ClickListenerAdapter (une seule méthode dans l'interface)
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.