読書メモ: Ext JS 4 First Look / Capter 3

引き続いて、第3章を読みます。

Upgraded Layouts

レイアウトは最も重要なコンポーネントである。 なぜならコンテナーがどのようにまとめるかを定義するから。

Ext JS 4 layouts

レイアウトはExt JS 4で大幅に進化したよ。

レイアウトはExt JS 2で導入され、 パフォーマンスはよかったけれどフレキシビリティに欠けていた。 Ext JS 3では、フレキシビリティを改善したけどスピードが落ちた。 Ext JS 4では、過去のどのバージョンよりも早くてフレキシブルだ。

ContainerレイアウトとComponentレイアウトの二つのタイプを導入した。

Componentレイアウト
コンポーネントのHTMLエレメントを管理する。 Borderレイアウト、Boxレイアウト、Fitレイアウトなど
Containerレイアウト
親コンテナーとコンテナーの子のサイズを管理する。 Dockレイアウト、Toolbarレイアウト、Fieldレイアウト、TriggerFieldレイアウトなど

Ext JS 3のAutoLayoutはContainerLayoutに置き換えられる。 ContainerLayoutはすべてのレイアウトのベースベースクラス。

Formレイアウトは、Fieldレイアウトによって置き換えられる。

Container layouts

Componentレイアウトの前に既存のContainerレイアウトを見る。 内容的には Ext JS 4実践開発ガイドで説明されていることと大差ない。割愛。

Component layouts

Dock layout

DockLayoutは新しいレイアウトエンジン。 ほとんどのパネルコンポーネントに適用されている。 パネルヘッダーやツールバーをパネルに配置する時に使われている。

P120で

When we analyze the generated code for Ext JS 4 Panel.

とあるのは

When we analyze the generated code for Ext JS 3 Panel.

の間違いと思われる。

同様にP121の

As you can see, the Ext JS 4 Panel has almost no flexibility,….

As you can see, the Ext JS 3 Panel has almost no flexibility,….

の間違い。

ツールバーは、tbar, bbar, fbar の指定ができたが、 それに加えて、rbar, lbar の指定で左右にドッキングすることもできる。 その他に、dockedItemsのメンバーとして指定することも可能。

Ext JS 4 では、パネルヘッダーやツールバーはコンポーネントであり、 dockedItems としてパネルにドッキングする。 dockedItems でドッキングしたものはDockLayoutになると考えて良い。 だから、Ext JS 3 では上部に固定だったパネルヘッダーも上下左右どこにでも配置できるようになった。

ここには書いていないが、dockedItemsコンフィグでツールバーを指定するときには、 bbarもfbarも dock: ‘bottom’ と同じになってしまう。 fbarな形式(配置したボタンが盛り上がっている)のツールバーをdockedItemsコンフィグで指定するときには、

ui: ‘footer’

をつけるとよい。

Tool layout

ヘッダーのツールボタンは、3のときとは違って4ではコンポーネントである。 toolsコンフィグに配列で指定する。 typeでツールのタイプを指定し、handlerでその振る舞いを指定する。 ヘッダーのtoolsコンフィグに適用されるのがToolLayoutってことか。

Field layout

Ext JS 4 では FormLayout はさぽーとされない、 かわりにこのFieldLayoutが導入された。

3の時には、バリデーションのエラーを表示するアイコンのためのスペースを確保しておく必要があったが、 4では、そこはフレームワークが自動的にやってくれるので、その必要はなくなった。

TriggerField layout

これもほぼFieldLayoutと同じ。 3の時には、バリデーションのエラーを表示するアイコンのためのスペースを確保しておく必要があったが、 4では、そこはフレームワークが自動的にやってくれるので、その必要はなくなった。