BorderLayoutのネスト
ExtのBorderLayoutで以下の図のようなインターフェースを作りたい場合は、BorderLayoutを「ネスト」させる。
以下、BorderLayoutのメモ。
- layout:'border' を指定したとき、デフォルトでコンテナになるのはPanel。TabPanelなど他のウィジェットも指定できる。
- titleプロパティでタイトル部分を、contentElプロパティに中身になるHTMLのidを指定する。
- BorderLayoutは'center'が必須。centerの周りにnorth、west、south、eastを追加していくという考え方で配置していく。
- JavaScriptのレイアウト用のオブジェクトが見た目の構造を保持するので、中身になる方の要素は階層になっている必要は無い。
- itemsに中身をhashで指定する。中身の要素がitemsを持てばネストする。
<html> <head> <script type="text/javascript" src="ext-2.0/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext-2.0/ext-all.js"></script> <script type="text/javascript"> Ext.onReady(function() { var viewport = new Ext.Viewport({ layout:'border', items:[ { region: 'west', title: 'West', width: 100, contentEl: 'west-div' }, { region: 'center', layout: 'border', items: [ { region: 'north', title: 'Center:North', height: 100, contentEl: 'center-north' }, { region: 'center', layout: 'border', items: [ { region: 'west', title: 'Center:Center:West', contentEl: 'center-center-west' }, {region : 'center', title: 'Center:Center:Center', contentEl: 'center-center-center' } ] } ] } ]}); }); </script> <link rel="stylesheet" type="text/css" href="ext-2.0/resources/css/ext-all.css" /> </head> <body> <div id="west-div" style="background-color: #DDDDFF;height: 100%"></div> <div id="center-north" style="background-color: #FFDDDD;height: 100%"></div> <div id="center-center-west" style="background-color: #DDFFDD;height:100%"></div> <div id="center-center-center" style="background-color: #FFFFDD;height:100%"></div> </body> </html>