Tutoriel ExtJS N°11 : Layouts

////Tutoriel ExtJS N°11 : Layouts

Découvrez la notion de Layout Manager dans ExtJS sur un exemple concret avec un layout de type ‘hbox’. Comprenez les règles d’arrangement des composants ‘enfants’. Identifiez un atout maître : le ‘dynamic sizing’. Identifiez les différents types de layout Managers proposés par ExtJS, dont le BorderLayout

Prérequis

 Connaissance HTML, javascript.

Objectifs

 Comprendre ce qu’est un layout manager

 Comprendre la valeur ajoutée d’un layout manager

 Identifier les Layout Manager fournis par ExtJS

 Comprendre le conteneur ‘ViewPort’

Lien utile

 DEMO LAYOUTS : clés layout , type, align, pack, flex

  DEMO xType par défaut

  DEMO doLayout()

ext_logo.gif

Programme

 Nos petits déjeuners ExtJS

 Introduction

 Partie 1 : exemple layout manager : ‘hbox’

 Partie 2 : Types de Layout

 Partie 3 : focus BorderLayout & ViewPort

Durée

 30min


formation-sencha-extjs-objis.jpg

Petit-déjeuner ExtJS 6 vendredi 25 septembre – Paris

Découvrez les opportunités offertes par le framework ExtJS 6 pour le développement de vos applications Web et Mobile.

Depuis 2009, Objis accompagne (conseil + formation) les organisations possédant un Backoffice JAVA/PHP/.NET et désireuses de créer des interfaces utilisateurs Web et Mobile à forte valeur ajoutée. Nous avons développé un savoir-faire technique et pédagogique sur Sencha ExtJS , Sencha GXT et l’éditeur Sencha Architect.

INSCRIPTION Petit-déjeuner ExtJS 6

Introduction

Un layout manager est un objet qui assure le rendu visuel des composants enfants d’un conteneur.

Le layout manager par défaut affiche les enfants les un à la suite des autres dans le DOM du conteneur.

Le layout manager par défaut n’assure pas l’ajustement de la taille des enfants par rapport à la taille du conteneur (sizing)

Certains layout managers disponibles dans ExtJS permettent (selon le type et la configuration) d’appliquer des règles de ‘sizing’ et ‘positionning’

Partie 1 : Exemple de layout manager : hbox

Analysez l’écran suivant : dans un panel, 2 zones alignées horizontalement ( 50% / 50% ) en utilisant le layout de type ‘hbox’

tutoriel-extjs-layout-1

 

tutoriel-extjs-layout-2

 Expliquez

Analyse des règles du layout

 En utilisant la documentation ExtJS, expliquez les rôle des attributs ‘align’ et ‘padding’ du layout

 Analysez l’impact du rendu visuel sans ces 2 attributs.

 Modifiez la taille du panel (Ex : largeur = 700 et hauteur = 600). Quel impact sur les règles de layout ? Quelle différence s’il n’y avait pas d’attribut ‘layout’ ?

— > Vous venez de constater un atout fondamental du layout manager : le ‘dynamic sizing’

Analyse des zones

QUESTION : Qu’est ce qu’un ‘xtype’ ? Quel est le xtype par défaut pour un enfant de Panel ?

QUESTION : à quoi sert l’attribut ‘flex’ ?

QUESTION : comment faire pour que la zone de gauche occupe 75% de l’espace disponible horizontalement au lieu de 50% ?

CORRECTION

Tutoriel11_layout_v1

Partie 2 : Types de Layout

En utilisant la documentation ExtJS, expliquez les différents types de layout suivant :

 AbsoluteLayout

 AccordionLayout

 AnchorLayout

 BorderLayout (Seule la ‘region’ centre est obligatoire)

 CardLayout

 ColumnLayout

 FitLayout

 FormLayout

 HBoxLayout

 VBoxLayout

 TableLayout

Partie 3 : BorderLayout & ViewPort

L’exemple de la partie 1 a montré comment un conteneur individuel (ici Panel) peut arranger ses enfants suivant un layout (ici HBoxLayout).

Pour créer des applications ‘type bureau’, nous allons utiliser l’ensemble de la fenêtre navigateur. Il existe un conteneur spécial appelé ‘ViewPort‘ qui encapsule l’ensemble du body de la page, et se redimensionne automatiquement lorsque le navigateur change de taille.

Le viewPort est configuré avec un layout gestionnaire de taille. Ce layout applique les régles de repositionnement aux enfants. Le ViewPort utilise le ‘body’ comme élément principal.

Il n’a pas besoin d’être affiché par programmation.

Nous allons créer une application dynamique avec le ViewPort.

tutoriel-extjs-layout-3

 

tutoriel-extjs-layout-4

 Expliquez le rôle des attributs suivants :

— split

— collapsible

— collapsibleMode

— html

 Redimensionnez la fenêtre navigateur. Notez comment la hauteur des zones Nord/Sud ne sont pas modifiés, tout comme la largeur des zones est/ouest

CORRECTION

Tutoriel11_layout_v2

 

Partie 4 : region ‘center’ du BorderLayout

Ajouter le code permettant d’insérer un Tabpanel dans la région centre du BorderLayout. Ce TabPanel contient 2 onglets contenant du texte.

tutoriel-extjs-4-layout-border-center-tabpanel

 Analysez et utilisez le code suivant :

tutoriel-extjs-4-layout-border-center-tabpanel-gridpanel

CORRECTION

Tutoriel11_layout_v3

QUESTION : Ajoutez un troisième onglet contenant une grille de données

 

tutoriel-extjs-4-layout-border-center-tabpanel-gridpanel

contenant

Tutoriel11_layout_v4

Partie 4 : contenu des Panels enfants

Dans la partie 3, vous avez noté que c’est à travers l’attribut ‘html’ qu’est précisé le contenu de chaque zone. Cela limite le contenu de chaque zone à du html. Or les zones peuvent contenir autre chose.

Ci-dessous nous allons spécifier que la zone centre va contenir un un Conteneur de type TabPanel (qui contiendra dans un premier temps du html :)).

La seule différence entre ces deux exemples est que l’objet config de la zone centre :

— a un attribut ‘xtype’ spécifiant qu’il sera utilisé pour créer un TabPanel (au lieu d’un simple panel)

— a un attribut items précisant le contenu des panels enfants du TabPanel.

tutoriel-extjs-layout-7

Ce qui donne comme rendu ceci :

tutoriel-extjs-layout-6

 Expliquez

 Ajoutez un deuxième objet.

2018-01-28T12:40:45+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java