2011-07-07 2 views
13

Eclipseプラグインの開発には初めてです。私は、プロジェクトの名前の変更をカスタマイズしたい。私は新しい名前を検証する必要があります。どうすればeclipseのリネーム/リファクタリング方法をオーバーライドできますか?Eclipseリネーム/リファクタリングオーバーライド

RenameParticipantに関連するものを見ましたが、はっきりわかりませんでした。誰かが名前変更機能を無効にする手順を私に説明できれば素晴らしいだろう。

多くのおかげで、 アン

答えて

13

名前変更リファクタリングはorg.eclipse.ltk.core.refactoring.participants.RenameProcessorをサブクラス化し、異なる要素の名前を変更する責任があり、いくつかのプロセッサが搭載されています。たとえば、Javaプロジェクトの名前を変更するプロセッサorg.eclipse.jdt.internal.corext.refactoring.rename.RenameJavaProjectProcessorがあります。リファクタリング参加者は、リファクタリング・プロセッサの状態チェックおよび変更作成に参加することができる。たとえば、リネームリファクタリング中にいくつかの条件を確認するには、org.eclipse.ltk.core.refactoring.participants.RenameParticipantをサブクラス化し、org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant.checkConditions(IProgressMonitor, CheckConditionsContext)メソッドをオーバーライドし、拡張ポイントorg.eclipse.ltk.core.refactoring.renameParticipantsを介して参加者を登録する必要があります。参加者org.eclipse.jdt.internal.corext.refactoring.nls.NLSAccessorFieldRenameParticipantは、リネームリファクタリングに参加する方法の良い例を示しています。

org.eclipse.ltk.core.refactoring.renameParticipants拡張ポイントを宣言するときは、参加者に通知する要素を指定する必要があります。たとえば、次のorg.eclipse.ltk.core.refactoring.renameParticipants拡張ポイントをorg.eclipse.jdt.ui/plugin.xmlにどのように使用すれば、名前を変更するフィールドに参加者が関与するのかを参照してください。

<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

こんにちは、お返事ありがとうございます。 RenameParticipantをサブクラス化しました。メソッドcheckConditionsをオーバーライドします。拡張ポイントを介して参加者を登録しました。今では、すべて(プロジェクト、ファイルなど)の検証を行います。プロジェクト名のみの検証が必要です。私はRenameJavaProjectProcessorをどこに配置できるのか分からなかった。ありがとう、 – Angel

+0

'RenameJavaProjectProcessor'はJDTにあり、あなたはそれについて心配する必要はありません。 'plugin.xml'で拡張ポイントを宣言するときに、参加者が動作する要素を指定するだけです。あなたの参加者が操作する要素を指定する方法については、私の更新答えを見てください。 – reprogrammer

+0

ありがとう!それは今働いた。 – Angel

関連する問題