2011-07-07 5 views
13

Je suis nouveau dans le développement de plug-ins eclipse. Je veux personnaliser le changement de nom d'un projet. Je dois valider le nouveau nom. Alors, comment puis-je remplacer la méthode de renommer/refactoriser d'eclipse?Renommage du renommage/refactoring Eclipse

J'ai vu quelque chose lié à RenameParticipant, mais je n'ai pas compris clairement. Ce serait génial si quelqu'un pouvait m'expliquer les étapes pour remplacer la fonctionnalité de renommage.

Merci beaucoup, Ann

Répondre

13

Le refactoring de renommage a plusieurs processeurs sous-classe org.eclipse.ltk.core.refactoring.participants.RenameProcessor et sont responsables de renommer différents éléments. Par exemple, il existe un processeur pour renommer les projets Java org.eclipse.jdt.internal.corext.refactoring.rename.RenameJavaProjectProcessor. Un participant au refactoring peut participer à la vérification de la condition et modifier la création d'un processeur de refactoring. Par exemple, pour vérifier certaines conditions lors d'un refactoring de renommer, vous devez sous-classer org.eclipse.ltk.core.refactoring.participants.RenameParticipant, remplacer la méthode org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant.checkConditions(IProgressMonitor, CheckConditionsContext) et enregistrer le participant via le point d'extension org.eclipse.ltk.core.refactoring.renameParticipants. Le participant org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipant vous donne un bon exemple de la façon de participer à un refactoring de renommer. Lorsque vous déclarez votre extension du point d'extension org.eclipse.ltk.core.refactoring.renameParticipants, vous devez spécifier l'élément pour lequel vous souhaitez que votre participant soit averti. Par exemple, voyez comment l'utilisation suivante du point d'extension org.eclipse.ltk.core.refactoring.renameParticipants dans org.eclipse.jdt.ui/plugin.xml implique le participant dans le renommage des champs.

<extension point="org.eclipse.ltk.core.refactoring.renameParticipants"> 
    <renameParticipant class="org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipant" id="org.eclipse.jdt.ui.NLSFieldRenameParticipant" name="%Refactoring.NLSFieldRenameParticipant"> 
    <enablement> 
     <with variable="affectedNatures"> 
     <iterate operator="or"> 
      <equals value="org.eclipse.jdt.core.javanature"/> 
     </iterate> 
     </with> 
     <with variable="element"> 
     <instanceof value="org.eclipse.jdt.core.IField"/> 
     </with> 
    </enablement> 
    </renameParticipant> 
</extension> 
+0

Salut, Merci pour votre réponse. J'ai sous-classé RenameParticipant. Overrid méthode checkConditions. Et enregistré le participant via le point d'extension. Maintenant, il fait la validation pour tout (c'est-à-dire pour les projets, les fichiers, etc.). Je veux une validation uniquement pour le nom du projet. Je n'ai pas compris où je peux placer le RenameJavaProjectProcessor. Merci, – Angel

+0

'RenameJavaProjectProcessor' est dans JDT et vous n'avez pas à vous en préoccuper. Vous avez juste besoin de spécifier l'élément sur lequel votre participant travaille lorsque vous déclarez votre point d'extension dans 'plugin.xml'. Voir ma réponse mise à jour sur la façon de spécifier l'élément sur lequel votre participant opère. – reprogrammer

+0

Merci! Cela a fonctionné maintenant. – Angel

Questions connexes