Дополнительные возможности Windchill > Управление производственным процессом > Настройка редактора структуры изделия (PSE) > Отключение действий по типу объекта
  
Отключение действий по типу объекта
Чтобы отключить в PSE действие по типу объекта, выполните следующие инструкции:
1. Отредактируйте файл ExplorerStructures.xml.
Создайте элемент <TypeDefinition> для типов, для которых нужно отключить действия. Например, для типов org.my.MyTypeA, org.my.MyTypeB и org.my.MyTypeD, которые являются потомками типа 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"/>
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>
* 
Важно, чтобы значение атрибута validatorClass в ValidatorDefinition было в точности классом, перечисленным выше, а для инвертированного атрибута было задано значение true.
3. Отредактируйте файл ExplorerActions.xml.
Добавьте элемент <ValidatorEntry> в действия, которые нужно отключить для указанных типов.
<ActionDefinition id="ptc.wnc.exp.EditCommonAttrsAction" ... >
...
<ValidatorEntry>
<Import id="com.my.IsNotEqualToTypesABDVAL"/>
</ValidatorEntry>
...
</ActionDefinition>
Эта конфигурация отключит в приложении PSE действие "Править общие атрибуты" при каждом выборе детали с типом A, B или D.
Валидатор isValidTypeValidator
Валидатор isValidTypeValidator реализуется классом: com.ptc.windchill.explorer.structureexplorer.validators. IsValidTypeValidator. Для данного набора определений типов этот валидатор возвратит true, если тип текущей выбранной детали будет входить в вышеупомянутый набор. Например, если экземпляр этого валидатора указан с определениями типов для типов A, B и D и выбрана деталь типа A, B или D, валидатор вернет true. Если выбрана деталь какого-либо другого типа, например C, он вернет false.
Элемент <ValidatorDefinition>, возвращающий true, если выбран тип A, B или D, определяется следующим образом:
<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>
С другой стороны, элемент <ValidatorDefinition>, возвращающий false, если выбран тип A, B или D, определяется следующим образом (обратите внимание на включение атрибута inverted):
<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"/>