Home   Single Page

IDスペース

視覚表現をいくつかのZUMLページに分けるのはよくあることです。たとえば、注文購入のページ、支払いモーダルのダイアログ。すべてのコンポーネ ントが同じデスクトップで認識できるのなら、開発者は一つのデスクトップに追加されるすべてのページに対して、すべての識別子を独特なものにしなければな りません。

IDスペースのコンセプトはこの問題を解決するため導入したものです。IDスペースはデスクトップコンポーネントのサブセットです。そのユニーク性はIDスペース内でのみ保障されています。

IDスペースのもっとも簡単な形はウィンドウ(org.zkoss.zul.Window) です。ひとつのウィンドウ(ウィンドウ自体を含む)の子コンポーネントは独立したIDスペースを形作ります。このようにして、ウィンドウ をそれぞれのページの最上段のコンポーネントとして使えます。そうして開発者はそれぞれのページ別々にユニーク性を保持する必要があります。

一般的に、org.zkoss.zk.ui.IdSpaceインターフェイスを実装する限り、どのコンポーネントもIDスペースを形成できます。ページはまたIdSpaceインターフェイスを実装するので、ページは空間所有者なのです。

最上段のIDスペースコンポーネントはIDスペースの所有者と呼ばれていて、コンポーネントインターフェイスの中からgetSpaceOwnerメソッドによってIDスペースを引き出すことができます。

IDスペース、例えばXは他のIDスペースの子で、X空間の所有者はY空間に含まれています。しかし、Xの子はY空間には含まれていません。

図に例示されたように三つの空間(P、A、C)がああります。P空間はPとAとFとGを含んでいます。A空間はAとBとCとDを含んでいます。C空間はCとEを含んでいます。

同じIDスペース中のコンポーネントはフェローと呼ばれます。たとえば、A・B・C・Dは同じIDスペースのフェローです。

ほかのフェローを引き出すのに、IdSapceインターフェイス、又は、コンポーネントインターフェイスの中のgetFellow メソッドを使います。

getFellowメソッドは同じIDスペースの最上段(所有者)に限らず、IDスペースのどのコンポーネントに対しても呼び出すことができます。同様に、空間所有者とは関係なく、getSpaceOwnerメソッドは同じIDスペースのどのコンポーネントに対しても同じオブジェクトを返します。

org.zkoss.zk.ui.PathクラスはIDスペース上のコンポーネントの位置を簡単化するためのユーティリティプログラムを提供します。その使用方法はjava.io.Fileと同様です。

Path.getComponent("/A/C/E");

new Path("A/C", "E").getComponent();