1. Installation du plugin dans l’IDE

Consulter la documentation :

2. Exploration des composants

  • Créer un projet Vaadin vaadin-components

  • Créer une classe qui hérite de VerticalLayout

  • A l’aide du sampler, ajouter les composants suivantes au layout :

    1. Text

    2. Span

    3. TextField

    4. DatePicker

    5. Grid

    6. Button

  • A quoi correspond le premier argument du constructeur dans les types TextField et DatePicker?

  • A l’aide du navigateur, identifier les éléments HTML correspondants

Pour afficher le layout et ses composants, annoter la class avec @Route("")

3. Exploration des layouts

  • En conservant le même projet, changer le VerticalLayout en :

    • HorizontalLayout

    • FormLayout

  • Qu’observez-vous ?

  • A l’aide du navigateur, identifier les éléments HTML correspondants

4. Création de formulaire

  • Créer un projet Vaadin vaadin-form

  • Créer le formulaire suivant :

    Libellé Type de données

    Nom

    Chaîne de caractères

    Prénom

    Chaîne de caractères

    Date de Naissance

    Date

    Nationalité

    Liste multi-valuée

    Commune d’Origine

    Chaîne de Caractères

    S’enregistrer

    Bouton

5. Envoi du formulaire

Récupérer les valeurs des champs du formulaire côté serveur avec myComponent.getValue()

6. Gestion de l’envoi des évènements côté serveur

  • Valider les champs de deux manières différentes :

    1. A la soumission du formulaire

    2. Chaque fois qu’un champ est modifié

  • Vérifier à l’aide des outils de développement du navigateur comment Vaadin gères les requêtes HTTP

7. Architecture

Modifier le code précédemment écrit pour avoir un code orienté objet, notamment en mettant en œuvre le Principe de Responsabilité Unique

8. Bus de données

Modifier le code précédemment écrit en introduisant un bus d’évènement (par exemple, Google Guava).

9. Gestion des erreurs

  • Reprendre le point ci-dessus en mettant en évidence les champs en erreur

  • Lancer une exception explicitement au clic d’un bouton. Que se passe-t-il ?

  • Ajouter un composant dédié chargé de traiter les erreurs de ce type en les affichant

  • Remplacer le composant par des notifications adaptées

10. Validation

  • Dupliquer le projet vaadin-form

  • Implémenter la validation précédente via la fonctionnalité de validation du framework

11. Modèle

Remplacer les différents champs découplés par un modèle que vous aurez conçu

12. Grid

Cette section permet de s’exercer à la manipulation de Grid.

Soit la classe suivante :

public class Person {

    private String firstName;
    private String lastName;
    private LocalDate birthDate;

    // Getters and setters
}

12.1. Données en dur

  • Créer une liste d’objets Person "en dur".

  • Les afficher dans un composant Grid.

  • Afficher le libellé des colonnes en français, par exemple "Nom", "Prénom" et "Date de naissance".

  • Modifier le format des cellules de date pour afficher une date comme "18 Novembre 1970".

  • Créer une colonne supplémentaire qui affiche un bouton pour supprimer l’élément.

12.2. Données en base de données

Modifier le code pour lire les données depuis une table PERSON préalablement initialisée d’une base de données.

Utiliser la source de données par défaut du serveur d’application TomEE.

12.3. JPA

Modifier le code pour utiliser l’API JPA.

Injecter l’objet EntityManager.