基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > 一般的な UI のカスタマイズ > プリファレンスフレームワーク > プリファレンスマクロ
  
プリファレンスマクロ
wt.prefs.WTPreferences クラスでは、以下のタイプのプリファレンスコンテキストマクロを定義します。
USER_CONTEXT - 個々のユーザーのコンテキスト
DEFAULT_CONTEXT - システムのデフォルト値 (出荷時の値) のコンテキスト
CONTAINER_CONTEXT - コンテナ階層で使用されるコンテキスト
CONTAINER_POLICY_CONTEXT - ポリシーとして実施されるコンテナコンテキスト
DIVISION_CONTEXT - デフォルト範囲、コンテナ範囲、およびユーザー範囲のほかに定義される範囲に使用されるコンテキスト
DIVISION_POLICY_CONTEXT - ポリシーとして実施される部門コンテキスト
階層の設定
delegates.properties の値 wt.prefs.delegates.DelegateOrder は、委任が呼び出される階層を制御します。階層の各レベルに対して、このプロパティにエントリが存在する必要があります。カスタマイズされたエントリは、DIVISION_CONTEXT として表示されます。たとえば、定義済みの階層には Windchill Enterprise という部門範囲があり、既成の wt.prefs.delegates.DelegateOrder プロパティには次の値が設定されています。
$DEFAULT,$CONTAINER,$DIVISION:WindchillEnterprise,$USER
この値には DIVISION_POLICY_CONTEXT が定義されていません。これは、DIVISION_POLICY_CONTEXT と DIVISION_CONTEXT に関連性があり、両方がプリファレンス階層の同じレベルにあるからです。同様に、CONTAINER_POLICY_CONTEXT を含む必要はありません。エントリは、プリファレンスを内部で保存および取得する場合のみ別々に指定されます。委任の正しいネーミングの詳細は、delegates.properties ファイルを参照してください。
wt.prefs.delegates.DelegateOrderdelegates.properties ファイルから除去されている場合、Windchill は次のものを使用します。
$DEFAULT,$CONTAINER,$USERSettingプリファレンス
ファイル Windchill/loadFiles/preferences.txt を編集します。このファイルはシステム値をデータベースに入力するときに使用します。プリファレンスの一部として引用符を残す場合以外は、文字列の周りを引用符で囲まないでください。
構文:
PrefEntry~keyName~default value~fullyQualifiedNodePath
例:
PrefEntry~fileOperationType~ASK~/wt/content
プリファレンスの取得
プリファレンスツリーを適切なノードに移動してプリファレンスを取得し、特定のユーザーのコンテキストを設定して、そのキーの値を取得します。
例:
// returns an instance of the top node in the Windchill preference
"tree"
Preferences root = WTPreferences.root();
// returns the preference node at that path
Preferences myPrefs = root.node( "/wt/content" );
((WTPreferences)myPrefs).setContextMask
(PreferenceHelper.createContextMask() );
// get( ), gets the value for that
// preference key
String prefValue = myPrefs.get( "fileOperationType", "SAVE" );
プリファレンスのクリア
解除と除去には大きな違いがあります。部門レベルのデフォルトまたはポリシーがない場合、値に空の文字列 "" を設定してユーザープリファレンスを解除すると、値 "" が返されます。一方、ユーザーレベルのプリファレンスを除去すると、システムのデフォルト値が返されます。ほとんどの場合、ユーザーレベルのプリファレンスを解除ではなく除去して、上部階層のプリファレンスをデフォルトにします。
例:
Preferences root = WTPreferences.root();
Preferences myPrefs = root.node( "/wt/content" );
((WTPreferences)myPrefs).setEditContext
(PreferenceHelper.createEditMask());
((WTPreferences)myPrefs).setContextMask
(PreferenceHelper.createContextMask());
String prevValue = myPrefs.remove("fileOperationType");