其他 Windchill 功能 > 制造过程管理 > 自定义产品结构浏览器 (PSE) > 根据对象类型禁用操作
  
根据对象类型禁用操作
要根据对象类型禁用 PSE 中的某个操作,请按照以下说明:
1. 编辑 ExplorerStructures.xml 文件。
针对将要禁用操作的类型创建 <TypeDefinition> 元素。例如,针对属于 WTPart 子项的类型 org.my.MyTypeAorg.my.MyTypeBorg.my.MyTypeD,您应定义以下元素:
<TypeDefinition id="com.my.MyTypeATD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeA"/>
<TypeDefinition id="com.my.MyTypeBTD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeB"/>
<TypeDefinition id="com.my.MyTypeDTD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeD"/>
2. 编辑 ExplorerValidators.xml 文件。
针对想要禁用操作的类型组创建 <ValidatorDefinition> 元素。如果选定部件的类型与验证程序定义中参考的类型之一相匹配,即会返回 false。例如,应针对上述三种类型定义如下所示的验证程序:
<ValidatorDefinition id="com.my.IsNotEqualToTypesABDVAL"
validatorClass="com.ptc.windchill.explorer.structureexplorer.
validators.IsValidTypeValidator" inverted="true">
<Import id="com.my.MyTypeATD"/>
<Import id="com.my.MyTypeBTD"/>
<Import id="com.my.MyTypeDTD"/>
</ValidatorDefinition>
* 
ValidatorDefinition 的 validatorClass 属性值必须与上面所列的类完全相同,且必须将反转属性设置为 "true",这一点很重要。
3. 编辑 ExplorerActions.xml 文件。
<ValidatorEntry> 元素添加到想要针对指定类型禁用的操作。
<ActionDefinition id="ptc.wnc.exp.EditCommonAttrsAction" ... >
...
<ValidatorEntry>
<Import id="com.my.IsNotEqualToTypesABDVAL"/>
</ValidatorEntry>
...
</ActionDefinition>
只要选择类型 A、B 或 D 的部件,此配置即会禁用 PSE 应用程序中的“编辑公用属性”操作。
验证程序 isValidTypeValidator
验证程序 isValidTypeValidator 由以下类实现:com.ptc.windchill.explorer.structureexplorer.validators.IsValidTypeValidator。对于给定的类型定义集,如果当前选定部件的类型是前述定义集的一部分,则此验证程序将返回 ‘true’。例如,如果此验证程序的实例是使用类型 A、B 和 D 的类型定义进行定义的,则选择类型 A、B 或 D 的部件时,验证程序将返回 true。如果选择任何其他类型 (例如 C) 的部件,则验证程序将返回 false。
选择类型 A、B 或 D 时会返回 true 的 <ValidatorDefinition> 将以下列方式定义:
<ValidatorDefinition id="com.my.IsEqualToOneOfTypesABDVAL"
validatorClass="com.ptc.windchill.explorer.structureexplorer.vali
dators.IsValidTypeValidator">
<Import id="com.my.MyTypeATD"/>
<Import id="com.my.MyTypeBTD"/>
<Import id="com.my.MyTypeDTD"/>
</ValidatorDefinition>
相反,选择类型 A、B 或 D 时会返回 false 的 <ValidatorDefinition> 则以下列方式定义 (请注意,其中包含“反转”属性):
<ValidatorDefinition id="com.my.IsNotEqualToTypesABDVAL"
validatorClass="com.ptc.windchill.explorer.structureexplorer.vali
dators.IsValidTypeValidator" inverted="true">
<Import id="com.my.MyTypeATD"/>
<Import id="com.my.MyTypeBTD"/>
<Import id="com.my.MyTypeDTD"/>
</ValidatorDefinition>
<Import> 元素指将下列方式定义的 <TypeDefinition> 元素 (假定每种类型均为 WTPart 的直接子项):
<TypeDefinition id="com.my.MyTypeATD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeA"/>
<TypeDefinition id="com.my.MyTypeBTD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeB"/>
<TypeDefinition id="com.my.MyTypeDTD"
typeId="WCTYPE|wt.part.WTPart|org.my.MyTypeD"/>