基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > UI の情報の表示 > 検索番号フィールドのカスタマイズ
  
検索番号フィールドのカスタマイズ
デフォルトでは、製品構造ブラウザの「構造を編集」ウィンドウにある検索番号フィールドはスペースを含む値を許容しません。しかし、スペースを含む値 (最初と最後のスペースも含む) を許容するように、検索番号フィールドをカスタマイズすることができます。
* 
このカスタマイズを行う場合は、Windchill の以後のリリースに移行する場合も、このカスタマイズを維持し、繰り越す必要があります。
* 
最初と最後のスペースを許可するには、下記のステップ 1 と 3 を実行します。そうでない場合は、ステップ 2 のみを実行します。
1. エントリ "wt.load.preserveSpace=true" を Windchill\codebase\wt.properties ファイルに追加し、最初と最後のスペースを許可します。
2. このフィールドのロジックをカスタマイズするには、以下の手順を実行します。
a. インタフェース "ValidateFindNumberDelegate.java" を実装します。
b. 下記のサンプルコードに示すように、'validateFindNumbers (String[])' メソッドをオーバーライドします。
c. いずれかの制約違反があった場合には、実装が WTPropertyVetoException を (例のように)スローするようにします。
d. この新しい代理を Windchill\codebase\service.properties.xconf に登録します。
このファイルには以下のエントリのセクションがあります。
<!--
The wt.part.ValidateFindNumbersDelegate service.
Delegate validation for Find Numbers on WTPartUsageLink
objects subclasses thereof
-->
<Service context="default"
name="wt.part.ValidateFindNumbersDelegate">
<Option cardinality="duplicate" requestor="java.lang.Object"
serviceClass="wt.part.DefaultValidateFindNumbersDelegate"/>
</Service>
wt.part.DefaultValidateFindNumbersDelegate をフルパスと作成した新しい委任名に置き換えます。
e. "xconfmanager -Fpv" を実行して、変更を適用します。
f. エラーが発生したときに表示するメッセージを入れた rbinfo エントリを作成します。
3. ロードファイルからデータをロードしながら、最初と最後のスペースのカスタマイズ規則に従う必要がある場合は、次のコードサンプルが "getValue(String, Hashtable, HashTable, boolean)" メソッドでこれを行う方法の例となります。
OOTB Implementation
protected static String getValue( String name, Hashtable nv,
Hashtable cmd_line, boolean required ) throws WTException {
String value =
LoadServerHelper.getValue(name,nv,cmd_line,required?LoadServerH
elper.REQUIRED:LoadServerHelper.NOT_REQUIRED);
if (value != null) {
value = value.trim();
if (value.equals("")) {
value = null;
}
}
return value;
}
Customized implementation allowing leading and trailing spaces while loading from a file:
protected static String getValue( String name, Hashtable nv,
Hashtable cmd_line, boolean required ) throws WTException {
String value =
LoadServerHelper.getValue(name,nv,cmd_line,required?LoadServerH
elper.REQUIRED:LoadServerHelper.NOT_REQUIRED);
// Don't trim leading/trailing spaces if reading Find
Number field.
if(!name.equalsIgnoreCase("findNumber"))
{
if (value != null) {
value = value.trim();
if (value.equals("")) {
value = null;
}
}
}
return value;
}