Utilizzo e modifica dell'interfaccia AutoAssociatePartFinderCreator
Associazione automatica utilizza l'implementazione dell'interfaccia AutoAssociatePartFinderCreator per effettuare le azioni elencate di seguito.
• Ricerca di una parte corrispondente.
• Creazione di una nuova parte.
Per default, l'azione Associazione automatica utilizza l'implementazione di default di questa interfaccia per eseguire i task sopra citati. È tuttavia possibile personalizzarne la modalità di esecuzione utilizzando un'implementazione personalizzata dell'interfaccia AutoAssociatePartFinderCreator.
L'interfaccia è contenuta in com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator.
L'interfaccia AutoAssociatePartFinderCreator supporta i metodi descritti di seguito.
• Metodo findOrCreateWTPart utilizzato per cercare una parte corrispondente per un EPMDocument o un ModelItem selezionato
• Metodo CreateNewWTPart utilizzato per creare una nuova parte
• Metodo findWTPart (non più utilizzato)
• Metodo isNewPart (non più utilizzato)
• Metodo setIsNewPart (non più utilizzato
)
|
Anche se alcuni metodi dell'interfaccia sono obsoleti e non sono più utilizzati, la classe di implementazione deve disporre di implementazioni fittizie di questi metodi per poter compilare la classe.
|
Per implementare un'interfaccia AutoAssociatePartFinderCreator personalizzata, attenersi alla procedura descritta di seguito.
1. Far derivare la classe personalizzata come indicato di seguito.
public class CustomFinderCreator implements
AutoAssociatePartFinderCreator
2. Ignorare i metodi riportati di seguito.
◦ public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica ricerchi eventuali parti corrispondenti. È possibile personalizzare i criteri utilizzati per eseguire la ricerca nella parte. La parte restituita viene utilizzata dall'azione per l'associazione al documento.
◦ public WTPart findOrCreateWTPart(EPMDocument doc, ModelItem modelItem, EPMWorkspace workspace)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica ricerchi eventuali parti corrispondenti. È possibile personalizzare i criteri utilizzati per eseguire la ricerca nella parte. La parte restituita viene utilizzata dall'azione per l'associazione al documento.
◦ public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor)
Questo metodo viene richiamato per ogni documento selezionato in modo che l'associazione automatica crei una nuova parte. È possibile personalizzare le proprietà della parte appena creata. La parte appena creata viene associata al documento dall'azione di associazione automatica.
|
I metodi riportati di seguito sono obsoleti e non vengono attualmente utilizzati dall'azione. Per compilare correttamente la classe, è necessario tuttavia fornire un'implementazione fittizia di questi metodi.
|
◦ public boolean isIsNewPart()
◦ public void setIsNewPart(boolean a_IsNewPart)
◦ public WTPart findWTPart(EPMDocument epmDoc)
◦ public WTPart findWTPart(EPMDocument epmDoc, ModelItem modelItem)
Compilare il file e inserire la classe in una posizione appropriata.
3. Impostare la preferenza > > per specificare il nome della classe che implementa l'interfaccia AutoAssociatePartFinderCreator.
4. Riavviare il method server.
Esempio di AutoAssociatePartFinderCreator personalizzato
Creare e compilare <WT_HOME>src\com\ptcts\autoassociate\CustomizedAutoAssociatePartFinderCreator.java con la seguente origine.
// 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;
}
}