基本自定义 > 用户界面自定义 > 在 UI 中添加操作并进行挂接 > Windchill 客户端体系结构的操作框架 > 定义新操作 > 为操作添加验证逻辑
  
为操作添加验证逻辑
创建新操作时,可能需要执行一些逻辑,以确定是否应在用户界面中启用、禁用或隐藏该操作。可以在 validator 类中写入此逻辑。有关验证服务、写入验证器和为操作注册验证器的详细信息,请参阅 UI 验证
nonSupportedTypes 和 supportedTypes 属性
通过指定 supportedTypesnonSupportedTypes,操作框架可根据所提及的对象类型启用或禁用该操作。此筛选仅适用于自定义菜单。
在应用程序开发人员定义的任何其他验证服务类之前应用 supportedTypesnonSupportedTypes 筛选。换句话说,它是通用筛选器。
如果使用 nonSupportedTypes 属性禁用操作,则不会执行任何已写入的自定义验证器。
如果通过 supportedTypes 属性启用操作,则将调用任何已写入的自定义验证器。
例如:
<objecttype name="object" class="java.lang.Object" >
<action name="reports" enabledwhensuspended="true">
<command
url="netmarkets/jsp/carambola/customization/reports/base.jsp"/>
<nonSupportedTypes
value="wt.doc.WTDocument,wt.part.WTPart"/>
</action>
</objecttype>
或者,也可以使用:
<objecttype name="object" class="java.lang.Object" >
<action name="reports" enabledwhensuspended="true">
<command
url="netmarkets/jsp/carambola/customization/reports/base.jsp"/>
<nonSupportedTypes>
<type value="wt.doc.WTDocument" />
<type value=" wt.part.WTPart " />
</nonSupportedTypes>
</action>
</objecttype>
可以指定是否将此筛选应用于对象的子类型。默认情况下,子类型会继承此属性。您可以通过添加其他 applyToDescendants 属性来控制此功能:
<supportedTypes>
<type value="wt.foo.Bar" applyToDescendants=”false” />
</supportedTypes>
* 
也可使用 xconf 特性添加支持和不支持的类型。有关详细信息,请参阅“在 XConf 中定义支持和不支持的类型”。
参数
默认值
可能的值
必需?
说明
value
任何对象类型。使用逗号分隔。
启用或禁用所列对象类型的操作。
对第三级导航和行级别操作启用或禁用操作。不对菜单栏和工具栏操作进行筛选。
applyToDescendants
true
true
false
是否要将类型应用于继承的子类型。如果为 true,则同时支持或不支持所有子类型。如果为 false,则仅支持或不支持指定的类型。
在 XConf 中定义支持和不支持的类型
也可以使用 xconf 特性添加 nonSupportedTypessupportedTypes 筛选。提供了一个基于类型的 xconf 操作筛选器,该筛选器可用于查找 typeBasedActionFilter.properties 文件。
以下列格式指定该特性:
<Property name="<action object>.<action name>.
<supportedTypes or nonSupportedTypes>" value="com.foo.Bar" />
例如:
<Property name="annotation.annotationSets.nonSupportedTypes"
value="wt.part.WTPart" target="codebase/typeBasedActionFilter.properties"/>