AbstractComponentBuilder の継承
レイアウトベースのパネルを使うために、カスタムビルダーは com.ptc.mvc.components.TypedAttrLayOutFactoryAware, を実装する必要があります。これによって、レイアウトに基づいてコンフィギュレーションを取得する必要のある TypedAttrLayOutFactory のインスタンスにアクセスできます。
AbstractComponentBuilder にはデフォルトの動作がないため、次のメソッドをゼロから作成する必要があります。
• public void setTypedAttrLayOutFactory(TypedAttrLayOutFactory factory)
• protected AttributePanelConfig buildComponentConfig(ComponentParams params)
• public Object buildComponentData(ComponentConfig config, ComponentParams params)
setTypedAttrLayOutFactory()
TypedAttrLayOutFactory は、所定のスクリーンタイプに基づいてパネルコンフィギュレーションを作成するときに使用されます。次のように、そのタイプのグローバル変数を宣言して、このメソッドを実装する必要があります。
TypedAttrLayOutFactory tfactory;
public void setTypedAttrLayOutFactory(TypedAttrLayOutFactory factory) {
this.tfactory = factory;
}
フレームワークはこのメソッドを呼び出して、ファクトリのインスタンスをユーザーに渡します。
buildComponentConfig()
このメソッドは、TypedAttrLayOutFactory を呼び出して AttributePanelConfig を作成し、パネルで使用するレイアウトに対応した ScreenDefinitionName をそれに渡す必要があります。例を挙げます。
AttributePanelConfig panelConfig =
tfactory.getAttributePanelConfig(getComponentConfigFactory(), params,
ScreenDefinitionName.CREATE);
返される AttributePanelConfig は、レイアウトで定義された、ネストされた GroupConfigs と AttributeConfigs を持ちます。
必要な場合は、ファクトリによって返されたコンフィギュレーションをいじって、
カスタマイズポイントに挙げられたコンフィギュレーションプロパティを修正することもできます。例は、
手順 - 属性パネルの作成を参照してください。
buildComponentData()
このメソッドはパネルの単一データムオブジェクトを返す必要があります。表示のみのパネルの場合、これは一般に永続可能オブジェクトのインスタンスです。ウィザードの場合、これは通常、TypeInstance で、属性値に加えて、属性に対して定義された制約も含みます。
永続可能データムオブジェクトを返すには、一般に、次のようにコンテキストオブジェクトを返すだけで構いません。Object datumObject = params.getContextObject();
別の方法として、永続可能オブジェクトをクエリーすることもできます。
作成または編集ウィザードで
TypeInstance データムオブジェクトを取得するには、
TypeInstance データムオブジェクトの取得で説明されているように、
CreateAndEditModelGetter.getItemAttributes() を呼び出します。別の方法として、
TypeInstance API を使って
TypeInstance を取得することもできます。