如何将自己的实现添加到eclipse Explorer视图的Rename上下文菜单中。当我单击“重命名”时,我想在重命名项目之前进行一些验证
<extension
point="org.eclipse.ltk.core.refactoring.renameParticipants">
<renameParticipant
class="core.ui.project.RenameProject"
id="core.ui.renameParticipant"
name="Rename">
</renameParticipant>
public class RenameProject extends RenameParticipant {
@Override
protected boolean initialize(Object element) {
System.out.println("HERE");
return false;
}
@Override
public String getName() {
System.out.println("HERE");
return null;
}
@Override
public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context)
throws OperationCanceledException {
System.out.println("HERE");
return null;
}
@Override
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
System.out.println("HERE");
return null;
}
}
谢谢
答案 0 :(得分:1)
您无需更改菜单的实现即可在重命名期间验证某些内容。
相反,使用扩展名org.eclipse.ltk.core.refactoring.renameParticipants
定义一个“重命名参与者”,它将在重命名操作期间被调用。参与者可以检查重命名是否有效,并添加重命名过程中要完成的其他工作。
参与者代码扩展了org.eclipse.ltk.core.refactoring.participants.RenameParticipant
插件中的org.eclipse.ltk.core.refactoring
类。
也有创建,复制,移动和删除的参与者。
从Ant插件重命名文件的示例参与者:
<extension point="org.eclipse.ltk.core.refactoring.renameParticipants">
<renameParticipant
class="org.eclipse.ant.internal.ui.refactoring.LaunchConfigurationBuildfileRenameParticipant"
name="%AntRenameParticipant.name"
id="org.eclipse.ant.ui.refactoring.launchConfiguration.buildfileRename">
<enablement>
<with variable="element">
<instanceof value="org.eclipse.core.resources.IFile"/>
</with>
</enablement>
</renameParticipant>