Les layouts

L'élément de base pour construire une interface avec ExtJS est le panneau (composant Ext.Panel). Chaque container peut recevoir un ou plusieurs panneaux et la disposition de ces panneaux est contrôlée par le layout du container.

Layout par défaut (Ext.layout.ContainerLayout)

Si on ne spécifie pas de layout, les panneaux sont simplement empilés les uns sur les autres. Si on reprend l'exemple précédent avec 2 panneaux :

index.js
Ext.onReady(function() {
  var viewport = new Ext.Viewport({   
    items: [{
      html: "Panneau 1"
    }, {
      html: "Panneau 2"
    }] 
  });
});

On obtient le résultat suivant :

Layout fit

Si on n'a qu'un seul panneau et qu'on veut qu'il occupe toute la place disponible dans le container, on utilise le layout fit.

index.js
Ext.onReady(function() {
  var viewport = new Ext.Viewport({   
    items: {
      html: "Panneau 1"
    },
    layout: "fit"
  });
});

Le résultat :

La différence est subtile avec le premier exemple, mais si vous regardez bien, la bordure bleu du panneau suit bien les contours de la fenêtre.

Layout absolute

Le layout absolute permet de positionner les panneaux à une position précise avec les paramètres de configuration x et y.

index.js
Ext.onReady(function() {
  var viewport = new Ext.Viewport({   
    items: {
      html: "Panneau 1",
      x: 50,
      y: 20
    },
    layout: "absolute"
  });
});

Le résultat :

Layout accordion

Le layout accordion permet d'empiler les panneaux de façon à ce qu'il n'y en ait qu'un seul de visible. C'est une disposition qui est notamment utilisée dans la barre latérale de l'application MS Outlook. Elle nécessite que le titre des panneaux soit défini avec la propriété title.

index.js
Ext.onReady(function() {
  var viewport = new Ext.Viewport({   
    items: [{
      html: "Panneau 1",
      title: "Titre panneau 1"
    }, {
      html: "Panneau 2",
      title: "Titre panneau 2"
    }],
    layout: "accordion"
  });
});

Le résultat :

Disposition en accordéon

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <php>.

Plus d'informations sur les options de formatage

CAPTCHA
La vérification ne tient pas compte des minuscules ou des majuscules.
Image CAPTCHA
Enter the characters shown in the image.