使用及修改 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;
}
}