Ext JS 4 – Creating web page using Ext.container.Viewport class and region propery

The Ext.container.Viewport is used for creating general web page and region property is used for splitting web page into different parts.

Ext.container.Viewport is a specialized container represents the viewable area of the application (the browser area).

It render itself to the document body, there is no need for providing renderTo property and it automatically sizes itself to size of the browser viewport. The viewport also re-size the child elements based on view area(based on browser width and height).

The default layout of the viewport is border layout and we can customize this property according to our requirements.

The viewport does not provide any scrolling. If necessary, the child elements(generally panels) within viewport needs to provide a scroll feature by using autoScroll property.

See the below example for better understanding. This is Home.js file placed into app/view folder.

Ext.define('MyApp.view.Home', {
 extend : 'Ext.container.Viewport',
 layout : 'border',
 items : [{
  region : 'north',
  xtype : 'panel',
  html : '

North Region - Application Header

', border : false, height : 50, margins : '0 0 5 0' }, { region : 'west', xtype : 'panel', collapsible : true, title : 'West Region', html : 'Navigation Links', width : 150 }, { region : 'south', xtype : 'panel', title : 'South Region', collapsible : true, html : 'Footer contents', split : true, height : 100, minHeight : 100 }, { region : 'east', xtype : 'panel', title : 'East Region', collapsible : true, split : true, width : 150 }, { region : 'center', xtype : 'panel', title : 'Center Region', html : 'Application contents' }] });

I have followed MVC pattern, above code is my view and in application launch function I have created the object for Home.js. This is my app.js code for your understanding.
Ext.Loader.setConfig({
 enabled : true
});


Ext.application({
 name : 'MyApp',
 appFolder : 'app',
 launch : function() {
  Ext.create('MyApp.view.Home',{
   
  })
 }
});

Comments

Popular Posts