Использование и изменение интерфейса AutoAssociatePartFinderCreator
При автоматическом связывании реализация интерфейса AutoAssociatePartFinderCreator используется для выполнения следующих действий.
• Поиск подходящей детали.
• Создание новой детали.
По умолчанию действие Связывать автоматически использует для выполнения перечисленных выше задач реализацию этого интерфейса по умолчанию. Однако можно настроить порядок выполнения этих задач с помощью пользовательской реализации интерфейса AutoAssociatePartFinderCreator.
Интерфейс расположен в com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator.
Интерфейс AutoAssociatePartFinderCreator поддерживает следующие методы:
• метод findOrCreateWTPart (используется для поиска подходящей детали для выбранного EPM-документа или элемента модели);
• метод CreateNewWTPart (используется для создания новой детали);
• метод findWTPart (больше не используется);
• метод isNewPart (больше не используется);
• метод setIsNewPart (больше не используется).
)
|
Несмотря на то что некоторые методы интерфейса устарели и больше не используются, класс реализации должен содержать формальную реализацию этих методов для обеспечения его компиляции.
|
Как реализовать пользовательский интерфейс AutoAssociatePartFinderCreator.
1. Получите пользовательский класс следующим образом.
public class CustomFinderCreator implements
AutoAssociatePartFinderCreator
2. Переопределите следующие методы.
◦ public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace)
Этот метод вызывается для каждого документа, который выбран для автоматического связывания путем поиска подходящей детали. Можно настроить критерии, используемые для поиска детали, и возвращенная деталь будет использоваться действием для связывания с документом.
◦ public WTPart findOrCreateWTPart(EPMDocument doc, ModelItem modelItem, EPMWorkspace workspace)
Этот метод вызывается для каждого документа, который выбран для автоматического связывания путем поиска подходящей детали. Можно настроить критерии, используемые для поиска детали, и возвращенная деталь будет использоваться действием для связывания с документом.
◦ public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor)
Этот метод вызывается для каждого документа, который выбран для автоматического связывания путем создания новой детали. Можно настроить свойства создаваемой детали. Создаваемая деталь связывается с документом действием автоматического связывания.
|
Следующие методы являются устаревшими и в настоящее время не используются действием. Однако необходимо обеспечить формальную реализацию этих методов для надлежащей компиляции класса.
|
◦ public boolean isIsNewPart()
◦ public void setIsNewPart(boolean a_IsNewPart)
◦ public WTPart findWTPart(EPMDocument epmDoc)
◦ public WTPart findWTPart(EPMDocument epmDoc, ModelItem modelItem)
Скомпилируйте файл и поместите класс в любое подходящее расположение.
3. Задайте настройку > > , указав имя класса, реализующего интерфейс AutoAssociatePartFinderCreator.
4. Перезапустите сервер методов.
Пример пользовательского интерфейса Auto Associate Part Finder Creator
Создайте и скомпилируйте файл <WT_HOME>src\com\ptcts\autoassociate\CustomizedAutoAssociatePartFinderCreator.java, используя следующий исходный текст.
// package com.ptc.windchill.uwgm.cadx.autoassociate;
package com.ptcts;
import java.lang.String;
import wt.epm.EPMDocument;
import wt.epm.workspaces.EPMWorkspace;
import wt.part.WTPart;
import wt.pom.UniquenessException;
import wt.util.WTException;
import wt.util.WTPropertyVetoException;
import wt.vc.VersionControlException;
// import com.ptc.windchill.uwgm.task.autoassociate.DefaultAutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.DefaultAutoAssociatePartFinderCreator;
// import com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.AutoAssociatePartFinderCreator;
import wt.type.TypedUtilityServiceHelper;
import com.ptc.windchill.uwgm.common.associate.AssociatePartDescriptor;
import wt.inf.container.WTContainer;
import java.rmi.RemoteException;
public class CustomizedAutoAssociatePartFinderCreator extends DefaultAutoAssociatePartFinderCreator implements AutoAssociatePartFinderCreator
{
public boolean isIsNewPart()
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: isIsNewPart()");
return super.isIsNewPart();
}
public void setIsNewPart( boolean a_IsNewPart ) throws WTPropertyVetoException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: setIsNewPart()");
super.setIsNewPart(a_IsNewPart);
}
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace) throws WTException, WTPropertyVetoException, VersionControlException, UniquenessException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findOrCreateWTPart()");
return super.findOrCreateWTPart(epmDoc, workspace);
}
public WTPart findWTPart(EPMDocument epmDoc) throws WTException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findWTPart()");
return super.findWTPart(epmDoc);
}
public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor) throws WTException, WTPropertyVetoException {
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: createNewWTPart()");
// get epmdoc
EPMDocument epmDoc = newPartDescriptor.getSourceDoc();
// get workspace
EPMWorkspace ws = newPartDescriptor.getEPMWorkspace();
// get workspace container
WTContainer container = ws.getContainer();
// create wtpart with super class
WTPart newpart = super.createNewWTPart(newPartDescriptor);
// manipulate new part, e.g. set attributes
// return modified new part
return newpart;
}
}