複合アプリケーション - 設計と管理
メモ ここでは、Lotus Expeditor および Composite Application Editor での手順と例について説明します。これらは、どちらも開発者が Lotus Domino Designer で複合アプリケーションとコンポーネントを作成する場合に役立つツールです。
拡張ポイントによりプロパティを定義する
拡張ポイントを使用してコンポーネントのプロパティを定義できます。プロパティとそのデフォルト値は、コンポーネントがアプリケーションに追加されたときに、コンポーネントに追加されます。Composite Application Editor の [コンポーネントプロパティの編集] ダイアログボックスには、ユーザーが設定できる [コンポーネント設定] タブのプロパティが表示されます。
拡張ポイントを使用してコンポーネントのプロパティを定義するには、次の手順に従います。
1. 新しい com.ibm.rcp.ca.utils.properties 拡張を作成します。
2. この拡張を右クリックし、[新規] - [プロパティ] をクリックします。
3. 新しいプロパティ要素の ID フィールドに ID を指定します。
4. [referenceID] フィールドに、ビューまたはコンポーネントの ID を指定します (com.ibm.rcp.aaf.paletteEntries 拡張に定義した ID)。この下で、referenceID の値は Test View view, com.ibm.rcp.test.view のID を参照します。
メモ 2 つのプロパティが同じ名前を持つ場合、一方はビュー ID に関連付けられ、他方はコンポーネント ID に関連付けられます。コンポーネント ID に関連付けられたプロパティは [コンポーネント設定] タブに表示されます。このため、各コンポーネントのプロパティおよび値を細かく制御することができます。ビュー ID に関連付けられたプロパティは、そのビュー ID を使用するすべてのコンポーネントに適用されます (たとえば、個々に URL プロパティを必要とする複数の管理対象ブラウザコンポーネント)。コンポーネント ID に関連付けられたプロパティは、その ID を持つコンポーネントにのみ適用されます。プロパティをコンポーネント ID に関連付けると特定のコンポーネントにプロパティを定義でき、同じビュー ID を持つ他のコンポーネントにその ID は適用されません。
5. [typeID] フィールドに、事前に定義したプロパティ型のうちいずれかを指定します (string、boolean、number、choice、file、color、Lotus Notes データベースの場合の nsfPicker、directory、複数値プロパティの場合の list)。カスタムの型を指定することもできます。詳しくは、「カスタムプロパティ型を定義する」を参照してください。
6. 名前のフィールドにローカライズ可能なプロパティ名を指定します。
7. 値のフィールドに、プロパティのデフォルト値を指定します (ファイル名、色など)。
8. 制限のフィールドに、次のようにプロパティ型に適した制限値または選択値のセミコロン区切りリストを入力します。
プロパティにカスタムの型を定義すると、ユーザーがプロパティ値を設定するためのコントロールも指定できます。詳しくは、「カスタムプロパティ型を定義する」を参照してください。
プロパティをグループに割り当てて、プロパティを [コンポーネント設定] タブの他の関連プロパティの隣に表示することもできます。詳しくは、「グループにプロパティを追加する」を参照してください。
カスタムプロパティ型を定義する
コンポーネントのプロパティをカスタムの型で定義し、これらのプロパティ用の編集コントロールを Composite Application Editor の [コンポーネントプロパティの編集] タブに表示することができます。
com.ibm.rcp.ca.utils.properties 拡張ポイントには、コンポーネントのプロパティにカスタムの型を定義するために使用する「type」要素があります。この要素を追加するには、次の手順に従います。
1. この拡張を右クリックし、[新規] - [タイプ] をクリックします。
2. type 要素に、型 ID と名前を指定し、型の Java クラスを参照します。
Java クラスは com.ibm.rcp.ca.utils.componentconfig.IComponentPreferenceType を実装する必要があります。これには、[コンポーネントプロパティの編集] タブに表示する編集コントロールと、必要に応じて、ブラウザーボタン、カラーピッカーなどのボタンを定義します。編集コントロールには、複数のコントロールを複合させることができます。
com.ibm.rcp.ca.utils.properties 拡張ポイントにカスタムの型でプロパティを定義する場合は、プロパティ「typeId」属性がカスタム型の ID を参照する必要があります。
グループにプロパティを追加する
[コンポーネントプロパティの編集] ダイアログボックスの [コンポーネント設定] タブで、関連するコンポーネントプロパティコントロールをグループ化することができます。
グループにプロパティを追加する方法は、2 種類あります。
[コンポーネント設定] ダイアログボックスにタブを追加する
ビューの部分コンポーネント固有のプロパティを目立たせるために、Composite Application Editor の [コンポーネント設定] ダイアログボックスにタブを追加して、プロパティを表示することができます。
独自のコンポーネントのタブを表示するには、ビューの部分が com.ibm.rcp.ca.utils.componentconfig.IPropertyTabsProvider インターフェースを実装する必要があります。
このインターフェースは getTabs() メソッド (com.ibm.rcp.ca.utils.componentconfig.IPropertyTab [] getTabs) を提供します。Composite Application Editor ではこのメソッドを使用してタブが [コンポーネント設定] ダイアログボックスに追加されます。各タブは com.ibm.rcp.ca.utils.componentconfig.IPropertyManager メソッドにアクセスし、次の処理を行います。
次のコード抜粋が示す、既存の管理対象ブラウザーコンポーネントを拡張し、com.ibm.rcp.ca.utils.componentconfig.IPropertyTabsProvider インターフェースを実装して作成したコンポーネントを検討してください。
public class MyBrowserView
extends PAABrowserView
implements IPropertyTabsProvider {
コンポーネントは、タブユーザーインターフェースを次のように定義する com.ibm.rcp.ca.utils.componentconfig.IPropertyTab インターフェースを実装して、新しいタブを作成します。
public class BrowserTab implements IPropertyTab {
public class LayoutTab implements IPropertyTab {
メモ カスタムのタブは、extend com.ibm.rcp.ca.utils.componentconfig.AbstractPropertyTab を拡張することもできます。これは、いくつかのメソッドのデフォルト実装です。
コードは、要求されたときに次のようにタブを返す getTabs() method in MyBrowserView も実装できます。
public IPropertyTab[] getTabs() {
IPropertyTab[] _tabs = new IPropertyTab[2];
_tabs[0] = new BrowserTab();
_tabs[1] = new LayoutTab();
return _tabs;
}
Composite Application Editor で、[new Browser] タブが [コンポーネント設定] ダイアログボックスに表示されます。
プロパティ設定コントロールをコンポーネントに直接追加する
コンポーネントのプロパティをアプリケーションアセンブラにもわかりやすくするために、アプリケーションアセンブラが Composite Application Editor でプロパティを編集しているときにコンポーネント自体のユーザーインターフェースに表示できる、プロパティ設定用のコントロールを追加することができます。
この追加ユーザーインターフェースを追加するには、コンポーネントクラスのコードに次の操作を実行します。
public class MyView extends ViewPart implements IComponentConfigurator
説明したこれらのタスクのほか、Composite Application Editor と Lotus Expeditor の使用方法について詳しくは、各ツールに付属する製品のマニュアルを参照してください。Composite Application Editor は、IBM(R) Lotus Notes(R) Standard Client をインストールするときにオプションとしてインストールされます。
Lotus Expeditor product wiki (http://www-10.lotus.com/ldd/lewiki.nsf) にも詳細が記載されています。