基本自定义 > 用户界面自定义 > 通用 UI 自定义 > 首选项框架 > 首选项宏
  
首选项宏
wt.prefs.WTPreferences 类定义下列类型的首选项上下文宏:
USER_CONTEXT - 各个用户的上下文
DEFAULT_CONTEXT - 系统默认 (出厂) 值的上下文
CONTAINER_CONTEXT - 在容器层次结构中使用的上下文
CONTAINER_POLICY_CONTEXT - 强制作为策略的容器上下文
DIVISION_CONTEXT - 用于定义除默认、容器和用户范围以外的任何其他范围的上下文。
DIVISION_POLICY_CONTEXT - 强制作为策略的分区上下文。
设置分级
delegates.propertieswt.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 文件。
如果已从 delegates.properties 文件中移除 wt.prefs.delegates.DelegateOrder,则 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");