Articles GWT

GWT est un framework fantastique qui permet de construire des sites web de qualité.  Par rapport à des frameworks comme Swing ou SWT, GWT est plutôt limité; cepandant il est facile d'ajouter les fonctionnalités qui nous manquent.  Les articles suivants représentent les notes que j'ai prises durant un an lorsque je devais implanter une fonctionnalité manquante dans GWT.  Les articles notés avec une étoile () indiquent une fonctionnalité dont je me sers très fréquemment.


widget

Comment dessiner un bouton GWT en forme de capsule?

Par défaut, les boutons d'une application GWT sont des rectangles standardisés (sans élément de style appliqué) .  Il est possible d'ajuster l'aspect visuel des boutons pour un look "brandé" en ajustant les paramètres de styles CSS3. L'article suivant explique comment ajuster les paramètres de style dans le but d'obtenir un bouton en forme de capsule.

Catégorie: widgets
Mots clés: bouton
Lire la suite
widget

Comment styliser un CheckBox GWT?

Par défaut, les check boxes d'une application GWT sont des cases standardisés (sans élément de style appliqué) .  Il est possible d'ajuster l'aspect visuel des cases pour un look "brandé". L'article suivant explique comment faire.

Catégorie: widgets
Mots clés: check box
Lire la suite
widget

Comment styliser un RadioButton GWT?

Par défaut, les boutons radio d'une application GWT sont des boutons standardisés (sans élément de style appliqué) .  Il est possible d'ajuster l'aspect visuel des boutons pour un look "brandé". L'article suivant explique comment faire.

Catégorie: widgets
Mots clés: radioButton
Lire la suite
widget

Comment implanter un ImageFactory dans une application GWT? 

Pour l'affichage d'images, GWT utilise un procédé appellé bundles. Ce procédé est vraiment efficace et permet d'afficher des images dans une page web de manière très optimisée. C'est une bonne nouvelle pour l'utilisateur, Par contre, l'écriture des bundles est assez long et laborieux. Voila une moins bonne nouvelle pour le développeur. Par contre, il est possible d'automatiser l'écriture des bundles et d'implanter un ImageFactory. L'article suivant explique comment automiser ce procédé.

Catégorie: widgets
Mots clés: image

Lire la suite
widget

Comment ajouter un icone à un bouton ou un label GWT? 

Parmi les widgets implantés par GWT on trouve les boutons et les étiquettes (labels), mais ceux-ci ne peuvent contenir que du texte. Il est pourtant possible de créer assez facilement un bouton ou une étiquette avec image. Cet article explique comment utiliser et implanter un tel widget.

Catégorie: widgets
Mots clés: bouton, label, icone

Lire la suite
widget

Comment appliquer une couleur gradiente à un panneau GWT ou autre widget?

Un gradient est un arrière-plan d'une certaine couleur qui dégrade vers une seconde.  Cela donne des effets graphiques intéressants.  C'est également un widget utile pour faire des entête et des bas de page de site web. C'est une fonctionnalité qui n'existe pas dans GWT, mais elle est facile à implanter. Cet article explique comment utiliser et implanter une couleur gradiente comme arrière-plan..

Catégorie: widgets
Mots clés: panneau, bouton, couleur, gradient
Lire la suite
widget

Comment stocker des données dans un bouton ou un label GWT?

Parmi les widgets  implantés par GWT on trouve les boutons, mais ceux-ci n'ont pas été conçus pour contenir des données propres à l'utilisateur. Il est pourtant possible de créer assez facilement un bouton avec données. Cet article explique comment utiliser et implanter un tel widget.

Catégorie: widgets
Mots clés: bouton, label
Lire la suite
widget

Comment implanter un ButtonResizer? 

Il est généralement considéré comme une bonne pratique ergonomique d'avoir des boutons de taille identique, par exemple les boutons OK et Annuler, ou encore les boutons Précédent et Suivant dans un assistant (wizard). GWT n'offre aucune fonction native pour le faire, mais il est facile d'implanter une telle fonction.

Catégorie: widgets
Mots clés: bouton
Lire la suite
widget

Comment implanter un TextBox numérique? 

On considère comme une bonne pratique de nettoyer les valeurs entrées par l'utilisateur avant de les utiliser.  En effet, un certain type d'attaque consiste à insérer du code malveillant à l'interieur de champ texte (ce type d'attaque est appelé injection de SQL). Lorsqu'un champ sert à entrer un nombre, il n y a aucune raison de permettre l'insertion de caractères autres que des chiffres. Cet article explique comment utiliser un TextBox numérique, et comment l'implanter dans GWT.

Catégorie: widgets
Mots clés: textbox, nombre
Lire la suite
widget

Comment implanter des TextBox spécialisés?

On considere une bonne pratique de nettoyer les valeurs entrées par l utilisateur avant de les utiliser.  En effet,  un certain type d attaque consiste a insérer du code malveillant à l interieur de champ texte (injection de Sql).  

Cas:
noms et prénoms., adresse de courriel, code postal canadien, numéros de téléphones.

Attention au cas du ctrl.c et ctrl.v

Catégorie: widgets
Mots clés: textbox
Lire la suite
widget

Comment implanter un HintTextBox?

Lorsqu on place un textbox dans un formulaire de saisie, il est souvent pratique de placer autour un label qui explique quel genre d entree on s attend.  Sur un mobile ou l espace est souvent limité, on place qqfois un texte a l interieur meme du textbox, ce texte dusparait lorsqu on ecrit a l interieur de la boite.  Meme si ce widget n est pas implanté nativement par GWT, on peut facilement l implanter un tel widget.

Catégorie: widgets
Mots clés: textbox
Lire la suite
widget

Comment implanter un HashPasswordTextBox?


Catégorie: widgets
Mots clés: textbox, password
Lire la suite
widget

Comment implanter un DisclosePanel?


Catégorie: widgets
Mots clés: panel, disclose
Lire la suite
internationalisation

Comment implanter un MessageFormat dans GWT? 


Catégorie: internationalisation
Mots clés: message, format
Lire la suite
internationalisation

Comment implanter un TimeFormat et DateFormat dans GWT?

DateFormat: implantation serveur, et client par GWT
Catégorie: internationalisation
Mots clés: message, temps
Lire la suite
internationalisation

Comment implanter un RelativeTimeFormat et RelativeDateFormat dans GWT?

Catégorie: internationalisation
Mots clés: message, temps
Lire la suite
internationalisation

Comment implanter un OrdinalFormat dans GWT?


Catégorie: internationalisation
Mots clés: message, nombre
Lire la suite
internationalisation

Comment implanter un TextNumberFormat dans GWT?


Catégorie: internationalisation
Mots clés: message, nombre
Lire la suite
internationalisation

Comment implanter un MoneyAmountFormat dans GWT?


Catégorie: internationalisation
Mots clés: argent, monnaie
Lire la suite
internationalisation

Comment convertir des caractères accentués en HTML?

Implantatiion d'un HtmlEncoder

Catégorie: internationalisation
Mots clés: HTML
Lire la suite
internationalisation

Comment connaitre le fuseau horaire d'un utilisateur?

1) getOffset() in minutes
2) nom du fuseau (ex America/Montreal)Catégorie: internationalisation
Mots clés: argent, monnaie
Lire la suite
widget

Comment implanter un TimePicker? 

Gwt implante de maniere native une datePicker, qui permet de saisir une date dans un calendrier, et qui est plutot bien faite. 
Comment faire pour saisir une heure de la journee, d une maniere plus pratique qu un simple textbox?  Cet article decrit
quelques widgets Open source, et propose sa propre implantation.

Catégorie: widgets
Mots clés: temps, heure
Lire la suite
widget

Comment implanter un LanguagePicker? 

Liste avec Français (French), Deutsh (German)

Catégorie: widgets
Mots clés: langue
Lire la suite
widget

Comment implanter un TimezonePicker? 

Catégorie: widgets
Mots clés: temps, heure
Lire la suite
widget

Comment implanter un ColorPicker? 

Catégorie: widgets
Mots clés: temps, heure
Lire la suite
layout

Comment implanter un GridPanel? 

Pour un developpeur avec une experience Swing ou Swt, il y a deux choses qui peuvent surprendre dans la librairie de Gwt. 
La premiere est l absence de layoutmanager que l on peut associer a des panneaux. En Gwt, les panneaux  ont leur propre layout.
Ce n est pas une contrainte majeur.  La seconde esl l absence d une fonctionnalite qui est equivalente au gridbaglayout de
swing ou au gridlayout de Swt. Pourtant il existe un widget tres utile, le flextable, qui contenu dans un simple panneau
permet d avoir une fonctionnalite tres proche de ce que nous avons en swing ou swt.  Cet article explique comment utiliser
un gridPanel, et comment l implanter.

Catégorie: panneaux et dialogue
Mots clés: gridpanel, Swing, layout
Lire la suite
layout

Comment redimensionner une entete et un bas de page?

Il y a deux choses qui sont irritantes en ce qui concerne les entete et les bas de page.  La premiere est un bas de page
fixé à une position verticale pre determinee, qui occasionne soit une perte d espace en bas de page, soit force l utilisation
à faire un deroulement vers le bas afin de voir le bas de page.  La seconde irritation est une entête et un bas de page à
largeur fixe.  Le GridPanel offre pourtant la possibilité d avoir une entete et un bas de page qui se repositionnent en
fonction des dimensions de l ecran choisis par l utilisateur.


Catégorie: panneaux et dialogue
Lire la suite
layout

Comment implanter un ConfirmDialog? 

Lorsque l utiliteur s apprete a effectuer une action importante, comme par exemple detruire qqchose, c est une bonne approche de demander une confirmation de sa part avant de proceder.  Souvent cela prend la forme d une fenetre de dialogue modale avec des boutons oui, non ou ok,cancel. En Swing, le Joptionpane est souvent utilisé a cette fin.  En Swt c est le.. Il n y a rien de tel en Gwt, pourtout ce framework nous offre tout ce qu il faut pour implanter une tel fonctionnalité.

Catégorie: panneaux et dialogue
Lire la suite
layout

Comment implanter un ExceptionHandler générique? 

Lorsqu on lance une requete au serveur, rien de garanti que celui ci sera capable d effectuer cette requete sans probleme.
Normalement, il faut informer l utilisateur du probleme survenu sur le serveur, et lui demander une piste de solution que
l utilisateur pourrait essayer.  Cet article propose une facon generique de traiter les exceptions, dans les cas ou aucune
solution specifique existe.

Le pire, ignorer. Au strict minimum, commenter. Le mieux, offrir une solution specifique, user oriented. Approche generique,
a qui s adresse t on? Utilisateur final, developpeur?

Catégorie: panneaux et dialogue
Lire la suite
internationalisation

Comment implanter un service de correction orthographique dans GWT?

Jazzy, http://wordlist.sourceforge.net/

Catégorie: internationalisation
Lire la suite
internationalisation

Comment implanter un service de suggestion orthographique dans GWT?

(Did you mean?)

Catégorie: internationalisation
Lire la suite
styles

Comment utiliser Google Fonts dans une application GWT?


Catégorie: ergonomie
Lire la suite
styles

Comment intégrer de nouvelles polices de caractères dans une application GWT?


Catégorie: ergonomie
Lire la suite
graph

Comment faire du dessin vectoriel dans GWT?

Gwt implante les widgets de base du html, mais il est possible de faire du dessin vectoriel avec des libraries tierces.
Cet article en presente qqunes, puis explique comment tracer des lignes simple, des cercles et des arcs. Avec ces bases,
il est possible de tracer les lettres de l alphabet.

Catégorie: graphisme
Lire la suite
graph

Comment créer un watermark dans GWT?

Algèbre linéaire.

Catégorie: graphisme, watermark
Lire la suite
audio

Comment faire jouer un fichier sonore dans GWT?

    attention, bonne version de voices, fichier .ogg

Catégorie: audio
Lire la suite
lock

Comment implanter un captcha par reconnaissance de caractères?

Il existe plusieurs librairies de captcha pour Gwt.  Cet article en presente qquns et propose sa propre implantation.

Catégorie: sécurité
Lire la suite
lock

Comment implanter un captcha par reconnaissance sonore?

...

Catégorie: sécurité
Lire la suite
lock

Comment implanter un captcha par test logique?

...

Catégorie: sécurité
Lire la suite
widget

Comment implanter un ImageSlider?

Gwt, image slider

Catégorie: widgets
Lire la suite
widget

Comment faire des graphiques (charts) dans une application GWT?

Gwt, chart

Catégorie: widgets
Lire la suite
widget

Comment afficher un nuage d'étiquettes (tag cloud)?

Gwt, librairies, étiquettes cliquables
Catégorie: widgets
widget

Comment changer l'image du curseur?

Règle du 0,2 secondes

Catégorie: ergonomie
Lire la suite
widget

Comment utiliser une barre de progression?

Règle du 2 secondes

Catégorie: ergonomie
Lire la suite
styles

Comment afficher un SplashScreen dans une application GWT?

Règle du 2 secondes au démarrage

Catégorie: ergonomie
Lire la suite
styles

Comment implanter la classe Color dans GWT?

Caractéristique de la couleur, luminosité, teinte et saturation. getLighter(), getDarker(), Color.getContrast(color1, color2),, getGrayScale(). Modèles des huits couleurs thématiques Swing.

Catégorie: 
ergonomie
Lire la suite
styles

Comment afficher une image sans distorsion? 

Truc :onLoadHandler(), http://stackoverflow.com/questions/6491025/how-to-get-image-with-servlet-and-display-it-using-gwt-image-class

Catégorie: ergonomie
Lire la suite
styles

Comment griser une image coté client?

HTML5
http://www.permadi.com/tutorial/jsCanvasGrayscale/index.html

Catégorie: ergonomie
Lire la suite
lock

Comment valider une adresse courriel (simple)?

Lorsqu on developpe un formulaire web, il arrive souvent que l on demande a lutilisateur d entrer son adresse email, pour communiquer ulterieurement avec lui. Il est essentiel de valider s il s agit d une adresse valide, au minimum du côté serveur, sans quoi il sera impossible de communiquer par la suite avec l utilisateur. Il est aussi utile de pouvoir le valider côté client, pour plusieurs raisons, de performance et de securité.

D abord, si l erreur est détecté coté client, on offre a l utilisateur l occasion de corriger l erreur sans faire une requete inutile au serveur; celui ci aura donc moins de requêtes a traiter, et pourra donc traiter plus de clients à la fois. Le système sera donc globalement plus performant.  Ensuite, une des types d attaque preferée des pirates est ce qui s appelle l injection de sql, ie l insertion de commandes sql dans des champs texte de façon à connaitre la structure d une base de données dans le but de voler des informations sensibles ou confidentielles. Comme un pirate pourrait inserer de tels commandes dans un champ de courriel, valider cette entrée permet de contrer ce type d attaque.
Ce qui s appelle nettoyer les entrées (sanitize user inputs).

Comme c est le cas souvent avec les verifications, il est conseillé de les implanter coté shared.  En effet, la verfication peut etre utilisé une premiere fois coté client, pour éviter les requêtes inutiles cotés serveur.  La meme verification peut être refaite côté serveur, dans le cas où un pirate intercepterait les paquets envoyés entre le client et le serveur. A double check is a sure check.

La façon la plus facile de valider un courriel est de le valider à l aide d un regex.
Attention, les noms de domaines pourront contenir bientôt des caractères accentués, il faudra en tenir compte dans les regex.

Catégorie: sécurité
Lire la suite
lock

Comment valider une adresse courriel (élaboré)?

Une facon plus elaborée de valider est de vérifier le nom de domaine (dernier suffixe), certains suffixes sont valides, comme .com, .org, et d autres non. Si on se limite aux domaines à deux lettres, qui représente des noms de pays, voici quelques domaines valides: ca de fr.. Et d autres non valides, qz, Une facon supplementaire de valider le courriel est de verifier, si le domaine a deux lettres, que celui ci ne se trouve pas dans la liste suivante.

Si le domaine est valide, on peut vérifier les sous domaines. Les règles permettant de savoir si un sous domaine est valide changent en fonction du domaine. Par exemple, le sous domaine qc.ca n est plus valide pour les nouveaux noms de domaine, mais les domaines existants peuvent l utiliser. A cause du trop grand nombres de regles, valider un sous domaine devient donc trop complexe pour justifier son implémentation.

Catégorie: sécurité
Lire la suite
lock

Comment vérifier une adresse courriel?

Une adresse peut etre valide, mais incorrect, ie ne pas appartenir a l utilisateur.  La seule facon de verifier si une adresse est correcte est d envoyer un courriel a cette adresse et demander au propriétaire légitime du compte de cliquer sur un lien contenu dans le message. Evidemment, cette verification ne peut etre faite qu a partir du serveur. La technique depend de la technologie utilisée coté serveur.  Voici comment avec un système déployé sur app engine.

Catégorie: sécurité
Lire la suite
lock

Comment vérifier si un NAS est valide?

...

Catégorie: sécurité
Lire la suite
lock

Comment vérifier si un numéro de carte de crédit est valide?

...

Catégorie: sécurité
Lire la suite
lock

Quelles informations peut on tirer d une adresse IP?

Lorsqu un client se connecte a un serveur web, ce dernier connait l adresse IP du client, comme par exemple 192.155.. (note, il s agit d une adresse en format IP v4). Il ne s agit pas d une indiscrétion, le serveur devant absolument connaitre l adresse du client pour pouvoir communiquer avec lui. A partir de cette adresse numérique, quelles informations peut on en tirer?

La premiere information est la classe d adresse. Il existe des adresses spéciales, par exemple l adresse de look up. A part ces cas spéciaux, il existe trois classes d adresses IP (classes A B et C). Une classe A appartient soit a un fournisseur de services internet, soit a une grande organisation (ministeres, multi nationale), alors que les classes b et c appartiennent a de plus petites organisations.

La deuxieme information que l on peut tirer de l adresse IP est le pays où est enregistré le nom de domaine (pas nécessairement le nom de pays où se trouve le client physiquement ). Voici une fonction permettant de connaitre le pays en fonction de son adresse IP:

  //return the two-letter country code (ISO..
  public String findCountry(String ipAddress) throws InvalidArgument

Voici son implementation.

La troisieme information que l on peut tirer de l adresse IP est le nom du fournisseur de service Internet.

Voici la méthode et son implémentation

La quatrieme information que l on pourrait tirer est la premiere partie du code postale.  Avec cette information on peut connaitre approximativement l emplacement geographique du client.  Attention avec les adresses IP dynamique cette information est le plus souvent désuete, les tables n étant que periodiquement mis a jour.

La cinquieme information que l on pourrait tirer, en théorie, est l adresse du client.  Cette information appartient au fournisseur de service internet. Elle n est pas publique.  Même les forces policières n y ont accès qu avec un mandat d un juge.

Catégorie: sécurité
Lire la suite
lock

Comment connecter une application GWT avec un compte Facebook? 

Lorsqu'on demande à un utilisateur de s'identifier afin d'accéder à certaines informations personnelles, cela se fait généralement par la création d'un compte utilisateur. Il est de plus en plus courant de d'offrir à l'utilisateur de s'inscrire par le biais d'un compte que l'utilisateur possède déjà avec un réseau social. Cet article explique comment implanter la fonction "Connecter avec un compte Facebook" dans une application web.

Catégorie: sécurité
Mots clés: Facebook, OAuth, login, permission
Lire la suite
lock

Comment connecter une application GWT avec un compte Google?

...

Catégorie: sécurité
Lire la suite
lock

Comment connecter une application GWT avec un compte Twitter?

...

Catégorie: sécurité
Lire la suite
lock

Comment connecter une application GWT avec un compte DropBox?

...

Catégorie: sécurité
Lire la suite
lock

Comment interpréter les codes d'erreur HTML?

...TODO show codes http://www.codeshttp.com/
        //eg. 413 = Request Too Large (tip, clear cookies may solve this problem)

Catégorie: sécurité

Comment obtenir des informations d'un compte Facebook?

Lorsqu'on demande à un utilisateur de s'identifier afin d'accéder à certaines informations personnelles, cela se fait généralement par la création d'un compte utilisateur. Il est de plus en plus courant de d'offrir à l'utilisateur de s'inscrire par le biais d'un compte que l'utilisateur possèdes déjà avec un réseau social.  La première étape est de demander à l'utilisateur de s'inscrire via son compte Facebook pour btenir un code d'accès (access token) permattant d'obtenir des informations d'un compte Facebook.

Cet article explique comment, une fois que l'on dispose d'un code d'accès, utiliser l'API de Facebook afin d'obtenir de ce réseau social des informations reliées au compte, notament le nom d'utilisateur, sa date de naissance, sa photo de profil, et le nombre d'amis.


Catégorie: réseaux sociaux
Mots clés: Facebook, permission
Lire la suite

Comment envoyer des tweets dans une application GWT?

...

Catégorie: réseaux sociaux
Lire la suite
cloudComputing

Comment téléverser des images dans une web server?

Image upload, based on http://stackoverflow.com/questions/1513603/how-to-upload-and-store-an-image-with-google-app-engine-java
Voir Apache Mime, Apache FileUplload
example taken from http://www.jroller.com/hasant/entry/fileupload_with_gwt
Example taken from http://stackoverflow.com/questions/6491025/how-to-get-image-with-servlet-and-display-it-using-gwt-image-class
//

Catégorie: infonuagique
Lire la suite
cloudComputing

Comment accéder à des documents de DropBox dans une application GWT?

...

Catégorie: infonuagique
Lire la suite
architecture

Comment générer des classes EMF pour GWT (côté partagé)?

...

Catégorie: architecture
Lire la suite
architecture

Comment utiliser des objects EMF dans GWT (côté client)?

...

Catégorie: architecture
Lire la suite
architecture

Comment bâtir des écrans génériques pour GWT avec EMF?

...

Catégorie: architecture
Lire la suite
architecture

Comment stocker un objet EMF dans un cookie?

...

Catégorie: architecture
Lire la suite
architecture

Quelles sont les principaux design patterns dans GWT?

...ImageBundle, Imagefactory, Serviceutil, ActionStore

Catégorie: architecture
Lire la suite
architecture

Quelles sont les principaux anti-patterns dans GWT?

...Gwt prefer css over MouseOverListener

Gwt, anti patterns


Catégorie: architecture
Lire la suite
lock

Comment se protéger de l'injection de SQL dans une application GWT?

...

Catégorie: sécurité
Lire la suite
lock

Comment se protéger de l'injection de scripts (xss) dans une application GWT?

...

Catégorie: sécurité
Lire la suite
cloudComputing

Comment utiliser Google Drive dans une application GWT?

...

Catégorie: infonuagique
Lire la suite
geo

Comment localiser à partir d'un code postal?

...

Catégorie: géomatique
Lire la suite
geo

Comment analyser un fichier KLM dans une application GWT?

...

Catégorie: géomatique
Lire la suite
geo

Comment calculer la distance entre deux coordonnées géographique?

Grand cercle, atan, Erreur de discontinuité?

Catégorie: géomatique
Lire la suite
money

Comment utiliser Google Wallet dans une application GWT?

...

Catégorie: commerce électronique
Lire la suite
money

Comment utiliser PayPal dans une application GWT?

...

Catégorie: commerce électronique
Lire la suite