ウィザードの単純属性パネルと高度属性パネル
これは、タイプ Novel の新規オブジェクトの「属性を設定」ステップで 4 つの属性パネルを表示する複合例です (注記: FormProcessor がこのウィザード用に定義されていないため、このウィザードは動作しません)。
パネル 1
これは、次の項目を表示する複合コンポーネントです。
属性を 1 つ (新規オブジェクトのコンテナの名前) 含む単純属性パネル
作成するオブジェクトのタイプ
このオブジェクトタイプがサブタイプを持つ場合、ここには読み取り専用フィールドの代わりにタイプピッカーが表示されます。
組織 ID の入力フィールドを持つ単純属性パネル (プリファレンス 「表示」 > 「組織を公開」が「はい」に設定されている場合にだけ表示されます)
「属性」というタイトルの高度属性パネル。新規オブジェクトの非ドライバ属性の大半を含みます。このパネルは、親の WTDocument タイプのスクリーンタイプ「新規作成」(ScreenDefinitionName.CREATE) のレイアウトに基づいています。
この複合パネルは、<Windchill>/codebase/WEB-INF/jsp/object/defineItemAttributesWizStep.jsp ファイルの内容をウィザードステップ JSP に含めると、JCA フレームワークによって自動的に作成されます。このファイルは、「属性を設定」ウィザードステップのデフォルト JSP です。このウィザードステップに別のパネルを追加しない場合は、wizardStep タグでデフォルト操作 defineItemAttributesWizStep を使えばよく、JSP または Java コードを書く必要はありません。
パネル 2
このパネルのタイトルは「その他の属性」で、Novel タイプの「新規作成」レイアウトにはない Novel の 2 つの属性を表示する高度属性パネルです。
このパネルは、ステップ JSP で次の文によって作成されます。
<jsp:include page="${mvc:getComponentURL('carambola.attributePanel.
WizardPanelForEnabledAndDepartment')}"/>
この文によって、JCA フレームワークは、コンポーネントビルダー ID が carambola.attributePanel.WizardPanelForEnabledAndDepartment の Java ビルダークラスを探します。見つかったビルダークラス EnabledAndDepartmentPanelBuilder は、パネルを設定し、そのデータを取得し、パネルを表示する JSP を設定します。
このビルダーで注意すべき点は次のとおりです。
buildComponentData() メソッドは新しい Novel オブジェクトの TypeInstance を返します。親オブジェクトが Windchill ビジネスオブジェクトの場合、データムオブジェクトが TypeInstance であることが重要です。そうでない場合、属性に定義された制約を把握して、データユーティリティで使用することができません。
パネルのコンポーネントタイプは ComponentType.WIZARD_ATTRIBUTES_TABLE に設定されます。これが必要なのは、入力フィールドの HTML 名を作成して、ウィザードのサブミット後にオブジェクトに設定する必要のある属性を特定するためです。
パネル 3
これは単純属性パネルで、Novel オブジェクトタイプの属性ではないプロパティ Copyrighted を含みます。この方法は、オブジェクトの属性のほかに、ユーザーに追加情報の入力を求める場合に利用できます。Copyrighted の情報はオブジェクトの属性ではないため、ウィザードのサブミット時にこの情報を処理するには、カスタムの FormProcessor または FormProcessorDelegate が必要になることに注意してください。
このパネルは、ステップ JSP で次の文によって作成されます
<jsp:include page="${mvc:getComponentURL
('carambola.attributePanel.WizardPanelForCopyrightInfo')}"/>
先の例と同様に、この文によって JCA フレームワークは MVC Java ビルダークラス、この場合はクラス CopyrightAttributePanelBuilder を呼び出します。この例のビルダーで注意すべき点は次のとおりです。
ここでは、パネルのコンポーネントタイプを ComponentType.WIZARD_ATTRIBUTES_TABLE に設定していません。これを設定すると、入力フィールドの HTML 名が作成され、フレームワークのフォームプロセッサによってフィールドの値がオブジェクトの属性値として設定されてしまうためです。その代わり、カスタムフォームプロセッサでフォームデータのプロパティ値を見つけて処理できるような HTML 名にする必要があります。この場合、値は copyrighted というキーを持ち、これは buildComponentData() メソッドで設定された列名です。
パネルやほかの高度な機能の周りに境界を表示しないため、パネルコンフィギュレーションでビューを components/simpleAttributePanel.jsp に設定します。
ビルダーの buildComponentData()メソッドはデータムとして HashMap を返し、それがデータユーティリティに渡されます。キーは copyrighted という文字列で、値は BooleanInputComponent です。入力コンポーネントを自分で作成する必要があります。DefaultDataUtility は表示するプロパティのタイプを知らず、どのタイプ専用データユーティリティを使用するか判断できないためです。別の方法として、このプロパティ用のデータユーティリティを作成して登録することもできました。
パネル 4
これは単純属性パネルで、パネルオブジェクトタイプの属性を 1 つ含みます。この場合、パネルはウィザードステップ JSP で JSP タグを使って作成されます。
この属性パネルの作成方法の詳細については、ソリューション - JSP タグを使って単純属性パネルを作成するを参照してください。
この例で使用する操作モデル
なし
この例で使用する操作
操作名
オブジェクトタイプ名
ファイル
wizardWithAttributePanels
attributePanel
/config/actions/Carambola-actions.xml
defineItemAttributesWizStepForAttrPanelWizard
Novel
/config/actions/Carambola-actions.xml
この例で使用するファイル
ソースファイル
説明
codebase/netmarkets/jsp/carambola/customization/examples/attributePanel/wizardWithAttributePanels.jsp
メインウィザード JSP
/com/ptc/mvc/builders/carambola/attributePanel/DefineItemAttributesWizStepBuilderForAttrPanelWizard
ウィザードステップのビルダー
codebase/WEB-INF/jsp/carambola/attributePanel/defineItemAttributesWizStepForAttrPanelWizard.jsp
ウィザードステップの JSP
com/ptc/mvc/builders/carambola/attributePanel/EnabledAndDepartmentPanelBuilder.java
「その他の属性」パネルのビルダー
com/ptc/mvc/builders/carambola/attributePanel/CopyrightAttributePanelBuilder.java
Copyrighted パネルのビルダー
codebase/config/actions/Carambola-actions.xml
例で使用する操作を含みます。
com/ptc/carambola/customization/examples/attributePanel/AttributePanelExampleResource.java
例の UI テキスト
これは役に立ちましたか?