AutoAssociatePartFinderCreator インタフェースの使用と修正
自動関連付けでは、AutoAssociatePartFinderCreator インタフェースの実装を使用して次の操作が実行されます。
一致する部品をサーチする。
新規部品を作成する。
デフォルトでは、「自動関連付け」操作では、このインタフェースのデフォルトの実装を使用して上記のタスクが実行されますが、カスタマイズした AutoAssociatePartFinderCreator インタフェースの実装を使用することによって、タスクの実行方法をカスタマイズできます。
インタフェースは、com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator にあります。
AutoAssociatePartFinderCreator インタフェースは、次のメソッドをサポートします。
findOrCreateWTPart メソッド。選択した EPMDocument または ModelItem の一致する部品をサーチします。
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. メソッドサーバーを再起動します。
カスタマイズされた AutoAssociatePartFinderCreator の例
以下のソースを使用して、<WT ホーム>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;
}

}
これは役に立ちましたか?