其他功能 > 服务信息管理 > 自定义 Windchill Service Information Manager 和 Windchill Service Parts > 自定义服务有效性概述 > 创建自定义服务有效性配置面板
  
创建自定义服务有效性配置面板
对于服务有效性对象的给定属性,您可以自定义显示在“添加/编辑服务有效性”对话框和“服务有效性”筛选器上的字段,以分配属性值。
本主题介绍如何构建具有如下所示字段的配置面板。此面板位于“类型”“上下文”字段下方。
请注意以下要求:
1. 扩展 ServiceEffectivityConfigType 的 Java 类
请参阅以下类示例 (忽略换行符):
codebase\com\ptc\arbortext\windchill\serviceEffectivityFilter\client\ui
\renderers\configTypes\SerialNumberDateConfigType.class
2. 该类针对所需字段使用 GXT 布局和组件。
3. 属性和自定义 ServiceEffectivityConfigType 类在 ServiceEffectivityConfig.xml 文件中注册。
有关信息,请参阅自定义服务有效性
方法汇总
下列强制性方法从 ServiceEffectivtityConfigType 继承而来,必须被覆盖或实施。每种方法的更多详细信息请参阅后续章节。
renderConfigType()
resetConfigType()>
getLocalizedLabel()
populateConfigType(JSONObject jsonObject)
isContextMandatory()
addDetailSummary()
initializeConfigType(JSONObject innerObject)
addConfigType()
getJsonFromFields()
getAllowAddingConfigType()
renderConfigType()
此方法创建面板以及其中所包含的字段。
在本例中,以下条目用于配置字段:
基本面板由 ContentPanel 条目表示
ContentPanel 条目包括用于“序列号和日期”“汇总”区域的 NoLegendFieldSet 条目。
“序列号和日期”区域的 FieldSet 条目包含两个 HorizontalPanel 条目,分别用于存放“序列号”字段和“日期”字段。
“序列号”字段的 HorizontalPanel 条目包含 RadioTextField 条目,这两个条目表示可以输入的两种信息类型。
“日期”字段的 HorizontalPanel 条目包含 DateTimePicker 条目。
更改任何其他字段值时,显示在“汇总”字段中的文本的 FieldSet 条目都会更新。
可向该方法的字段中添加可选监听程序,以控制有效输入以及启用/禁用字段和按钮。
resetConfigType()
此方法清除并重置所有字段,通常与以下操作配合使用:
向“服务有效性”筛选器选项卡上的“待应用”表格中添加条件
添加服务有效性时单击“应用”按钮
移除上下文 (如果为强制性操作)
在本例中,此方法还禁用所有字段,以确保在继续操作之前选取了上下文。对服务有效性类型而言,上下文是强制性的。
getLocalizedLabel()
此方法可返回服务有效性类型的本地化资源字符串。
要使用在“类型和属性管理”实用程序中注册的属性的显示名称,请返回 getDisplayName()。其已使用此值在超级类中进行了设置。
populateConfigType(JSONObject jsonObject)
创建筛选条件或 ServiceEffectivity 对象后,字段值将转换为 JSONObject。此方法采用 JSONObject、读取字段值,并用这些值重新填充 UI 中的字段。
发生下列操作时,使用此方法:
在筛选器的“待应用”表格中选择了一行
应用筛选器时重新打开了“筛选器”选项卡
应用了已保存的筛选器并打开了选项卡
对现有的 ServiceEffectivity 对象进行了编辑
JSONObject 可具有任何属性和值,但是需要能够对其进行读取和处理的自定义筛选器委派。
isContextMandatory()
这样即可指定对于选定的“服务有效性”类型,“上下文”字段是否为必填字段。它可用于控制字段在未设置的情况下是否禁用,以及在移除上下文时是否清除字段。
addDetailSummary()
仅当已创建“汇总”字段集时,才会使用此方法。它会更新字段内的文本。如果“汇总”字段并非必填字段,则无需实施此方法。
initializeConfigType(JSONObject innerObject)
假定 JSONObject 表示“服务有效性”字段,则在筛选器选项卡内使用此方法可在填充该选项卡时初始化“待应用”表格中的模型。
addConfigType()
“服务有效性”筛选器选项卡中,此方法会创建模型并将其添加到“待应用”表格中。
detail 表示应显示在表格“值”列中的字符串。
例如:
JSONObject latestJSON = getJsonFromFields();
String detail = valueText.getRawValue();
SETabInfoModel cm = new SETabInfoModel(getLocalizedLabel(),
ServiceEffectivityHelper.
getEffContextAsStringFromWidget(getEffContext(), true), detail, latestJSON,
getConfigTypeId());
return cm;
getJsonFromFields()
此方法基于字段中所设置的值创建 JSONObject。此对象随服务有效性类型的不同而异,应由筛选器委派进行处理。
getAllowAddingConfigType()
此方法将返回 allowAddingConfigType 布尔属性,该属性用于在字段未通过验证时启用/禁用表单上的按钮。