使用和修改 AutoAssociatePartFinderCreator 接口
“自动关联”通过 AutoAssociatePartFinderCreator 接口的实施执行下列操作。
• 搜索匹配部件。
• 创建新部件。
默认情况下,“自动关联”操作使用此接口的默认实施来执行上述任务。但是,您可以使用 AutoAssociatePartFinderCreator 接口的自定义实施来自定义它们的执行方式。
该接口位于 com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator。
AutoAssociatePartFinderCreator 接口支持下列方法:
• 用于搜索选定的 EPMDocument 或 ModelItem 的匹配部件的 findOrCreateWTPart 方法
• 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. 重新启动方法服务器。
自定义的自动关联部件查找器创建者示例
使用下列源创建并编译 <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;
}
}