ピッカーの設定
ソリューション
カスタム JSP ページを記述し、アイテムピッカータグを使用してピッカーを表示します。PickerAttributes.xml ファイルを使用して、ピッカーに含めるサーチ基準フィールドを設定します。itemPicker タグのパラメータを使用して、サーチするオブジェクトタイプとコンテナを設定します。
前提となる知識
この目的を達成するには、次のことを理解している必要があります。
HTML 形式、JSP、XML に関連した基本的な開発
ピッカーの共通コンポーネント
テーブルの共通コンポーネント
ビュー作成
ソリューションエレメント
エレメント
タイプ
説明
pickerAttributes.xml
XML
ランタイム場所: <Windchill>\codebase\pickerAttributes.xml
SearchResultsTable.properties.xconf
Xconf
ランタイム場所: <Windchill> \codebase\com\ptc\netmarkets\search\SearchResultsTable.properties.xconf
このファイルはテーブルビュー定義を設定するために使用されます。
手順 - ピッカーを起動し、サーチするオブジェクトを定義する
ピッカーは itemPicker タグを呼び出すことで JSP から起動できます。
<wctags:itemPicker id="customized_item_picker" objectType="WCTYPE|
wt.part.WTPart|org.r_and_d.mypart" componentId="customizedItemPickerForSoftPart "/>
objectType パラメータは、org.r_and_d_mypart タイプのオブジェクトにサーチを絞り込むよう指定します。
id パラメータの値は、指定されたページに一意な識別子でなければなりません。
componentId パラメータの値は、ピッカーに表示するサーチ基準の検索に使用されるキーです。これについては次のセクションで説明します。
手順 - ピッカーサーチ基準をカスタマイズする
ファイル pickerAttributes.xml を使用して、ピッカーのサーチ基準をカスタマイズできます。最初に、上記に示すようなピッカータグの componentID パラメータを使用してピッカーに新しいコンポーネント ID を定義してから、以下のように xml ファイルでサーチ基準として使用するオブジェクト属性を定義します。
<ComponentID id="customizedItemPickerForSoftPart">
<ObjectType id="WCTYPE|wt.part.WTPart|org.r_and_d.mypart">
<SearchCriteriaAttributes>
<Attributes>
<Name>name</Name>
<DisplayName>NAME_LABEL</DisplayName>
<IsSearchable>true</IsSearchable>
</Attributes>
</SearchCriteriaAttributes>
</ObjectType>
</ComponentID>
componentID 属性が指定されていないか、pickerAttributes.xml でサーチ基準を定義していない場合、デフォルトで、pickerSearch componentId を使用してサーチ基準が表示されます。pickerAttributes.xml ファイルはユーザーがこれに関して修正可能な唯一のファイルです。このファイルにはサーチ基準のみが含まれ、オブジェクトタイプは含まれていません。この xml ファイルではプレフィックス WCTYPE を使用できます。これはサブタイプの場合に必要です。ハードタイプの場合、オブジェクトタイプのみを必要とします。
この例における構成部品 ID は、ピッカータグでピッカーに定義されている構成部品 ID を指します (前述のセクション「手順 - ピッカーを起動し、サーチするオブジェクトを定義する」を参照してください)。サーチ可能な単一の属性として、オブジェクトタイプ org.r_and_d.mypart の属性 name を定義しています。
${domain}EPM document 固有です。これはジェネリックであり、開発者の内部属性ではありません。
この xml ファイルには、タイプではなく、サーチ基準入力フィールドが含まれています。
複数のオブジェクトタイプをサーチする場合、1 つ目のオブジェクトタイプの後ろに、その他のオブジェクトタイプのエントリを同じコンポーネント ID で追加する必要があります。
複数のタイプをサーチする場合、ジェネリック (永続化可能なオブジェクトタイプ) 基準が表示されます。
一般的なカスタマイズポイントを次の表に示します。
パラメータ
デフォルト値
有効な値
必須
説明
ID
ページで一意のもの
Yes
ID は、呼び出しアプリケーションの範囲内のすべてのピッカーに関連付けられています。1 ページでのタイプにかかわらず、この ID はすべてのピッカーに対して一意である必要があります。
ID の名前に "." (ドット) を含めることはできません。
componentId
pickerSearch
pickerAttributes.xml で指定された任意の有効なコンポーネント ID
いいえ
componentId は、特定ピッカーのサーチ基準パネルに表示される属性を決定します。
pickerCallback
ユーザーがこのパラメータを指定しなかった場合、実行時に生成されます。
コールバック関数の名前
いいえ
ユーザーが実装する必要のあるカスタマイズされたコールバック JavaScript 関数の名前。custom.js ファイルで pickerCallback 関数を指定することを強くお勧めします。
defaultValue
"" (空白)
任意の値
いいえ
ピッカーによってレンダリングされたテキストボックスのデフォルト値。
Label
コンテキストピッカー
任意の値
いいえ
ピッカーのラベル。
displayAttribute
名前
任意の属性
いいえ
アイテムピッカーから結果を選択した後、ピッカーテキストボックスに表示される属性の名前。
containerRef
"" (空白)
任意のコンテナ
いいえ
ユーザーがサーチを制限する containerRef の値。
baseWhereClause
"" (空白)
任意の有効な I*E where 句照会
いいえ
ユーザー入力に関係なく特定の基準でサーチ結果をフィルタする場合の追加の where 句。この where 句は、内部 where 句を持つ"ANDed" を取得します。
pickerTitle
コンテキスト
任意の値
いいえ
ピッカーに関連付けられた非表示テキストボックスのデフォルト値。
pickedDataFetcher
<Web アプリケーション>/netmarkets/jsp/search/pickedData.jsp
フェッチャファイルの URL 場所
いいえ
選択した結果を処理するために AJAX 呼び出しによって使用されるデータフェッチャファイルの URL。
Editable
True
true/false
いいえ
この属性は、テキストボックスに「検索」アイコンを含めるかどうかを定義します。
readOnlyPickerTextBox
False
true/false
いいえ
この属性は、ピッカーテキストボックスを編集可能にするかどうかを定義します。
Inline
False
true/false
いいえ
テーブルレベルの操作またはインラインとしてピッカーを起動する場合、このパラメータの値を true に指定する必要があります。
pickedAttributes
名前
有効な属性の任意のコンマ区切りリスト
いいえ
このパラメータは、ピッカーが取得する属性のコンマ区切りリストを含んでいます。インラインが "true" の場合にのみ適用されます。
pickerType
サーチ
search/picker
いいえ
このパラメータは、ピッカータイプを "search" ピッカーまたは "picker" ピッカーに定義します。search ピッカーでは、ピッカーにサーチ基準が表示されたら、「サーチ」ボタンをクリックして結果を確認する必要があります。ただし、"picker" ピッカーの場合は、サーチ基準なしでも結果テーブルが直接表示されます。
pickerTextBoxLength
25
任意の数値
いいえ
このパラメータは、ピッカーテキストボックスの長さを定義します。
searchResultsViewId
"" (空白)
任意の有効なビュー ID
いいえ
このパラメータを使用すると、ピッカーサーチ結果テーブルのカスタムビュー ID を定義できます。
手順 - サーチするコンテナを定義する
特定のコンテナ内のオブジェクトにサーチを絞り込むには、ピッカータグの containerRef パラメータを使用します。このパラメータの値には、サーチするコンテナの 1 つ以上の WTContainerRef オブジェクトのコンマ区切りリストを文字列フォーマットで指定します。
コンテナの WTContainerRef は、コンテナを照会し、それぞれ WTContainer オブジェクトから WTContainerRef を取得することによってフェッチできます。
containerRef パラメータが指定されていない場合、すべてのコンテナがサーチされます。
<wctags: itemPicker id=" customized_item_picker”
objectType="WCTYPE|wt.part.WTPart|org.r_and_d.mypart"
containerRef=" OR: wt.pdmlink.PDMLinkProduct:33707”
componentId="customizedItemPickerForSoftPart" />
手順 - サーチ結果テーブルビューをカスタマイズする
サーチ結果テーブルにはテーブル共通コンポーネントが使用されるため、列表示は新しいテーブルビューの作成によって設定できます。
最初に、テーブルビューを定義する JCAConfigurableTable Java クラスを新規作成する必要があります。
次に、サービスプロパティエントリを *.properties.xconf ファイルに作成します。このエントリを使用して、"セレクタ" と呼ばれる識別子に基づいてテーブルビュークラスを検索できます。たとえば、テーブルビュークラスが CustomizedPartView の場合、サービスプロパティエントリは以下のようになります。
<Service context="default"
name="com.ptc.core.htmlcomp.tableview.ConfigurableTable">
<Option
serviceClass="com.ptc.netmarkets.search.views.CustomizedPartView" requestor="java.lang.Object"
selector="wt.part.WTPart.customizedSearchView "/>
</Service>
最後に、以下のようにピッカータグにセレクタを渡すと、サーチ結果テーブルがこのビューを使用してレンダーされます。
<wctags: itemPicker id=" customized_item_picker"
objectType="WCTYPE|wt.part.WTPart|org.r_and_d.mypart"
containerRef="<OR: wt.pdmlink.PDMLinkProduct:33707”
componentId="customizedItemPickerForSoftPart"
searchResultsViewId="wt.part.WTPart.customizedSearchView"/>
サンプルコード
<html>
<body>
<table>
<tr>
<%-- launching user picker--%>
<wctags:userPicker id="testUserPicker" label="MyUserPicker"
readOnlyPickerTextBox="false" editable="true" showSuggestion="true"
suggestMinChars="5" />
</tr>
<tr>
<%-- launching organization picker--%>
<wctags: organizationPicker id="orgPicker" label="MyOrgPicker"
readOnlyPickerTextBox="false" editable="true" showSuggestion="true"
suggestMinChars="3"/>
</tr>
<tr>
<%-- launching context picker--%>
<wctags: contextPicker id="contextPicker" label="MyContextPicker"
pickerTitle="ContextPicker" />
</tr>
<tr>
<%-- launching Item picker--%>
<wctags:itemPicker id="itemPicker" label="MyItemPicker"
pickerTitle="ItemPicker"/>
</tr>
<tr>
<%-- launching Item picker with exclude sub types and access
controller --%>
<wctags:itemPicker id="CustomizedItemPicker" label="CustomizedItemPicker"
pickerTitle="CustomizedItemPicker"excludeSubTypes="WCTYPE|wt.doc.WTDocument|
org.rnd.Minutes,WCTYPE|wt.doc.WTDocument|org.rnd.General"
customAccessController="com.ptc.windchill.
enterprise.search.server.LatestVersionAccessController"/>
</tr>
<tr>
<%-- launching Item Masterpicker--%>
<wctags:itemMasterPicker id="itemMasterPicker"
label="MyItemMasterPicker"/>
</tr>
<tr>
<%-- launching Item Masterpicker--%>
<wctags:genericPicker id="genericPicker"objectType="wt.part.WTPart"label
="Part Picker using generic" />
</tr>
<tr>
<%-- launching Item Masterpicker--%>
<wctags:genericPicker id="viewPicker" objectType="wt.vc.views.View" label="
View Picker
using generic" pickerType="tree" />
</tr>
<tr>
<%-- launching Recently Visited Context Picker- Single Select--%>
<wctags:contextPicker id="containerTypeListSingleSelect" label="
Recently Visited Context Picker-
Single Select" pickerTitle="ContextPicker" showRecentlyUsed="true"
displayAttribute="containerInfo.name"/>
</tr>
<tr>
<%-- launching Recently Visited Context Picker- Multi Select--%>
<wctags:contextPicker id="containerTypeListMultiSelect" label="Recently
Visited Context Picker- Multi Select" pickerTitle="ContextPicker"
showRecentlyUsed="true" displayAttribute="containerInfo.name"
showMultiSelectRecentlyUsed="true"/>
</tr>
</table>
</body>
</html>
これは役に立ちましたか?