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;
}
}